Integrator for the Helmholtz operator with variable coefficients.
More...
#include <integratorRHS.h>
|
| 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 |
|
|
F | 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.
|
|
template<typename F, size_t N>
class IntegratorRHS< F, N >
Integrator for the Helmholtz operator with variable coefficients.
- Template Parameters
-
F | Functor type for the variable coefficient |
N | Number of dimensions |
- Note
- Object of type F need to be copyable and implement an operator() ( const std::array<double, N>& )
◆ 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] | c | The variable coefficient scalar field |
[in] | epsilon | Refinement criterion of the hierarchical surplus |
[in] | depth_max | Upper limit for the recursion depth (Neccessary for discontinious functions) |
[in] | depth_min | Lower limit for the recursion depth (Might be useful for functions with small curvature in the domain's center) |
[in] | gamma | Value by which an infinte value is replaced (For singularities inside of the domain) |
◆ 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_left | First point of the rectilinear boundary |
[in] | p_right | Second point of the rectilinear boundary |
[in] | u | First set of base functions used in the bilinear form |
[in] | v | Second 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_left | coordinate of left boundary of cell |
p_right | coordinate of right boundary of cell |
u,v | vector 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:
- /home/runner/work/LoAdSG/LoAdSG/library/source/stencils/InterfaceIntegration/IntegratorRHS/integratorRHS.h