GEOS
Public Types | Public Member Functions | List of all members
geos::multiscale::MsrsbLevelBuilderCoupled< LAI > Class Template Reference

MsRSB level builder for coupled problems. More...

#include <MsrsbLevelBuilderCoupled.hpp>

Inheritance diagram for geos::multiscale::MsrsbLevelBuilderCoupled< LAI >:
Inheritance graph
[legend]

Public Types

using Base = MsrsbLevelBuilderBase< LAI >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename Base::Matrix
 Alias for matrix type.
 
- Public Types inherited from geos::multiscale::MsrsbLevelBuilderBase< LAI >
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.
 
- Public Types inherited from geos::multiscale::LevelBuilderBase< LAI >
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

 MsrsbLevelBuilderCoupled (string name, LinearSolverParameters params)
 Constructor. More...
 
virtual void initializeFineLevel (DomainPartition &domain, geos::DofManager const &dofManager, MPI_Comm const &comm) override
 Initialize the finest level (level 0). More...
 
virtual void initializeCoarseLevel (LevelBuilderBase< LAI > &fineLevel, Matrix const &fineMatrix) override
 Initialize a coarse level (levels 1 and above). More...
 
virtual bool updateProlongation (Matrix const &fineMatrix) override
 Update current level's prolongation using a new previous level matrix. More...
 
virtual std::unique_ptr< PreconditionerBase< LAI > > makeCoarseSolver () const override
 Instantiate coarsest level solver. More...
 
- Public Member Functions inherited from geos::multiscale::MsrsbLevelBuilderBase< LAI >
 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::DofManagerdofManager ()
 
multiscale::DofManager const & dofManager () const
 
virtual void compute (Matrix const &fineMatrix) override
 Compute the current level. More...
 
- Public Member Functions inherited from geos::multiscale::LevelBuilderBase< LAI >
 LevelBuilderBase (string name, LinearSolverParameters params)
 Constructor. More...
 
virtual ~LevelBuilderBase ()=default
 Destructor.
 

Additional Inherited Members

- Static Public Member Functions inherited from geos::multiscale::LevelBuilderBase< LAI >
static std::unique_ptr< LevelBuilderBase< LAI > > create (string name, LinearSolverParameters params)
 Factory interface to create level instances. More...
 
- Protected Attributes inherited from geos::multiscale::MsrsbLevelBuilderBase< LAI >
MsrsbLevelBuilderBase const * m_fineLevel {}
 Pointer to the fine level.
 
Matrix m_prolongation
 Prolongation matrix P.
 
std::unique_ptr< Operatorm_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)
 
- Protected Attributes inherited from geos::multiscale::LevelBuilderBase< LAI >
string m_name
 Level name (label)
 
LinearSolverParameters m_params
 Linear solver top-level parameters.
 

Detailed Description

template<typename LAI>
class geos::multiscale::MsrsbLevelBuilderCoupled< LAI >

MsRSB level builder for coupled problems.

Template Parameters
LAIlinear algebra interface type

Definition at line 35 of file MsrsbLevelBuilderCoupled.hpp.

Constructor & Destructor Documentation

◆ MsrsbLevelBuilderCoupled()

template<typename LAI >
geos::multiscale::MsrsbLevelBuilderCoupled< LAI >::MsrsbLevelBuilderCoupled ( string  name,
LinearSolverParameters  params 
)
explicit

Constructor.

Parameters
namelevel name
paramslinear solver parameters

Member Function Documentation

◆ initializeCoarseLevel()

template<typename LAI >
virtual void geos::multiscale::MsrsbLevelBuilderCoupled< LAI >::initializeCoarseLevel ( LevelBuilderBase< LAI > &  fineLevel,
Matrix const &  fineMatrix 
)
overridevirtual

Initialize a coarse level (levels 1 and above).

Parameters
fineLevelthe previous (fine) level
fineMatrixthe previous (fine) level system matrix

Implements geos::multiscale::LevelBuilderBase< LAI >.

◆ initializeFineLevel()

template<typename LAI >
virtual void geos::multiscale::MsrsbLevelBuilderCoupled< LAI >::initializeFineLevel ( DomainPartition domain,
geos::DofManager const &  dofManager,
MPI_Comm const &  comm 
)
overridevirtual

Initialize the finest level (level 0).

Parameters
domainthe physical domain object
dofManagerthe source DofManager
commMPI communicator

Implements geos::multiscale::LevelBuilderBase< LAI >.

◆ makeCoarseSolver()

template<typename LAI >
virtual std::unique_ptr< PreconditionerBase< LAI > > geos::multiscale::MsrsbLevelBuilderCoupled< LAI >::makeCoarseSolver ( ) const
overridevirtual

Instantiate coarsest level solver.

Returns
owning pointer to the solver

Implements geos::multiscale::LevelBuilderBase< LAI >.

◆ updateProlongation()

template<typename LAI >
virtual bool geos::multiscale::MsrsbLevelBuilderCoupled< LAI >::updateProlongation ( Matrix const &  fineMatrix)
overridevirtual

Update current level's prolongation using a new previous level matrix.

Parameters
fineMatrixthe previous level matrix
Returns
whether an update was actually performed (it may not be when the change is below threshold)

Implements geos::multiscale::MsrsbLevelBuilderBase< LAI >.


The documentation for this class was generated from the following file: