HLIBpro 3.1
|
Class for quadrature based bilinear forms with invariant basis functions. More...
#include <TQuadBEMBF.hh>
Public Member Functions | |
TInvarBasisQuadBEMBF (const ansatzsp_t *ansatzsp, const testsp_t *testsp, const uint order=CFG::BEM::quad_order, const bool dist_ada=CFG::BEM::adaptive_quad_order, const double ada_err=0) | |
virtual | ~TInvarBasisQuadBEMBF () |
destructor | |
virtual void | eval (const std::vector< idx_t > &row_ind, const std::vector< idx_t > &col_ind, BLAS::Matrix< value_t > &values) const |
![]() | |
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, const double ada_err=0) | |
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 |
![]() | |
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 | |
![]() | |
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 | |
void | compute_basis_func () |
compute ansatz and test basis functions for all quadrature points | |
const std::vector< ansatz_value_t > * | ansatz_val (const idx_t idx, const TGrid::triangle_t &tri, const uint ncommon, const uint order) const |
const std::vector< test_value_t > * | test_val (const idx_t idx, const TGrid::triangle_t &tri, const uint ncommon, const uint order) const |
same as | |
![]() | |
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 | |
![]() | |
const ansatzsp_t * | _ansatz_sp |
function space for ansatz functions | |
const testsp_t * | _test_sp |
function space for test functions | |
TConstBasisQuadBEMBF extends TQuadBEMBF for function spaces with invariant basis functions, e.g. with respect to translation, scaling and rotation. This allows their precomputation for the unit triangle, improving efficiency.
TInvarBasisQuadBEMBF | ( | const ansatzsp_t * | ansatzsp, |
const testsp_t * | testsp, | ||
const uint | order = CFG::BEM::quad_order , |
||
const bool | dist_ada = CFG::BEM::adaptive_quad_order , |
||
const double | ada_err = 0 |
||
) |
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
|
inlineprotected |
return ansatz basis function values for index idx in triangle tri for quadrature points with ncommon common vertices and order order
|
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 >.