Maxwell Single Layer Operator
The Maxwell single layer operator, also known als electric field integral operator (EFIO) is encountered in many time-harmonic BEM scattering formulations in electromagnetics. So far, only the 3D variant is implemented.
Definition
The operator is defined as (see, e.g., [RWG82])
\[\bm{\mathcal{T}} \bm b = α \bm{\mathcal{T}}_{\!\!s} \bm b + β \bm{\mathcal{T}}_{\!\!h} \bm b\]
for a vector field $\bm{b}$ and parameters $α$ and $β$, as well as, the weakly singular operator (also known as vector potential operator)
\[\bm{\mathcal{T}}_{\!\!s} \bm b = \int_\Gamma g_γ(\bm x,\bm y) \, \bm b(\bm y) \,\mathrm{d}\bm y\]
and the hyper singular operator (also known as scalar potential operator)
\[\bm{\mathcal{T}}_{\!\!h} \bm b = ∇\int_\Gamma g_γ(\bm x,\bm y) \, ∇_Γ⋅\bm b(\bm y) \,\mathrm{d}\bm y\]
with the free-space Green's function
\[g_{γ}(\bm x,\bm y) = \dfrac{\mathrm{e}^{-γ|x-y|}}{4π|x-y|} \,.\]
The parameters are typically $α=-\mathrm{j}k$, $β=-1/(\mathrm{j}k)$, and $γ = \mathrm{j}k$ with $k$ denoting the wavenumber and $\mathrm{j}$ the imaginary unit.
As Bilinear Form
When handed to the assemble
function, the operators are interpreted as the corresponding bilinear forms
\[a(\bm t, \bm b) = α ∬_{\Gamma \times \Gamma} \bm t(\bm x) ⋅ \bm b(\bm y) \, g_γ(\bm x,\bm y) \,\mathrm{d}\bm y \mathrm{d}\bm x + β ∬_{Γ×Γ} ∇_Γ⋅\bm t(\bm x) \, ∇_Γ⋅\bm b(\bm y) \, g_γ(\bm x,\bm y) \,\mathrm{d}\bm y \mathrm{d}\bm x\]
for the complete Maxwell single layer operator,
\[a_s(\bm t, \bm b) = α ∬_{\Gamma \times \Gamma} \bm t(\bm x) ⋅ \bm b(\bm y) \, g_γ(\bm x,\bm y) \,\mathrm{d}\bm y \mathrm{d}\bm x\]
for the weakly singular part, and
\[a_h(\bm t, \bm b) = β ∬_{Γ×Γ} ∇_Γ⋅\bm t(\bm x) \, ∇_Γ⋅\bm b(\bm y) \, g_γ(\bm x,\bm y) \,\mathrm{d}\bm y \mathrm{d}\bm x\]
for the hyper singular part. Note that the gradient in the hypersingular operator has been moved to the test function using, e.g., a Stokes identity [Ned01, p. 73]. The corresponding matrices contain the entries
\[[\bm A]_{mn} = a_x(\bm t_m, \bm b_n) \,.\]
API
The weakly singular and the hyper singular operator can be used as such or combined in the single layer operator.
The qualifier Maxwell3D
has to be used.
BEAST.Maxwell3D.singlelayer
— Functionsinglelayer(;gamma, alpha, beta)
singlelayer(;wavenumber, alpha, beta)
Maxwell 3D single layer operator.
Either gamma, or the wavenumber, or α and β must be provided.
If α and β are not provided explitly, they are set to $α = -γ$ and $β = -1/γ$ with $γ=\mathrm{j} k$.
BEAST.Maxwell3D.weaklysingular
— Functionweaklysingular(;wavenumber)
Weakly singular part of the Maxwell 3D single layer operator.
$α = -\mathrm{j} k$ is set with the wavenumber $k$.
BEAST.Maxwell3D.hypersingular
— Functionhypersingular(;wavenumber)
Hyper singular part of the Maxwell 3D single layer operator.
$β = -1/\mathrm{j} k$ is set with the wavenumber $k$.
As Linear Map
When handed to the potential
function, the operator can be evaluated at provided points in space. Commonly, this is used in post-processing.
Far-Field
In the limit that the observation point $\bm x \rightarrow \infty$, the operator simplifies to the far-field (FF) version
\[(\bm{\mathcal{T}}_\mathrm{FF} \bm b)(\bm x) = α \bm{u}_r \times \int_\Gamma \bm{b}(\bm y) \mathrm{e}^{\mathrm{j}\bm{u}_r \cdot\, \bm{y}} \,\mathrm{d}\bm{y} \times \bm{u}_r \]
where $\bm{u}_r$ is the unit vector in the direction of the evaluation point.
API
BEAST.MWSingleLayerField3D
— TypeMWSingleLayerField3D(;gamma, wavenumber, alpha, beta)
Create the single layer near field operator, for use with potential
.
BEAST.MWFarField3D
— TypeMWFarField3D(;gamma, amplitude)
Maxwell single layer far-field operator for 3D.
The provided points for the potential
should be in Cartesian coordinates. The returned fields are also in Cartesian from.
Singularities are not addressed: the case when the evaluation point is close to the surface is not treated properly, so far.