HLIBpro
2.6
|
Combines binary space partitioning with nested dissection based on connectivity defined by a sparse matrix.
#include <TBSPCTBuilder.hh>
Public Member Functions | |
TBSPNDCTBuilder (const TSparseMatrix *S, const TBSPPartStrat *part_strat, const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0) | |
TBSPNDCTBuilder (const TBSPPartStrat *part_strat, const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0) | |
void | sync_interface_depth (const bool b) |
set mode for handling interface cluster tree depth, e.g. synchronise with domain clusters | |
virtual std::unique_ptr< TClusterTree > | build (const TCoordinate *coord, const idx_t idx_ofs=0) const |
virtual std::unique_ptr< TClusterTree > | build (const TCoordinate *coord, const TSparseMatrix *S, const idx_t idx_ofs=0) const |
virtual std::unique_ptr< TGeomCluster > | divide (const TNodeSet &dofs, const uint lvl, const TBBox &bbox, const TOptClusterSize &csize, const idx_t index_ofs, data_t &data) const |
recursively build cluster tree | |
virtual std::unique_ptr< TGeomCluster > | divide_if (const TNodeSet &dofs, const uint lvl, const uint max_lvl, const TBBox &bbox, const TOptClusterSize &csize, const idx_t index_ofs, data_t &data) const |
recursively build cluster tree for interfaces clusters | |
Public Member Functions inherited from TBSPCTBuilder | |
TBSPCTBuilder (const TBSPPartStrat *part_strat, const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0) | |
construct BSP cluster tree builder with partitioning strategy part_strat | |
virtual | ~TBSPCTBuilder () |
dtor | |
void | adjust_bb (const bool b) |
set flag for adjusting bounding box | |
void | sort_wrt_size (const bool b) |
set flag for sorting son cluster wrt. size | |
Public Member Functions inherited from TGeomCTBuilder | |
TGeomCTBuilder (const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0) | |
construct cluster tree builder | |
Additional Inherited Members | |
Protected Member Functions inherited from TGeomCTBuilder | |
virtual std::unique_ptr< TGeomCluster > | build_leaf (const TNodeSet &dofs, const uint lvl, const idx_t index_ofs, const TBBox &bbox, data_t &data) const |
create a leaf in a clustertree containing indices in dofs | |
virtual TBBox | compute_bb (const TNodeSet &dofs, const data_t &data) const |
compute bounding box of index set defined by dofs | |
virtual void | update_bb (const TNodeSet &dofs, TBBox &bbox, const data_t &data) const |
update bounding box of index set defined by dofs | |
virtual void | check_bb (TBBox &bbox, const data_t &data) const |
check and update bbox in case of degenerate axis, e.g. very small length | |
virtual TBBox | support_size (const node_t node, const bool only_idx, const data_t &data) const |
compute support size for single index | |
Protected Attributes inherited from TBSPCTBuilder | |
const TBSPPartStrat * | _part_strat |
type of partitioning strategy | |
Protected Attributes inherited from TGeomCTBuilder | |
uint | _n_min |
minimal size of a cluster, i.e. not smaller than this | |
uint | _min_leaf_lvl |
minimal level on which leaves may occur | |
bool | _adjust_bb |
flag for adjusting bounding boxes of nodes | |
bool | _sort_wrt_size |
flag for sorting sub clusters w.r.t. size | |
TBSPNDCTBuilder | ( | const TSparseMatrix * | S, |
const TBSPPartStrat * | part_strat, | ||
const uint | n_min = CFG::Cluster::nmin , |
||
const uint | min_leaf_lvl = 0 |
||
) |
construct cluster tree with partition strategy defined by part_strat and connectivity defined by S
TBSPNDCTBuilder | ( | const TBSPPartStrat * | part_strat, |
const uint | n_min = CFG::Cluster::nmin , |
||
const uint | min_leaf_lvl = 0 |
||
) |
construct cluster tree with partition strategy defined by part_strat (must use "build( coord, S )")
|
virtual |
build nested dissection cluster tree out of coordinate set coord and additional connectivity defined by local sparse matrix
Reimplemented from TGeomCTBuilder.
|
virtual |
build nested dissection cluster tree out of coordinate set coord and additional connectivity defined by sparse matrix S