BETL is a C++ template library for
the discretisation of boundary integral operators. While it currently
implements the discretisation of 3-dimensional boundary
integral operators via Galerkin schemes its design principles allow
also for the incorporation of other discretisation schemes such as,
e.g., the still popular collocation
methods.
Over the years this project has
grown slightly bigger than it was originally expected. In its original
form BETL was just intended to serve as set of methods with rather
limited functionality for maintaining an existing industrial Boundary
Element solver. Since then BETL has become a fully autonomous tool on
which powerful Boundary Element applications can be build. BETL's
strength lies in its use of well-known design principles in
conjunction with state of the art C++ language features. This ensures
the fast development of robust, extendable, and reliable numerical
schemes and implementations which are somehow related to the
discretisation of boundary integral operators.
Main features of BETL
BETL mainly aims on the discretisation of quite general boundary
integral operators. The following list gives a rough overview on
BETL's main features.
Support of different element types
3-noded triangular elements
6-noded triangular elements
10-noded triangular elements
4-noded quadrilateral elements
8-noded quadrilateral elements
16-noded quadrilateral elements
Lagrangian basis functions of constant, linear,
quadratic, and cubic order for triangular as well as as for
quadrilateral elements
Raviart-Thomas- and Nedelec-type basis functions of lowest
order for the 3-noded triangular element
Laplace- and Helmholtz-type fundamental solutions
A set of traces to compute
single-layer potentials
double-layer potentials
hypersingular integral operators
A set of integrators
General integrators are based on formulas developed by S.
Sauter and C. Schwab. They
cover quite arbitrary weak- and strongly-singular integral
kernels
Semi-analytic integrators for the Laplace kernel on 3-noded
triangular elements are based on routines which have been
developed by O.
Steinbach and his group
Concerning Boundary Element Methods, there exist some topics which one
might expect to be included into a library of this kind, but which,
consequently, are not covered by BETL itself. Since BETL is
solely dedicated to the computation of discrete boundary layer
potentials, these topics do not fit into the library's design
principles:
There is no concept of boundary conditions implemented
The software implements no Boundary Element Methods. However, BETL
comes with a bunch of tutorials which explain how to embed BETL
structures into some particular Boundary Element Methods in order to
solve a certain boundary value problem
Documentation
If you are interested, please have a look at the documentation for
further details about BETL. Currently, BETL's documentation is still
under construction. Nevertheless, the documentation is already freely
available and may be found under the following
links.
R. Hiptmair, L. Kielhorn: BETL — A generic boundary element
template library, Tech. Rep. 2012-36, Seminar for Applied
Mathematics, ETH Zürich (pdf,
sources,
meshes (33MB),aca settings)
L. Kielhorn: Matrix-vector computations with BETL, Tech. Note,
Seminar for Applied Mathematics, ETH Zürich (pdf)
A BETL poster: Swiss Numerics Colloquium 2013 (pdf)
Obtaining BETL
BETL has originated from an industrial environment. This is the
main reason why the license agreement prohibits any
commercial use of this software. Despite this, BETL is free for
academic use in research and teaching. Interested users are granted
access to the subversion repository after their academic affiliation
has been proven. For this, simply complete the license agreement and
send it together with an attached copy of your academic affiliation
via e-mail either
to Lars
Kielhorn or to Ralf
Hiptmair.