LoAdSG
IntegratorRHS< F, N > Class Template Referenceabstract

Integrator for the Helmholtz operator with variable coefficients. More...

#include <integratorRHS.h>

Inheritance diagram for IntegratorRHS< F, N >:

Classes

class  TermRHS
 Class for describing a Helmholtz term. More...
 

Public Member Functions

 IntegratorRHS (const F &c, double epsilon, size_t depth_min=0, size_t depth_max=std::numeric_limits< size_t >::max(), double gamma=std::numeric_limits< double >::max())
 Constructor.
 
double integration (std::array< double, N > l_b, std::array< double, N > r_b, std::array< double, N > p_u, std::array< double, N > p_v, std::array< double, N > h_u, std::array< double, N > h_v, array< int, N > d_u, std::array< int, N > d_v) const
 Performs the integration of the FEM function defined by p_left, p_right, u and u with the additional variable coefficient passed to the constructor.
 
virtual double stencil_integration (double p_left[DIM], double p_right[DIM], BasisFunctionType u[DIM], BasisFunctionType v[DIM]) const=0
 

Private Attributes

m_variable_coefficient
 The variable coefficient.
 
double m_epsilon
 Refinement criterion on the hierarchical surplus.
 
size_t m_depth_min
 Minimum recursion depth.
 
size_t m_depth_max
 Maximum recursion depth.
 
double m_gamma
 Value to replace infinte values with.
 

Detailed Description

template<typename F, size_t N>
class IntegratorRHS< F, N >

Integrator for the Helmholtz operator with variable coefficients.

Template Parameters
FFunctor type for the variable coefficient
NNumber of dimensions
Note
Object of type F need to be copyable and implement an operator() ( const std::array<double, N>& )

Constructor & Destructor Documentation

◆ IntegratorRHS()

template<typename F , size_t N>
IntegratorRHS< F, N >::IntegratorRHS ( const F &  c,
double  epsilon,
size_t  depth_min = 0,
size_t  depth_max = std::numeric_limits<size_t>::max(),
double  gamma = std::numeric_limits<double>::max() 
)
inline

Constructor.

Parameters
[in]cThe variable coefficient scalar field
[in]epsilonRefinement criterion of the hierarchical surplus
[in]depth_maxUpper limit for the recursion depth (Neccessary for discontinious functions)
[in]depth_minLower limit for the recursion depth (Might be useful for functions with small curvature in the domain's center)
[in]gammaValue by which an infinte value is replaced (For singularities inside of the domain)

Member Function Documentation

◆ integration()

template<typename F , size_t N>
double IntegratorRHS< F, N >::integration ( std::array< double, N >  l_b,
std::array< double, N >  r_b,
std::array< double, N >  p_u,
std::array< double, N >  p_v,
std::array< double, N >  h_u,
std::array< double, N >  h_v,
array< int, N >  d_u,
std::array< int, N >  d_v 
) const
inline

Performs the integration of the FEM function defined by p_left, p_right, u and u with the additional variable coefficient passed to the constructor.

Parameters
[in]p_leftFirst point of the rectilinear boundary
[in]p_rightSecond point of the rectilinear boundary
[in]uFirst set of base functions used in the bilinear form
[in]vSecond set of base functions used in the bilinear form
Returns
The integral over the tensor product of (u * v) multiplied by the variable coefficient passed to the constructor on the domain spanned by p_left and p_right

◆ stencil_integration()

virtual double InterfaceLocalStiffnessMatrices< DIM >::stencil_integration ( double  p_left[DIM],
double  p_right[DIM],
BasisFunctionType  u[DIM],
BasisFunctionType  v[DIM] 
) const
pure virtualinherited
Parameters
p_leftcoordinate of left boundary of cell
p_rightcoordinate of right boundary of cell
u,vvector describing type of basis function
Returns
a(u,v) with respect to the integration on the cell

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