Bembel

Logo

The BEM-based engineering library

View the Project on GitHub temf/bembel

Bembel

License: GPL v3 DOI

Table of contents

  1. Introduction
  2. What is a Bembel?
  3. Features
  4. How to Run our Code
  5. Known Bugs and Upcoming Features
  6. Publications & Preprints
  7. Contributers
  8. About the People

1. Introduction

Bembel is the Boundary Element Method Based Engineering Library written in C and C++ to solve boundary value problems governed by the Laplace, Helmholtz or electric wave equation within the isogeometric framework [3,4,5,6]. It was developed as part of a cooperation between the TU Darmstadt and the University of Basel, coordinated by H. Harbrecht, S. Kurz and S. Schöps. The code is based on the Laplace BEM of J. Dölz, H. Harbrecht, and M. Multerer, [2,7] as well as the spline and geometry framework of F. Wolf. The code was extended by J. Dölz and F. Wolf in early 2018 to cover electromagnetic applications [5,6]. A short introduction to the code has been written [3]. If you utilise our code as part of a publication, we would appreciate it if you cite it.

This code is currently at version 0.9 and a work in progress. It has to be polished and it has to be properly documented.

2. What is a Bembel?

A traditional German ceramic, as depicted in our logo. Quoting Wikipedia:

Most establishments also serve Apfelwein by the Bembel (a specific Apfelwein jug), much like how beer can be purchased by the pitcher in many countries. The paunchy Bembel (made from salt-glazed stoneware) usually has a basic grey colour with blue-painted detailing.

3. Features

Current key features include

Planned features include octave wrappers and the full Calderon projector for scalar problems.

4. How to Run our Code

Note that all mentioned scripts are written for bash, and thus only engineered to work on Linux / MacOS installations.

We ship a copy of Eigen3 as a subrepository, since its unsupported modules are not available in many local installations of Eigen. The submodule is automatically pulled when calling the compile.sh script for the first time. If you have received this copy of bembel as an archive and not as a git-repository, you may download eigen via the get_eigen.sh. Note that this will break its functionality as a submodule if you cloned the repository.

If you are not familiar with Eigen3, we emphasize that you can use it similarly to Matlab or Octave, see here.

We do not rely on any other external libraries, except for the standard template library. Thus, Bembel should compile out of the box. Under Linux, you may simply run the compile.sh shell script, which creates a build/ directory and takes care of compilation. Afterwards, we recommend running run_tests.sh which will call test routines, as well as examples for the computation of a Laplace, Helmholtz, and Maxwell problem. Afterwards, if you have a working LaTeX installation, you can call run_latex.sh, generating .pdf’s with nice convergence plots. However, depending on your system, this may take a while.

The general structure of the repository looks as follows.

When using our code, we recommend starting with understanding the code in src/examples/, followed by learning the capabilities of the high-level classes in *.hpp files, which we also consider to be the persistent API for further releases. You may also execute Doxygen. Many functions are documented, and the callgraphs visualize the overall structure of the code.

You may also want to take a look at our more detailed Documentation.

5. Known Bugs and Upcoming Features

For a list of known bugs and upcoming features, please have a look at the issue tracker on github.

6. Publications & Preprints

[1] A. Buffa, J. Dölz, S. Kurz, S. Schöps, R. Vázques, and F. Wolf. Multipatch Approximation of the de Rham Sequence and its Traces in Isogeometric Analysis. 2018. Submitted. To the preprint.

[2] J. Dölz, H. Harbrecht, and M. Peters. An interpolation-based fast multipole method for higher-order boundary elements on parametric surfaces. Int. J. Numer. Meth. Eng., 108(13):1705-1728, 2016. To the paper.

[3] J. Dölz, H. Harbrecht, S. Kurz, M. Multerer, S. Schöps, and F. Wolf. Bembel: The Fast Isogeometric Boundary Element C++ Library for Laplace, Helmholtz, and Electric Wave Equation. 2019. Submitted. To the preprint.

[4] J. Dölz, H. Harbrecht, S. Kurz, S. Schöps, and F. Wolf. A fast isogeometric BEM for the three dimensional Laplace- and Helmholtz problems. Comput. Methods Appl. Mech. Engrg., 330:83-101, 2018. To the paper. To the preprint.

[5] J. Dölz, S. Kurz, S. Schöps, and F. Wolf. Isogeometric Boundary Elements in Electromagnetism: Rigorous Analysis, Fast Methods, and Examples. 2018. Submitted. To the preprint.

[6] J. Dölz, S. Kurz, S. Schöps, and F. Wolf. A Numerical Comparison of an Isogeometric and a Classical Higher-Order Approach to the Electric Field Integral Equation. 2018. Submitted. To the preprint.

[7] H. Harbrecht and M. Peters. Comparison of fast boundary element methods on parametric surfaces. Comput. Methods Appl. Mech. Engrg., 261-262:39-55, 2013. To the paper.

7. Contributors

Current maintainers are J. Dölz, M. Multerer, F. Wolf.

Other contributors include D. Andric (geometry import), J. Corno (modified NURBS toolbox script), H. Harbrecht (parts of the legacy C-codebase, particularly the quadrature routines).

8. About the People