Bembel
Bembel Documentation

Bembel

License: GPL v3 GitHub release (latest by date) DOI Documentation coverage report

Table of contents

  1. Introduction
  2. What is a Bembel?
  3. Features
  4. Known Bugs and Upcoming Features
  5. Contributing to Bembel
  6. How to cite

1. Introduction

Bembel is the Boundary Element Method Based Engineering Library written in C++ library featuring higher order isogeometric Galerkin boundary element methods for Laplace, Helmholtz, and Maxwell problems. Bembel is compatible with geometries from the Octave NURBS package, and provides an interface to the Eigen template library for linear algebra operations. For computational efficiency, it applies an embedded fast multipole method tailored to the isogeometric analysis framework and a parallel matrix assembly based on OpenMP.

A good place to start is the introduction here: Getting Started. Furthermore, examples are provided in the examples/ folder, where details can be found in the publication [1]. Apart from that, a Doxygen documentation is available.

2. What is a Bembel?

A traditional Hessian 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

  • Header-only implementation,
  • Already implemented Laplace, Helmholtz and Maxwell single layer operator, easily expendable to other operators,
  • Arbitrary parametric mappings for the geometry representation, by default realized as NURBS-mappings from files generated by the NURBS package,
  • Arbitrary-order B-Spline functions as Ansatz spaces, as in the framework of isogeometric analysis for electromagnetics,
  • An embedded interpolation-based fast multipole method for compression, equivalent to the H2 matrix format,
  • openMP parallelized matrix assembly,
  • Full compatibility with the Eigen linear algebra library.

4. Known Bugs and Upcoming Features

Please send bug reports and feature requests via issue tracker on GitHub.

5. Contributing to Bembel

Any contribution to this project in fixing a bug or implementing a feature is welcome. Create a fork of this repository and create a pull request. To successfully merge your pull request you should follow our Coding Guidelines

6. How to cite

[1] 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. In: SoftwareX, 11, 10476. doi badge

@article{Bembel2020,
doi = {https://doi.org/10.1016/j.softx.2020.100476},
year = {2020}, volume = {11}, pages = {100476},
issn = {2352-7110},
author = {J. Dölz and H. Harbrecht and S. Kurz and M. Multerer and S. Schöps and F. Wolf},
title = {{Bembel}: The fast isogeometric boundary element {C++} library for {Laplace}, {Helmholtz}, and electric wave equation},
journal = {Software {X}}}