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

Class for computing the rotationally-tested vector hypersingular operator. More...

#include <single_layer.hpp>

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

Detailed Description

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

Class for computing the rotationally-tested vector hypersingular operator.

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

Computes

\begin{align*} \int_{\mathrm{obs\_tri}} d\mathcal{S}\,\hat{n}\times\vec{f_m}(\vec{r})\cdot &\int_{\mathrm{src\_tri}} d\mathcal{S}'\,G(k, \vec{r}, \vec{r}\,')\vec{f_n}(\vec{r}\,')\, +\\ \frac{1}{k^2}&\int_{\mathrm{obs\_tri}} d\mathcal{S}\,\hat{n}\times\vec{f_m}(\vec{r})\cdot \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 pair \( (m, n) \) of observation and source triangle edges, where \( G(k, \vec{r}, \vec{r}\,') \) is a scalar kernel, \( \vec{f_i}(\vec{r}) \) is the RWG function associated with edge \( i \), and \( \hat{n} \) is the unit normal vector associated with obs_tri. Rows of the output matrix correspond to observation edges, and columns correspond to source edges.

Definition at line 409 of file single_layer.hpp.

Constructor & Destructor Documentation

◆ RotVectorHypersingularOp()

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

Constructs a RotVectorHypersingularOp object with a specified integration object.

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

Definition at line 423 of file single_layer.hpp.

Member Function Documentation

◆ compute()

EigMatMN< Complex, 3, 3 > bem::rwg::RotVectorHypersingularOp< 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 266 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

◆ op_g_

◆ op_hessg_


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