HLIBpro
3.0
|
Base class for all quadrature based bilinear forms. More...
#include <TQuadBEMBF.hh>
Public Member Functions | |
TQuadBEMBF (const ansatzsp_t *ansatzsp, const testsp_t *testsp, const uint order=CFG::BEM::quad_order, const bool dist_ada=CFG::BEM::adaptive_quad_order) | |
virtual | ~TQuadBEMBF () |
destructor | |
virtual void | eval (const std::vector< idx_t > &row_ind, const std::vector< idx_t > &col_ind, BLAS::Matrix< value_t > &values) const |
Public Member Functions inherited from TBEMBF< T_ansatzsp, T_testsp, T_value > | |
TBEMBF (const ansatzsp_t *aansatzsp, const testsp_t *atestsp) | |
construct bilinear form over function spaces ansatzsp and testsp | |
virtual | ~TBEMBF () |
destructor | |
const ansatzsp_t * | ansatz_space () const |
return ansatz space | |
const testsp_t * | test_space () const |
return test space | |
Public Member Functions inherited from TBilinearForm< T_val > | |
bool | is_complex () const |
return true if bilinear form is complex valued | |
virtual matform_t | format () const |
return format of bilinear form, e.g. symmetric | |
Protected Member Functions | |
uint | reorder_common (idx_t *vtx0idxs, idx_t *vtx1idxs) const |
uint | adjust_order (const idx_t *vtx0idxs, const idx_t *vtx1idxs, const uint order) const |
adjust quadrature order order depending on diameter and distance of triangles | |
const tripair_quad_rule_t< real_t > * | quad_rule (const uint ncommon, const uint order) const |
return quadrature rule for ncommon vertices and order order | |
virtual void | eval_kernel (const idx_t tri0idx, const idx_t tri1idx, const TGrid::triangle_t &tri0, const TGrid::triangle_t &tri1, const tripair_quad_rule_t< real_t > *quad_rule, std::vector< value_t > &values) const =0 |
Additional Inherited Members | |
Protected Attributes inherited from TBEMBF< T_ansatzsp, T_testsp, T_value > | |
const ansatzsp_t * | _ansatz_sp |
function space for ansatz functions | |
const testsp_t * | _test_sp |
function space for test functions | |
TQuadBEMBF extends TBEMBF by providing quadrature rules for triangle pairs and defining a kernel function evaluation interface.
TQuadBEMBF | ( | const ansatzsp_t * | ansatzsp, |
const testsp_t * | testsp, | ||
const uint | order = CFG::BEM::quad_order , |
||
const bool | dist_ada = CFG::BEM::adaptive_quad_order |
||
) |
construct bilinear form over function spaces ansatzsp and testsp using quadratur with order order; if dist_ada is true, the quadrature order is adaptively adjusted according to distance
|
virtual |
evaluate subblock defined by row_ind × col_ind; the indices in row_ind and col_ind can be arbitrary, e.g. must not be contiguous
Implements TBilinearForm< T_val >.
Reimplemented in TInvarBasisQuadBEMBF< T_ansatzsp, T_testsp, T_val >, TInvarBasisQuadBEMBF< T_ansatzsp, T_testsp, T_value >, and TInvarBasisQuadBEMBF< T_ansatzsp, T_testsp, double >.
|
protectedpure virtual |
compute kernel at quadrature points in triangles tri0idx and tri1idx with coordinate indices tri0 and tri1 using quadrature rule quad_rule; the results for all points are returned in values
Implemented in TLaplaceDLPBF< T_ansatzsp, T_testsp, T_value >, TLaplaceSLPBF< T_ansatzsp, T_testsp, T_value >, THelmholtzDLPBF< T_ansatzsp, T_testsp, T_value >, THelmholtzSLPBF< T_ansatzsp, T_testsp, T_value >, and TExpBF< T_ansatzsp, T_testsp, T_value >.
|
protected |
reorder triangle vertices such that the k common vertices are ordered from 0,…,k-1; the number of common vertices is returned