bempp-acoustic-tutorials
bempp-acoustic-tutorials copied to clipboard
Tutorials and exercises for learning to use Bempp-cl for problems in acoustics
Bempp acoustics exercises
This repository contains tutorials and exercises designed to show you how to use Bempp to solve problems in acoustics. These materials were designed to be part of the EAA / UKAN Computational Acoustics Summer School. They have all been created in Jupyter Notebooks, which allow you to see code, explanation and results all alongside.
The tutorials are complete notebooks that aim to demonstrate how to approach various types of problems using Bempp. The exercises invite you to develop the notebooks to add new functionality, thereby developing your experitise in using Bempp.
You can view these tutorials and exercises on nbviewer without needing to install Bempp. But if you wish to make any edits yourself, as is required to undertake the exercises, then you'll need to install Bempp and either clone the repository or download the code (achieved via the green Code button above right).
Contents
- Instructions for installing Bempp
- Using the null field approach
- Tutorial 1: Scattering from a rigid sphere using a null field approach
- Exercise 1: Uniqueness
- Direct formulations
- Tutorial 2: Scattering from a rigid sphere using a direct formulation
- Exercise 2: Scattering from a pressure-release sphere
- Checking performance
- Tutorial 3: Convergence rates
- Exercise 3: Iteration counts
- Impedence boundary conditions
- Tutorial 4: Scattering from a impedence sphere
- Exercise 4: An inverse problem
- More example applications
- Tutorial 5: Loudspeaker radiation
- Tutorial 6: FEM-BEM coupling with FEniCSx
- Further information
Please help us correct errors by reporting them:
If you spot an error in these tutorials and exercises, please report it on the GitHub issue tracker. You can also use the issue tracker to suggest any changes that you think would help to make these tutorials and exercises clearer.
Notation differences between these tutorials and the Bempp documentation
The bempp website includes a handbook, which gives an introduction to how the library operates, and automatically generated full Python documentation, which is useful for looking up specific details once you already understand the main principles for using Bempp. But that documentation uses a different operator notation to what is used in these tutorials, which follow the Jonathan Hargreaves's slides from the summer school.
Here is a summary of the differences:
| Operator | Notation used herein | Notation used in Bempp documentation |
|---|---|---|
| Identity | I | Id |
| Single layer | S | V |
| Double layer | D | K |
| Adjoint double layer | A | K' |
| Hypersingular | H | W |