GEOS
Public Types | Protected Types | List of all members
geos::RichardsonSolver< VECTOR > Class Template Referencefinal

Implements preconditioned modified Richardson iteration. More...

#include <RichardsonSolver.hpp>

Inheritance diagram for geos::RichardsonSolver< VECTOR >:
Inheritance graph
[legend]

Public Types

using Base = KrylovSolver< VECTOR >
 Alias for the base type.
 
using Vector = typename Base::Vector
 Alias for the vector type.
 
- Public Types inherited from geos::KrylovSolver< VECTOR >
using Base = LinearOperator< VECTOR >
 Base type.
 
using Vector = typename Base::Vector
 Alias for template parameter.
 
- Public Types inherited from geos::LinearOperator< VECTOR >
using Vector = VECTOR
 Alias for template parameter.
 

Public Member Functions

Constructor/Destructor Methods
 RichardsonSolver (LinearSolverParameters params, LinearOperator< Vector > const &matrix, LinearOperator< Vector > const &precond)
 Solver object constructor. More...
 
KrylovSolver interface
virtual void solve (Vector const &b, Vector &x) const override
 Solve preconditioned system. More...
 
virtual string methodName () const override
 Get name of the Krylov subspace method. More...
 
- Public Member Functions inherited from geos::KrylovSolver< VECTOR >
 KrylovSolver (LinearSolverParameters params, LinearOperator< Vector > const &matrix, LinearOperator< Vector > const &precond)
 Constructor. More...
 
virtual void apply (Vector const &src, Vector &dst) const override final
 Apply operator to a vector. More...
 
virtual globalIndex numGlobalRows () const override final
 
virtual globalIndex numGlobalCols () const override final
 
virtual localIndex numLocalRows () const override final
 
virtual localIndex numLocalCols () const override final
 
virtual MPI_Comm comm () const override final
 Get the MPI communicator the matrix was created with. More...
 
LinearSolverParameters const & parameters () const
 
LinearSolverResult const & result () const
 
arrayView1d< real64 const > history () const
 Get convergence history of a linear solve. More...
 
- Public Member Functions inherited from geos::LinearOperator< VECTOR >
 LinearOperator ()=default
 Constructor.
 
virtual ~LinearOperator ()=default
 Destructor.
 
virtual void residual (Vector const &x, Vector const &b, Vector &r) const
 Compute residual r = b - this(x). More...
 
virtual globalIndex numGlobalNonzeros () const
 
virtual localIndex numLocalNonzeros () const
 

Protected Types

using VectorTemp = typename KrylovSolver< VECTOR >::VectorTemp
 Alias for vector type that can be used for temporaries.
 
- Protected Types inherited from geos::KrylovSolver< VECTOR >
using VectorTemp = typename VectorStorageHelper< VECTOR >::type
 Alias for vector type that can be used for temporaries.
 

Additional Inherited Members

- Static Public Member Functions inherited from geos::KrylovSolver< VECTOR >
static std::unique_ptr< KrylovSolver< VECTOR > > create (LinearSolverParameters const &parameters, LinearOperator< VECTOR > const &matrix, LinearOperator< VECTOR > const &precond)
 Factory method for instantiating Krylov solver objects. More...
 
- Protected Member Functions inherited from geos::KrylovSolver< VECTOR >
void logProgress () const
 Output iteration progress (called by implementations). More...
 
void logResult () const
 Output convergence result (called by implementations).
 
- Static Protected Member Functions inherited from geos::KrylovSolver< VECTOR >
static VectorTemp createTempVector (Vector const &src)
 Helper function to create temporary vectors based on a source vector. More...
 
- Protected Attributes inherited from geos::KrylovSolver< VECTOR >
LinearSolverParameters m_params
 parameters of the solver
 
LinearOperator< Vector > const & m_operator
 reference to the operator to be solved
 
LinearOperator< Vector > const & m_precond
 reference to the preconditioning operator
 
LinearSolverResult m_result
 results of a solve
 
array1d< real64m_residualNorms
 Absolute residual norms at each iteration (if available)
 

Detailed Description

template<typename VECTOR>
class geos::RichardsonSolver< VECTOR >

Implements preconditioned modified Richardson iteration.

Template Parameters
VECTORtype of vectors this solver operates on
Note
Richardson is not a Krylov subspace method, but for convenience inherits from KrylovSolver; that class should really be renamed to IterativeSolver.

Definition at line 35 of file RichardsonSolver.hpp.

Constructor & Destructor Documentation

◆ RichardsonSolver()

template<typename VECTOR >
geos::RichardsonSolver< VECTOR >::RichardsonSolver ( LinearSolverParameters  params,
LinearOperator< Vector > const &  matrix,
LinearOperator< Vector > const &  precond 
)

Solver object constructor.

Parameters
[in]paramsparameters for the solver
[in]matrixreference to the system matrix
[in]precondreference to the preconditioning operator

Member Function Documentation

◆ methodName()

template<typename VECTOR >
virtual string geos::RichardsonSolver< VECTOR >::methodName ( ) const
inlineoverridevirtual

Get name of the Krylov subspace method.

Returns
the abbreviated name of the method

Implements geos::KrylovSolver< VECTOR >.

Definition at line 74 of file RichardsonSolver.hpp.

◆ solve()

template<typename VECTOR >
virtual void geos::RichardsonSolver< VECTOR >::solve ( Vector const &  b,
Vector x 
) const
overridevirtual

Solve preconditioned system.

Parameters
[in]bsystem right hand side.
[in,out]xsystem solution (input = initial guess, output = solution).

Implements geos::KrylovSolver< VECTOR >.


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