GEOS
|
Base class for MsRSB level builders. More...
#include <MsrsbLevelBuilderBase.hpp>
Public Types | |
using | Base = LevelBuilderBase< LAI > |
Alias for base type. | |
using | Vector = typename Base::Vector |
Alias for vector type. | |
using | Matrix = typename Base::Matrix |
Alias for matrix type. | |
using | Operator = typename Base::Operator |
Alias for operator type. | |
![]() | |
using | Vector = typename LAI::ParallelVector |
Alias for vector type. | |
using | Matrix = typename LAI::ParallelMatrix |
Alias for matrix type. | |
using | Operator = LinearOperator< Vector > |
Alias for operator type. | |
Public Member Functions | |
MsrsbLevelBuilderBase (string name, LinearSolverParameters params) | |
Constructor. More... | |
virtual Matrix const & | prolongation () const override |
virtual Operator const & | restriction () const override |
virtual Matrix const & | matrix () const override |
virtual PreconditionerBase< LAI > const * | presmoother () const override |
PreconditionerBase< LAI > * | presmoother () |
virtual PreconditionerBase< LAI > const * | postsmoother () const override |
PreconditionerBase< LAI > * | postsmoother () |
multiscale::DofManager & | dofManager () |
multiscale::DofManager const & | dofManager () const |
virtual void | compute (Matrix const &fineMatrix) override |
Compute the current level. More... | |
virtual bool | updateProlongation (Matrix const &fineMatrix)=0 |
Update current level's prolongation using a new previous level matrix. More... | |
![]() | |
LevelBuilderBase (string name, LinearSolverParameters params) | |
Constructor. More... | |
virtual | ~LevelBuilderBase ()=default |
Destructor. | |
virtual void | initializeFineLevel (DomainPartition &domain, geos::DofManager const &dofManager, MPI_Comm const &comm)=0 |
Initialize the finest level (level 0). More... | |
virtual void | initializeCoarseLevel (LevelBuilderBase< LAI > &fineLevel, Matrix const &fineMatrix)=0 |
Initialize a coarse level (levels 1 and above). More... | |
virtual std::unique_ptr< PreconditionerBase< LAI > > | makeCoarseSolver () const =0 |
Instantiate coarsest level solver. More... | |
Protected Attributes | |
MsrsbLevelBuilderBase const * | m_fineLevel {} |
Pointer to the fine level. | |
Matrix | m_prolongation |
Prolongation matrix P. | |
std::unique_ptr< Operator > | m_restriction |
Restriction (kept as abstract operator to allow for memory efficiency, e.g. when R = P^T) | |
Matrix | m_matrix |
Level operator matrix. | |
multiscale::DofManager | m_dofManager |
DofManager for the matrix. | |
std::unique_ptr< PreconditionerBase< LAI > > | m_preSmoother |
Pre-smoothing operator. | |
std::unique_ptr< PreconditionerBase< LAI > > | m_postSmoother |
Post-smoothing operator. | |
LinearSolverParameters | m_params |
Linear solver top-level parameters. | |
string | m_name |
Level name (label) | |
![]() | |
string | m_name |
Level name (label) | |
LinearSolverParameters | m_params |
Linear solver top-level parameters. | |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< LevelBuilderBase< LAI > > | create (string name, LinearSolverParameters params) |
Factory interface to create level instances. More... | |
Base class for MsRSB level builders.
LAI | linear algebra interface type |
Definition at line 37 of file MsrsbLevelBuilderBase.hpp.
|
explicit |
Constructor.
name | level name |
params | linear solver parameters |
|
overridevirtual |
Compute the current level.
fineMatrix | the previous (fine) level system matrix |
Implements geos::multiscale::LevelBuilderBase< LAI >.
|
inline |
Definition at line 104 of file MsrsbLevelBuilderBase.hpp.
|
inline |
Definition at line 109 of file MsrsbLevelBuilderBase.hpp.
|
inlineoverridevirtual |
Implements geos::multiscale::LevelBuilderBase< LAI >.
Definition at line 70 of file MsrsbLevelBuilderBase.hpp.
|
inline |
Definition at line 96 of file MsrsbLevelBuilderBase.hpp.
|
inlineoverridevirtual |
Implements geos::multiscale::LevelBuilderBase< LAI >.
Definition at line 88 of file MsrsbLevelBuilderBase.hpp.
|
inline |
Definition at line 83 of file MsrsbLevelBuilderBase.hpp.
|
inlineoverridevirtual |
Implements geos::multiscale::LevelBuilderBase< LAI >.
Definition at line 75 of file MsrsbLevelBuilderBase.hpp.
|
inlineoverridevirtual |
Implements geos::multiscale::LevelBuilderBase< LAI >.
Definition at line 60 of file MsrsbLevelBuilderBase.hpp.
|
inlineoverridevirtual |
Implements geos::multiscale::LevelBuilderBase< LAI >.
Definition at line 65 of file MsrsbLevelBuilderBase.hpp.
|
pure virtual |
Update current level's prolongation using a new previous level matrix.
fineMatrix | the previous level matrix |
Implemented in geos::multiscale::MsrsbLevelBuilderCoupled< LAI >, and geos::multiscale::MsrsbLevelBuilder< LAI >.