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

Class for computing the rotationally-tested gradient of the scalar single-layer potential operator. More...

#include <single_layer.hpp>

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

Detailed Description

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

Class for computing the rotationally-tested gradient of the scalar single-layer potential operator.

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

Computes

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

for observation triangle edge \( m \), where \( G(k, \vec{r}, \vec{r}\,') \) is a scalar kernel, \( \vec{f_i}(\vec{r}) \) is the RWG function associated with edge \( i \), \( h(\vec{r}) \) is a pulse function that is a non-zero constant inside the associated triangle, and zero outside, and \( \hat{n} \) is the unit normal vector associated with obs_tri. Rows of the output matrix correspond to observation edges.

Definition at line 273 of file single_layer.hpp.

Constructor & Destructor Documentation

◆ RotGradScalarSingleLayerOp()

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

Constructs a RotGradScalarSingleLayerOp object with a specified integration object.

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

Definition at line 287 of file single_layer.hpp.

Member Function Documentation

◆ compute()

EigMatMN< Complex, 3, 1 > bem::rwg::RotGradScalarSingleLayerOp< 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, 1 >.

Definition at line 189 of file single_layer.tpp.

◆ assemble()

EigMatMN< Complex, 3, 1 > bem::rwg::RotGradScalarSingleLayerOp< 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 observation triangle edge and source triangle face.

Definition at line 207 of file single_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_

Definition at line 326 of file single_layer.hpp.


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