UCL Discovery Stage
UCL home » Library Services » Electronic resources » UCL Discovery Stage

Bempp-cl: A fast Python based just-in-time compiling boundary element library

Betcke, Timo; Scroggs, Matthew; (2021) Bempp-cl: A fast Python based just-in-time compiling boundary element library. Journal of Open Source Software , 6 (59) p. 2879. 10.21105/joss.02879. Green open access

[thumbnail of Betcke_Bempp A fast Python based just-in-time compiling boundary element library_VoR.pdf]
Preview
Text
Betcke_Bempp A fast Python based just-in-time compiling boundary element library_VoR.pdf - Published Version

Download (240kB) | Preview

Abstract

Summary The boundary element method (BEM) is a numerical method for approximating the solution of certain types of partial differential equations (PDEs) in homogeneous bounded or unbounded domains. The method finds an approximation by discretising a boundary integral equation that can be derived from the PDE. The mathematical background of BEM is covered in, for example, Steinbach (2008) or McLean (2000). Typical applications of BEM include electrostatic problems, and acoustic and electromagnetic scattering. Bempp-cl is an open-source boundary element method library that can be used to assemble all the standard integral kernels for Laplace, Helmholtz, modified Helmholtz, and Maxwell problems. The library has a user-friendly Python interface that allows the user to use BEM to solve a variety of problems, including problems in electrostatics, acoustics and electromagnetics. Bempp-cl began life as BEM++, and was a Python library with a C++ computational core. The ++ slowly changed into pp as functionality gradually moved from C++ to Python with only a few core routines remaining in C++. Bempp-cl is the culmination of efforts to fully move to Python, and is an almost complete rewrite of Bempp. For each of the applications mentioned above, the boundary element method involves approximating the solution of a partial differential equation (Laplace’s equation, the Helmholtz equation, and Maxwell’s equations respectively) by writing the problem in boundary integral form, then discretising. For example, we could calculate the scattered field due to an electromagnetic wave colliding with a series of screens by solving ∇ x ∇ x E - k2E = 0; v x E = 0 on the screens; where E is the sum of a scattered field Es and an incident field Einc, and � is the direction normal to the screen. (Additionally, we must impose the Silver–Müller radiation condition to ensure that the problem has a unique solution.) This problem is solved, and the full method is derived, in one of the tutorials available on the Bempp website (Betcke & Scroggs, 2020a). The solution to this problem is shown below.

Type: Article
Title: Bempp-cl: A fast Python based just-in-time compiling boundary element library
Open access status: An open access version is available from UCL Discovery
DOI: 10.21105/joss.02879
Publisher version: https://doi.org/10.21105/joss.02879
Language: English
Additional information: This work is licensed under a Creative Commons Attribution 4.0 International License. The images or other third-party material in this article are included in the Creative Commons license, unless indicated otherwise in the credit line; if the material is not included under the Creative Commons license, users will need to obtain permission from the license holder to reproduce the material. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
UCL classification: UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Maths and Physical Sciences
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Maths and Physical Sciences > Dept of Mathematics
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL
URI: https://discovery-pp.ucl.ac.uk/id/eprint/10155106
Downloads since deposit
4,403Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item