19 #ifndef GEOS_LINEARALGEBRA_MULTISCALE_MSRSBLEVELBUILDERBASE_HPP
20 #define GEOS_LINEARALGEBRA_MULTISCALE_MSRSBLEVELBUILDERBASE_HPP
22 #include "linearAlgebra/common/PreconditionerBase.hpp"
36 template<
typename LAI >
Common interface for preconditioning operators.
Degree-of-freedom manager that works with multiscale mesh levels.
Base class for level builder implementations.
typename LAI::ParallelVector Vector
Alias for vector type.
string m_name
Level name (label)
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
LinearSolverParameters m_params
Linear solver top-level parameters.
LinearOperator< Vector > Operator
Alias for operator type.
Base class for MsRSB level builders.
virtual void compute(Matrix const &fineMatrix) override
Compute the current level.
virtual PreconditionerBase< LAI > const * presmoother() const override
virtual PreconditionerBase< LAI > const * postsmoother() const override
Matrix m_matrix
Level operator matrix.
virtual bool updateProlongation(Matrix const &fineMatrix)=0
Update current level's prolongation using a new previous level matrix.
multiscale::DofManager m_dofManager
DofManager for the matrix.
multiscale::DofManager const & dofManager() const
MsrsbLevelBuilderBase(string name, LinearSolverParameters params)
Constructor.
std::unique_ptr< Operator > m_restriction
Restriction (kept as abstract operator to allow for memory efficiency, e.g. when R = P^T)
virtual Matrix const & matrix() const override
typename Base::Operator Operator
Alias for operator type.
PreconditionerBase< LAI > * postsmoother()
multiscale::DofManager & dofManager()
virtual Matrix const & prolongation() const override
MsrsbLevelBuilderBase const * m_fineLevel
Pointer to the fine level.
std::unique_ptr< PreconditionerBase< LAI > > m_postSmoother
Post-smoothing operator.
PreconditionerBase< LAI > * presmoother()
virtual Operator const & restriction() const override
std::unique_ptr< PreconditionerBase< LAI > > m_preSmoother
Pre-smoothing operator.
Matrix m_prolongation
Prolongation matrix P.
Set of parameters for a linear solver or preconditioner.