Skip to content
Snippets Groups Projects
Commit 2a2746ca authored by ismail badia's avatar ismail badia
Browse files

add Readme

parent 1e539b2a
No related branches found
No related tags found
Loading
Pipeline #9272 passed
#The electromagnetic transmission-scattering problem
Dependencies:
* GmshFEM, commit: bd0fb7ebb6b76f0541e25212b9cbcc42e7a0d0b7
* Gmsh, commit: 2db112186d43fab77fca9d2b546c8f76b3ea6169
* GmshDdm, commit: 1e539b2a25293011fd80a8b0600a2a55c27fdfbf
* Bempp-cl, commit: 293135531f385f39ba29cf1c52cc2dba84614e6b
## Method overview:
The method is an efficient weak coupling formulation between the boundary element method
and the high-order finite element method. The approach is based on the use of a non-overlapping
domain decomposition method involving quasi-optimal transmission operators. The associated
transmission boundary conditions are constructed through a localization process based on complex
rational Padé approximants of the nonlocal Magnetic-to-Electric operators (see I. Badia, B. Caudron, X. Antoine, C. Geuzaine. "A well-conditioned weak coupling of boundary element and high-order finite element methods for time-harmonic electromagnetic scattering by inhomogeneous objects". SIAM Journal on Scientific Computing, Society for Industrial and Applied Mathematics, 2022)
## Problem description
Let ```math \Omega_{-} ``` be a unit sphere (the scatter) and ```math \Omega_{+} ``` the exterior domain.
We consider an incident electromagnetic plane wave propagating in ```math \Omega_{+} ```. The total wave field ```math \mathbf{E}``` verifies the following three-dimensional electromagnetic transmission-scattering problem:
```math
\begin{subequations}
\begin{align}
\curl \left(\frac{1}{k_{-}\mathcal{Z}_{-}}\curl\E\right) - k_{-}\mathcal{Z}_{-}^{-1}\E &= \textbf{0}, \text{ ~in~ } \Omega_{-}, \\
\curl\curl\E - k_{+}^{2}\E & = \textbf{0}, \text{ ~in~ } \Omega_{+}, \\
\frac{1}{\iota k_{+}}\curl \textbf{E}_{\textbf{sc}} \times \frac{\textbf{x}}{\left\lVert\textbf{x} \right\rVert}-\textbf{E}_{\textbf{sc}} &= \underset{r \to +\infty}{\mathcal{O}}(r^{-2}), \\
\boldsymbol{\gamma}^{-}_{t}\E &=\boldsymbol{\gamma}^{+}_ {t}\E, \text{ ~on~ } \Gamma, \\
\boldsymbol{\gamma}^{-}_{t} \left(\frac{1}{k_{-}\mathcal{Z}_{-}}\curl\E\right) &=\frac{1}{k_{+}\mathcal{Z}_{+}}\boldsymbol{\gamma}^{+}_ {t}\left(\curl\E\right), \text{ ~on~ } \Gamma,
\end{align}
\end{subequations}
```
with ```math k_\pm``` and ```math \mathcal{Z}_\pm``` the wavenumbers and the impedances associated with ```math \Omega_\pm``` respectively.
## Installation
Run
```
mkdir build && cd build
cmake ..
make
```
## Usage
Simply run:
```
./example [PARAM]
```
with `[PARAM]`:
* `-pade [x]` (with `[x]` equal to 1 or 0) is a parameter to indicate to use Padé or not
* `-pointsByWl [x]` where `[x]` is the mesh size.
* `-FEorderAlpha [x]` is the order of the finite element hierarchical basis of the interior electric field.
* `-FEorderAlpha [x]` is the order of the finite element hierarchical basis of some fields.
* `-help` to display all other available parameters
The folder contains
* the main script (`main.cpp`)
* A python script for the BEM part (`bem.py`)
* The pybind11 folder for information exchange between python and C++
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment