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

Class for iterative Gaussian quadrature over a triangle. More...

#include <iterative_gauss.hpp>

+ Inheritance diagram for bem::IterativeGaussTriangleQuadrature< dim >:

Detailed Description

template<uint8_t dim>
class bem::IterativeGaussTriangleQuadrature< dim >

Class for iterative Gaussian quadrature over a triangle.

Template Parameters
dim- Dimension of the triangle (2 or 3)

Important: upon construction, this class loads tabulated quadrature data from a json file, and stores the tabulated quadrature data for all possible orders up to TRI_MAX_ORDER. Therefore, it is strongly recommended that objects of this class should be reused within loops, rather than creating a new object at each iteration of a long loop.

Definition at line 49 of file iterative_gauss.hpp.

Member Function Documentation

◆ set_starting_order()

template<uint8_t dim>
void bem::IterativeGaussTriangleQuadrature< dim >::set_starting_order ( const uint8_t  starting_order)
inline

Sets the quadrature order at which iterations should start.

Parameters
[in]starting_order- Starting quadrature order.

Definition at line 60 of file iterative_gauss.hpp.

◆ starting_order()

template<uint8_t dim>
uint8_t bem::IterativeGaussTriangleQuadrature< dim >::starting_order ( ) const
inline

Returns the quadrature order at which iterations start.

Returns
Starting quadrature order.

Definition at line 72 of file iterative_gauss.hpp.

◆ set_tol()

template<uint8_t dim>
void bem::IterativeGaussTriangleQuadrature< dim >::set_tol ( const Float  tol)
inline

Sets the relative convergence tolerance defining when iterations should stop.

Parameters
[in]tol- Tolerance.

Definition at line 79 of file iterative_gauss.hpp.

◆ tol()

template<uint8_t dim>
Float bem::IterativeGaussTriangleQuadrature< dim >::tol ( ) const
inline

Returns the relative convergence tolerance defining when iterations should stop.

Returns
Tolerance.

Definition at line 91 of file iterative_gauss.hpp.

◆ set_max_iters()

template<uint8_t dim>
void bem::IterativeGaussTriangleQuadrature< dim >::set_max_iters ( const uint16_t  max_iters)
inline

Sets the maximum number of iterations allowed even if not converged.

Parameters
[in]max_iters- Maximum allowed iterations.

Definition at line 98 of file iterative_gauss.hpp.

◆ max_iters()

template<uint8_t dim>
uint16_t bem::IterativeGaussTriangleQuadrature< dim >::max_iters ( ) const
inline

Returns the maximum number of iterations allowed even if not converged.

Returns
Maximum allowed iterations.

Definition at line 110 of file iterative_gauss.hpp.

◆ compute_points_weights()

template<uint8_t dim>
void bem::IterativeGaussTriangleQuadrature< dim >::compute_points_weights ( const Triangle< dim > &  tri,
std::function< EigRowVec< Complex >(ConstEigRef< EigMatNX< Float, dim > >)>  eval = {} 
)
overridevirtual

Computes and stores the points on which to evaluate the integrand, and the corresponding weights.

Parameters
[in]tri- Triangle for quadrature evaluation.
[in]eval- Function or class with operator() that evaluates the integrand.

Implements bem::TriangleQuadratureBase< dim >.

Definition at line 32 of file iterative_gauss.cpp.

◆ converged()

template<uint8_t dim>
bool bem::IterativeGaussTriangleQuadrature< dim >::converged ( ) const
inline

Checks whether the iterations converged.

Returns
true if the iterations converged, false otherwise.

Definition at line 128 of file iterative_gauss.hpp.

◆ converged_order()

template<uint8_t dim>
uint8_t bem::IterativeGaussTriangleQuadrature< dim >::converged_order ( ) const
inline

Returns the quadrature order at which the iterations converged.

Returns
Quadrature order at which the iterations converged; 0 if not converged.

Definition at line 141 of file iterative_gauss.hpp.

◆ set_order()

template<uint8_t dim>
virtual void bem::TriangleQuadratureBase< dim >::set_order ( const uint8_t  order)
inlinevirtualinherited

Sets the quadrature order.

Parameters
[in]order- Quadrature order.

Reimplemented in bem::GaussTriangleQuadrature< dim >, bem::GaussTriangleQuadrature< 2 >, and bem::GaussTriangleQuadrature< 3 >.

Definition at line 67 of file base.hpp.

◆ order()

template<uint8_t dim>
uint8_t bem::TriangleQuadratureBase< dim >::order ( ) const
inlineinherited

Returns the quadrature order.

Returns
Quadrature order.

Definition at line 74 of file base.hpp.

◆ points()

template<uint8_t dim>
const EigMatNX< Float, dim > & bem::TriangleQuadratureBase< dim >::points ( ) const
inlineinherited

Returns the points on which to evaluate the integrand.

Returns
Read-only reference to the evaluation points.

Definition at line 81 of file base.hpp.

◆ weights()

template<uint8_t dim>
const EigRowVec< Float > & bem::TriangleQuadratureBase< dim >::weights ( ) const
inlineinherited

Returns the weights associated with the points on which the integrand is evaluated.

Returns
Read-only reference to the weights.

Definition at line 94 of file base.hpp.

Member Data Documentation

◆ points_

template<uint8_t dim>
EigMatNX<Float, dim> bem::TriangleQuadratureBase< dim >::points_
protectedinherited

Definition at line 105 of file base.hpp.

◆ weights_

template<uint8_t dim>
EigRowVec<Float> bem::TriangleQuadratureBase< dim >::weights_
protectedinherited

Definition at line 106 of file base.hpp.

◆ order_

template<uint8_t dim>
uint8_t bem::TriangleQuadratureBase< dim >::order_ = TRI_DEFAULT_ORDER
protectedinherited

Definition at line 107 of file base.hpp.

◆ points_weights_computed_

template<uint8_t dim>
bool bem::TriangleQuadratureBase< dim >::points_weights_computed_ = false
protectedinherited

Definition at line 108 of file base.hpp.


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