HLIBpro  2.8.1
TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val > Class Template Referenceabstract

base class for HCA generator functions using quadrature More...

#include <TQuadHCAGenFn.hh>

Inheritance diagram for TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >:
TPermHCAGeneratorFn< T_val > THCA< T >::TGeneratorFn TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >

Classes

struct  stat_t
 

Public Member Functions

 TQuadHCAGenFn (const ansatzsp_t *ansatzsp, const testsp_t *testsp, const uint quad_order, const TPermutation *row_perm_i2e, const TPermutation *col_perm_i2e, stat_t *stat=NULL)
 
virtual void integrate_dx_perm (const std::vector< idx_t > &idxs, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const
 
virtual void integrate_dy_perm (const std::vector< idx_t > &idxs, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const
 
- Public Member Functions inherited from TPermHCAGeneratorFn< T_val >
 TPermHCAGeneratorFn (const TPermutation *row_perm_i2e, const TPermutation *col_perm_i2e)
 
virtual void integrate_dx (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const
 
virtual void integrate_dy (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const
 
- Public Member Functions inherited from THCA< T >::TGeneratorFn
virtual bool is_complex () const
 indicate complex nature of function
 
virtual value_t eval (const T3Point &x, const T3Point &y) const =0
 
virtual void integrate_dx (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const =0
 
virtual void integrate_dy (const TIndexSet &is, const std::vector< T3Point > &pts, BLAS::Matrix< value_t > &matrix) const =0
 

Protected Member Functions

virtual void eval_dx (const idx_t tri_idx, const T3Point &y, const tri_quad_rule_t &quad_rule, std::vector< value_t > &values) const =0
 
virtual void eval_dy (const T3Point &x, const idx_t tri_idx, const tri_quad_rule_t &quad_rule, std::vector< value_t > &values) const =0
 

Detailed Description

template<typename T_ansatzsp, typename T_testsp, typename T_val>
class HLIB::TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >

     Evaluates the integrals over the derivatives of the kernel generator
     function by means of quadrature.

Constructor & Destructor Documentation

◆ TQuadHCAGenFn()

TQuadHCAGenFn ( const ansatzsp_t *  ansatzsp,
const testsp_t *  testsp,
const uint  quad_order,
const TPermutation row_perm_i2e,
const TPermutation col_perm_i2e,
stat_t stat = NULL 
)

constructor for HCA generator function over ansatz space ansatzsp test space testsp with permutations for row and column indices and (maximal) quadrature order quad_order

Member Function Documentation

◆ eval_dx()

virtual void eval_dx ( const idx_t  tri_idx,
const T3Point &  y,
const tri_quad_rule_t quad_rule,
std::vector< value_t > &  values 
) const
protectedpure virtual

Evaluate \( D_x \gamma(x, y) \) on with \(x\) defined by quadrature points on triangle tri_idx. The computed values for each quadrature point i are stored on values[i].

Implemented in TExpGenFn< T_ansatzsp, T_testsp >, TLaplaceDLPGenFn< T_ansatzsp, T_testsp >, TLaplaceSLPGenFn< T_ansatzsp, T_testsp >, THelmholtzDLPGenFn< T_ansatzsp, T_testsp >, and THelmholtzSLPGenFn< T_ansatzsp, T_testsp >.

◆ eval_dy()

virtual void eval_dy ( const T3Point &  x,
const idx_t  tri_idx,
const tri_quad_rule_t quad_rule,
std::vector< value_t > &  values 
) const
protectedpure virtual

Evaluate \( D_y \gamma(x, y) \) on with \(y\) defined by quadrature points on triangle tri_idx. The computed values for each quadrature point i are stored on values[i].

Implemented in TExpGenFn< T_ansatzsp, T_testsp >, TLaplaceDLPGenFn< T_ansatzsp, T_testsp >, TLaplaceSLPGenFn< T_ansatzsp, T_testsp >, THelmholtzDLPGenFn< T_ansatzsp, T_testsp >, and THelmholtzSLPGenFn< T_ansatzsp, T_testsp >.

◆ integrate_dx_perm()

virtual void integrate_dx_perm ( const std::vector< idx_t > &  idxs,
const std::vector< T3Point > &  pts,
BLAS::Matrix< value_t > &  matrix 
) const
virtual

Evaluate \( \int \phi_i(x) D_x \gamma(x, y_{l}) dx\) for i ∈ is and points \( y_{l} \) defined by pts.

Implements TPermHCAGeneratorFn< T_val >.

Reimplemented in TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, real >, and TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, complex >.

◆ integrate_dy_perm()

virtual void integrate_dy_perm ( const std::vector< idx_t > &  idxs,
const std::vector< T3Point > &  pts,
BLAS::Matrix< value_t > &  matrix 
) const
virtual

Evaluate \( \int \phi_j(y) D_y \gamma(x_{l}, y) dy\) for j ∈ is and points \( x_{l} \) defined by pts.

Implements TPermHCAGeneratorFn< T_val >.

Reimplemented in TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >, TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, real >, and TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, complex >.