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
1 merge request!12Faster ddm solve
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