OpenBEM
Open-source framework for electromagnetic simulation with the boundary element method.
Loading...
Searching...
No Matches
bem::rwg::VectorDoubleLayerProj< SrcIntegratorType > Class Template Reference

Class for computing the vector double-layer potential projector. More...

#include <double_layer.hpp>

+ Inheritance diagram for bem::rwg::VectorDoubleLayerProj< SrcIntegratorType >:

Detailed Description

template<typename SrcIntegratorType = SrcStrategic<>>
class bem::rwg::VectorDoubleLayerProj< SrcIntegratorType >

Class for computing the vector double-layer potential projector.

Definition at line 42 of file double_layer.hpp.

Constructor & Destructor Documentation

◆ VectorDoubleLayerProj()

template<typename SrcIntegratorType = SrcStrategic<>>
bem::rwg::VectorDoubleLayerProj< SrcIntegratorType >::VectorDoubleLayerProj ( const SrcIntegratorType  src_integrator = SrcStrategic<>())
inline

Constructs a VectorDoubleLayerProj object with a specified integration object.

Parameters
[in]src_integrator- Integration object for the source triangle (optional).

Definition at line 57 of file double_layer.hpp.

Member Function Documentation

◆ compute()

EigMatXN< Complex, 3 > bem::rwg::VectorDoubleLayerProj< SrcIntegratorType >::compute ( const Complex  k,
ConstEigRef< EigMatNX< Float, 3 > >  obs_points,
const Triangle< 3 > &  src_tri 
)
overridevirtual

Computes the vector double-layer projector.

Parameters
[in]k- Complex wavenumber.
[in]obs_points- Observation coordinates on which to project the generated field.
[in]src_tri- Source triangle.
Returns
Projected field components at each observation point, for each source degree of freedom.

Computes

\[ \int_{\mathrm{src\_tri}} d\mathcal{S}'\,\nabla G(k, \vec{r}, \vec{r}\,')\times\vec{f_n}(\vec{r}\,') \]

for each source triangle edge \( n \), where \( G(k, \vec{r}, \vec{r}\,') \) is a scalar kernel, and \( \vec{f_n}(\vec{r}) \) is the RWG function associated with edge \( n \). Rows of the output matrix are ordered by field components and then by observation points, and columns correspond to source edges. I.e., each column of the output looks like \( (F_{x1}, F_{y1}, F_{z1}), (F_{x2}, F_{y2}, F_{z2}), \ldots \), where \( (F_{xi}, F_{yi}, F_{zi}) \) are the components of the projected field \( \vec{F} \) defined at the observation point \( (x_i, y_i, z_i) \).

Implements bem::rwg::ProjectorBase< 3 >.

Definition at line 31 of file double_layer.tpp.

◆ transform_coordinates()

static void bem::rwg::ProjectorBase< src_num_dof >::transform_coordinates ( EigMatNX< Float, 3 > &  obs_points_local,
Triangle< 2 > &  src_tri_local,
ConstEigRef< EigMatNX< Float, 3 > >  obs_points,
const Triangle< 3 > &  src_tri 
)
inlinestaticinherited

Transforms the coordinates of the observation points and source triangle into a local coordinate system defined by the source triangle.

Parameters
[out]obs_points_local- Observation points in the source's local coordinate system.
[out]src_tri_local- Source triangle in its local coordinate system.
[in]obs_points- Original observation points.
[in]src_tri- Original source triangle.

Definition at line 74 of file base.hpp.


The documentation for this class was generated from the following files: