HLIBpro  2.9.1
TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_val > Class Template Reference

class for BEM HCA generator functions with invariant basis functions More...

#include <TQuadHCAGenFn.hh>

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

Public Member Functions

 TInvarBasisQuadHCAGenFn (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 TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >
 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)
 
- 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

const std::vector< ansatz_value_t > * ansatz_val (const idx_t idx, const TGrid::triangle_t &tri, const uint order) const
 
const std::vector< test_value_t > * test_val (const idx_t idx, const TGrid::triangle_t &tri, const uint order) const
 same as More...
 
- Protected Member Functions inherited from TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >
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::TInvarBasisQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >

     Optimises evaluation of basis function for quadrature points under the
     assumption, that they are invariant with respect to translation and
     scaling, e.g. can be precomputed on reference triangles.

Constructor & Destructor Documentation

◆ TInvarBasisQuadHCAGenFn()

TInvarBasisQuadHCAGenFn ( 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

◆ ansatz_val()

const std::vector< ansatz_value_t >* ansatz_val ( const idx_t  idx,
const TGrid::triangle_t tri,
const uint  order 
) const
inlineprotected

return ansatz basis function values for index idx in triangle tri for quadrature points of order order

◆ 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. Store results in matrix at index (i,l).

Reimplemented from TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >.

◆ 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. Store results in matrix at index (j,l).

Reimplemented from TQuadHCAGenFn< T_ansatzsp, T_testsp, T_val >.

◆ test_val()

const std::vector< test_value_t >* test_val ( const idx_t  idx,
const TGrid::triangle_t tri,
const uint  order 
) const
inlineprotected
See also
ansatz_val but for test space