# Tutorials & example applications

A number of Jupyter notebook of example applications are included in the Bempp-cl GitHub repository. They can also be viewed online by following the links below.

## Laplace

### Solving a Laplace problem with Dirichlet boundary conditions

This tutorial demonstrates how Bempp can be used to solve a simple Laplace problem, including plotting a 2D slice of the solution, and will be well suited to new Bempp users.

### Solving a mixed Neumann-Dirichlet problem

This tutorial demonstrates how problem can be solved using finite element space defined on subsets of the boundary. It includes a demonstration of how functions can be exported in Gmsh and VTK format.

### Computing the capacity of a cube with a re-entrant corner

This tutorial demonstrates a practical application of Bempp to calculate the capacity of an isolated conductor.

### Weakly imposing a Dirichlet boundary condition

This tutorial demonstrated how Bempp can be used to weakly impose boundary conditions, as proposed in
*Boundary Element Methods with Weakly Imposed Boundary Conditions* (2019).

## Helmholtz

### Scattering from a sphere using a combined direct formulation

This tutorial demonstrates an application of Bempp to Helmholtz wave scattering, including the use of Helmholtz operators and plotting of a 2D slice of the solution.

### BEM-BEM Coupling using a simple multitrace formulation

This tutorial demonstrates a use of Bempp to solve a domain decomposition problem, including the use of blocked operators.

### Simple FEM-BEM coupling with FEniCSx for the Helmholtz equation

This tutorial demonstrates how Bempp can be used in combination with FEniCSx (the latest version of FEniCS) to solve a FEM-BEM coupled problem.

### Simple FEM-BEM coupling with FEniCS for the Helmholtz equation

This tutorial demonstrates how Bempp can be used in combination with FEniCS (an older version of FEniCS) to solve a FEM-BEM coupled problem.

### The OSRC preconditioner for high-frequency scattering

This tutorial demonstrates how an OSRC (on-surface radiation condition) preconditioner can be used for Helmholtz problems.

## Maxwell

### Electromagnetic scattering from flat screens

This tutorial demonstrates an application of Bempp to Maxwell wave scattering from a screen, including the use of Maxwell operators and plotting of a 2D slice of the solution.

### Bistatic RCS generated by dielectric spheres

This tutorial demonstrates and example application of Bempp to find a radar cross section generated by a plane wave scattering from two spheres.

## Other

### Running performance benchmarks with OpenCL on CPUs and GPUs

This tutorial demonstrates the use of Bempp on CPU and GPU devices, and demonstrates some performance results.