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

Class for computing the vector double-layer potential operator in a principal value sense. More...

#include <double_layer.hpp>

+ Inheritance diagram for bem::rwg::VectorDoubleLayerPvOp< ObsIntegratorType >:

Detailed Description

template<typename ObsIntegratorType = ObsStrategic<>>
class bem::rwg::VectorDoubleLayerPvOp< ObsIntegratorType >

Class for computing the vector double-layer potential operator in a principal value sense.

Template Parameters
ObsIntegratorType- Type of the observation triangle integrator, must derive from ObsIntegratorBase.

Computes

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

in a principal value sense, for each pair \( (m, n) \) of observation and source triangle edges, where \( G(k, \vec{r}, \vec{r}\,') \) is a scalar kernel, and \( \vec{f_i}(\vec{r}) \) is the RWG function associated with edge \( i \). Rows of the output matrix correspond to observation edges, and columns correspond to source edges.

Definition at line 57 of file double_layer.hpp.

Constructor & Destructor Documentation

◆ VectorDoubleLayerPvOp()

template<typename ObsIntegratorType = ObsStrategic<>>
bem::rwg::VectorDoubleLayerPvOp< ObsIntegratorType >::VectorDoubleLayerPvOp ( const ObsIntegratorType  obs_integrator = ObsStrategic<>())
inline

Constructs a VectorDoubleLayerPvOp object with a specified integration object.

Parameters
[in]obs_integrator- Integration object for the observation triangle (optional).

Definition at line 71 of file double_layer.hpp.

Member Function Documentation

◆ compute()

EigMatMN< Complex, 3, 3 > bem::rwg::VectorDoubleLayerPvOp< ObsIntegratorType >::compute ( const Complex  k,
const Triangle< 3 > &  obs_tri,
const Triangle< 3 > &  src_tri 
)
overridevirtual

Computes operator values for the given observation and source triangles.

Parameters
[in]k- Complex wavenumber.
[in]obs_tri- Observation triangle.
[in]src_tri- Source triangle.
Returns
Operator values for each pair of observation and source degrees of freedom.

Rows of the output matrix correspond to observation degrees of freedom, and columns correspond to source degrees of freedom.

Implements bem::rwg::OperatorBase< 3, 3 >.

Definition at line 33 of file double_layer.tpp.

◆ assemble()

EigMatMN< Complex, 3, 3 > bem::rwg::VectorDoubleLayerPvOp< ObsIntegratorType >::assemble ( const Complex  k,
const Triangle< 3 > &  obs_tri,
const Triangle< 3 > &  src_tri,
const ObsResult obs_result 
)

Assembles the computed integrals into the final operator values.

Parameters
[in]k- Complex wavenumber.
[in]obs_tri- Observation triangle in the source's local coordinate system.
[in]src_tri- Source triangle in its local coordinate system.
[in]obs_result- Integration result.
Returns
Operator values for each pair of observation and source triangle edges.

Definition at line 51 of file double_layer.tpp.

◆ transform_coordinates()

static void bem::rwg::OperatorBase< obs_num_dof, src_num_dof >::transform_coordinates ( Triangle< 3 > &  obs_tri_local,
Triangle< 2 > &  src_tri_local,
const Triangle< 3 > &  obs_tri,
const Triangle< 3 > &  src_tri 
)
inlinestaticinherited

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

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

Definition at line 73 of file base.hpp.

Member Data Documentation

◆ obs_integrator_

template<typename ObsIntegratorType = ObsStrategic<>>
ObsIntegratorType bem::rwg::VectorDoubleLayerPvOp< ObsIntegratorType >::obs_integrator_
protected

Definition at line 110 of file double_layer.hpp.


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