HLIBpro 3.1
Loading...
Searching...
No Matches
TMatBuilder< value_t > Class Template Referenceabstract

Base class for building matrices implementing basic management and parallel construction.

#include <TMatBuilder.hh>

Inheritance diagram for TMatBuilder< value_t >:
TDenseMatBuilder< T_value > TH2MatBuilder< T_value > TIdMatBuilder< value_t > TSparseMatBuilder< value_t, sparse_value_t > TZeroMatBuilder< value_t >

Public Member Functions

 TMatBuilder (const bool coarsening=CFG::Build::coarsen)
 
void set_coarsening (const bool b)
 (de-) activate coarsening with standard accuracy (default: off)
 
void set_coarsening (const TTruncAcc &acc)
 activate coarsening with accuracy acc
 
void set_build_ghosts (const bool b)
 
void set_bc_builder (const TBCBuilder *bc_builder)
 set block cluster tree builder object (default: nullptr)
 
virtual std::unique_ptr< TMatrix< value_t > > build (const TBlockClusterTree *bct, const TTruncAcc &acc, TProgressBar *progress=nullptr) const
 build the H-matrix with block-wise accuracy defined by acc
 
virtual std::unique_ptr< TMatrix< value_t > > build (const TBlockCluster *bc, const TTruncAcc &acc, TProgressBar *progress=nullptr) const
 
virtual std::unique_ptr< TMatrix< value_t > > build (const TBlockClusterTree *cluster, const matform_t matformat, const TTruncAcc &acc, TProgressBar *progress=nullptr) const
 same as
 
virtual std::unique_ptr< TMatrix< value_t > > build (const TBlockCluster *cluster, const matform_t matformat, const TTruncAcc &acc, TProgressBar *progress=nullptr) const
 same as
 
virtual std::unique_ptr< TBlockMatrix< value_t > > build_blocked (const TBlockCluster *bc) const
 build blocked matrix
 
virtual std::unique_ptr< TMatrix< value_t > > build_leaf (const TBlockCluster *bc, const matform_t matformat, const TTruncAcc &acc) const =0
 build matrix corresponding to leaves in the block cluster tree
 
virtual std::unique_ptr< TMatrix< value_t > > build_ghost (const TBlockCluster *bc) const =0
 build placeholder matrix for remote blocks
 
virtual matform_t matrix_format () const =0
 return matrix format
 
const stat_t & statistics () const
 return statistics information
 

Protected Member Functions

virtual std::unique_ptr< TMatrix< value_t > > thr_build (const TBlockCluster *bc, const matform_t matformat, const TTruncAcc &acc, TProgressBar *progress) const
 threaded building process
 

Constructor & Destructor Documentation

◆ TMatBuilder()

template<typename value_t >
TMatBuilder ( const bool  coarsening = CFG::Build::coarsen)

construct matrix construction object with standard coarsening, e.g. same precision as in block construction

Member Function Documentation

◆ build() [1/3]

template<typename value_t >
virtual std::unique_ptr< TMatrix< value_t > > build ( const TBlockCluster bc,
const TTruncAcc acc,
TProgressBar progress = nullptr 
) const
virtual

same as standard

See also
build, but build block matrices for given block cluster without permutations etc.

◆ build() [2/3]

template<typename value_t >
virtual std::unique_ptr< TMatrix< value_t > > build ( const TBlockCluster cluster,
const matform_t  matformat,
const TTruncAcc acc,
TProgressBar progress = nullptr 
) const
virtual
See also
build but with user defined matrix format matformat

◆ build() [3/3]

template<typename value_t >
virtual std::unique_ptr< TMatrix< value_t > > build ( const TBlockClusterTree cluster,
const matform_t  matformat,
const TTruncAcc acc,
TProgressBar progress = nullptr 
) const
virtual
See also
build but with user defined matrix format matformat

◆ set_build_ghosts()

template<typename value_t >
void set_build_ghosts ( const bool  b)
inline

activate/deactivate construction of ghost matrices for non-local matrix blocks (default: off)