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

Class for quadrature over the observation triangle for RWG-based BEM operators. Reference: O. Ergul, L. Gurel, "The Multilevel Fast Multipole Algorithm (MLFMA) for Solving Large-Scale Computational Electromagnetics Problems," book, Wiley-IEEE Press, 2014. More...

#include <quadrature.hpp>

+ Inheritance diagram for bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >:

Detailed Description

template<typename TriangleQuadratureType = GaussTriangleQuadrature<3>, typename SrcIntegratorType = SrcStrategic<>>
class bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >

Class for quadrature over the observation triangle for RWG-based BEM operators. Reference: O. Ergul, L. Gurel, "The Multilevel Fast Multipole Algorithm (MLFMA) for Solving Large-Scale Computational Electromagnetics Problems," book, Wiley-IEEE Press, 2014.

Template Parameters
TriangleQuadratureType- Type of the triangle quadrature object, which must derive from TriangleQuadratureBase<3>.
SrcIntegratorType- Object for integrating over the source triangle, which must derive from SrcIntegratorBase.

Definition at line 49 of file quadrature.hpp.

Constructor & Destructor Documentation

◆ ObsQuadrature()

template<typename TriangleQuadratureType = GaussTriangleQuadrature<3>, typename SrcIntegratorType = SrcStrategic<>>
bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >::ObsQuadrature ( const TriangleQuadratureType  tri_quad = GaussTriangleQuadrature<3>(),
const SrcIntegratorType  src_integrator = SrcStrategic<>() 
)
inline

Constructs an ObsQuadrature with a specified triangle quadrature object.

Parameters
[in]tri_quad- Triangle quadrature object to use for integration.
[in]src_integrator- Object for integrating over the source triangle.

Definition at line 69 of file quadrature.hpp.

Member Function Documentation

◆ integrate()

Computes the integral over the observation triangle.

Parameters
[in]k- Complex wavenumber.
[in]obs_tri- Observation triangle in the local coordinate system of src_tri.
[in]src_tri- Source triangle in 2D space.
Returns
Integration result.

Implements bem::rwg::ObsIntegratorBase.

Definition at line 32 of file quadrature.tpp.

◆ quadrature_object() [1/2]

template<typename TriangleQuadratureType = GaussTriangleQuadrature<3>, typename SrcIntegratorType = SrcStrategic<>>
const TriangleQuadratureType & bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >::quadrature_object ( ) const
inline

Provides read-only access to the triangle quadrature object for inspection.

Returns
Read-only reference to the triangle quadrature object.

Definition at line 93 of file quadrature.hpp.

◆ quadrature_object() [2/2]

template<typename TriangleQuadratureType = GaussTriangleQuadrature<3>, typename SrcIntegratorType = SrcStrategic<>>
TriangleQuadratureType & bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >::quadrature_object ( )
inline

Provides writable access to the triangle quadrature object.

Returns
Writable reference to the triangle quadrature object.

Definition at line 101 of file quadrature.hpp.

◆ src_integrator() [1/2]

template<typename TriangleQuadratureType = GaussTriangleQuadrature<3>, typename SrcIntegratorType = SrcStrategic<>>
const SrcIntegratorType & bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >::src_integrator ( ) const
inline

Provides read-only access to the source integrator for inspection.

Returns
Read-only reference to the source integrator object.

Definition at line 109 of file quadrature.hpp.

◆ src_integrator() [2/2]

template<typename TriangleQuadratureType = GaussTriangleQuadrature<3>, typename SrcIntegratorType = SrcStrategic<>>
SrcIntegratorType & bem::rwg::ObsQuadrature< TriangleQuadratureType, SrcIntegratorType >::src_integrator ( )
inline

Provides writable access to the source integrator object.

Returns
Writable reference to the source integrator object.

Definition at line 117 of file quadrature.hpp.

◆ set_compute_terms()

virtual void bem::rwg::ObsIntegratorBase::set_compute_terms ( bool  compute_g_term,
bool  compute_rs_g_terms,
bool  compute_grad_g_terms,
bool  compute_rot_grad_g_terms 
)
inlinevirtualinherited

Sets flags defining which terms to compute during integration, which are propagated into the source triangle integration.

Parameters
[in]compute_g_term- If true, computes

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

for the scalar kernel \( G(k, \vec{r}, \vec{r}\,') \).
[in]compute_rs_g_terms- If true, computes terms related to

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

for the scalar kernel \( G(k, \vec{r}, \vec{r}\,') \).
[in]compute_grad_g_terms- If true, computes terms related to

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

for the scalar kernel \( G(k, \vec{r}, \vec{r}\,') \).
[in]compute_rot_grad_g_terms- If true, computes terms related to

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

for the scalar kernel \( G(k, \vec{r}, \vec{r}\,') \).

Definition at line 94 of file base.hpp.

Member Data Documentation

◆ compute_g_term_

bool bem::rwg::ObsIntegratorBase::compute_g_term_ = true
protectedinherited

Definition at line 111 of file base.hpp.

◆ compute_rs_g_terms_

bool bem::rwg::ObsIntegratorBase::compute_rs_g_terms_ = true
protectedinherited

Definition at line 112 of file base.hpp.

◆ compute_grad_g_terms_

bool bem::rwg::ObsIntegratorBase::compute_grad_g_terms_ = true
protectedinherited

Definition at line 113 of file base.hpp.

◆ compute_rot_grad_g_terms_

bool bem::rwg::ObsIntegratorBase::compute_rot_grad_g_terms_ = true
protectedinherited

Definition at line 114 of file base.hpp.


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