GEOS
|
Base class for level builder implementations. More...
#include <LevelBuilderBase.hpp>
Public Types | |
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 | |
LevelBuilderBase (string name, LinearSolverParameters params) | |
Constructor. More... | |
virtual | ~LevelBuilderBase ()=default |
Destructor. | |
virtual Operator const & | prolongation () const =0 |
virtual Operator const & | restriction () const =0 |
virtual Matrix const & | matrix () const =0 |
virtual Operator const * | presmoother () const =0 |
virtual Operator const * | postsmoother () const =0 |
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 void | compute (Matrix const &fineMatrix)=0 |
Compute the current level. More... | |
virtual std::unique_ptr< PreconditionerBase< LAI > > | makeCoarseSolver () const =0 |
Instantiate coarsest level solver. More... | |
Static Public Member Functions | |
static std::unique_ptr< LevelBuilderBase< LAI > > | create (string name, LinearSolverParameters params) |
Factory interface to create level instances. More... | |
Protected Attributes | |
string | m_name |
Level name (label) | |
LinearSolverParameters | m_params |
Linear solver top-level parameters. | |
Base class for level builder implementations.
LAI | linear algebra interface type |
Definition at line 41 of file LevelBuilderBase.hpp.
|
explicit |
Constructor.
name | level name |
params | solver parameters (levels may need access to the full set of them) |
|
pure virtual |
Compute the current level.
fineMatrix | the previous (fine) level system matrix |
Implemented in geos::multiscale::MsrsbLevelBuilderBase< LAI >.
|
static |
Factory interface to create level instances.
name | level name |
params | solver parameters |
|
pure virtual |
Initialize a coarse level (levels 1 and above).
fineLevel | the previous (fine) level |
fineMatrix | the previous (fine) level system matrix |
Implemented in geos::multiscale::MsrsbLevelBuilderCoupled< LAI >, and geos::multiscale::MsrsbLevelBuilder< LAI >.
|
pure virtual |
Initialize the finest level (level 0).
domain | the physical domain object |
dofManager | the source DofManager |
comm | MPI communicator |
Implemented in geos::multiscale::MsrsbLevelBuilderCoupled< LAI >, and geos::multiscale::MsrsbLevelBuilder< LAI >.
|
pure virtual |
Instantiate coarsest level solver.
Implemented in geos::multiscale::MsrsbLevelBuilderCoupled< LAI >, and geos::multiscale::MsrsbLevelBuilder< LAI >.
|
pure virtual |
Implemented in geos::multiscale::MsrsbLevelBuilderBase< LAI >.
|
pure virtual |
Implemented in geos::multiscale::MsrsbLevelBuilderBase< LAI >.
|
pure virtual |
Implemented in geos::multiscale::MsrsbLevelBuilderBase< LAI >.
|
pure virtual |
Implemented in geos::multiscale::MsrsbLevelBuilderBase< LAI >.
|
pure virtual |
Implemented in geos::multiscale::MsrsbLevelBuilderBase< LAI >.