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

Class for computing the vector hypersingular potential projector. More...

#include <single_layer.hpp>

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

Detailed Description

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

Class for computing the vector hypersingular potential projector.

Examples
/examples/ex02_assemblers.cpp.

Definition at line 202 of file single_layer.hpp.

Constructor & Destructor Documentation

◆ VectorHypersingularProj()

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

Constructs a VectorHypersingularProj object with a specified integration object.

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

Definition at line 216 of file single_layer.hpp.

Member Function Documentation

◆ compute()

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

Computes the vector hypersingular 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 triangle edge.

Computes

\begin{align*} \int_{\mathrm{src\_tri}} d\mathcal{S}'\,G(k, \vec{r}, \vec{r}\,')\vec{f_n}(\vec{r}\,')\, + \frac{1}{k^2}\nabla\nabla\cdot\int_{\mathrm{src\_tri}} d\mathcal{S}'\,G(k, \vec{r}, \vec{r}\,') \,\vec{f_n}(\vec{r}\,') \end{align*}

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 111 of file single_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: