GEOS
Public Types | Public Member Functions | Protected Attributes | List of all members
geos::LinearSolverBase< LAI > Class Template Referenceabstract

Simple interface for linear solvers that allows to extract solution results. More...

#include <LinearSolverBase.hpp>

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

Public Types

using Base = PreconditionerBase< 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::PreconditionerBase< LAI >
using Base = LinearOperator< typename LAI::ParallelVector >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename LAI::ParallelMatrix
 Alias for matrix type.
 
- Public Types inherited from geos::LinearOperator< LAI::ParallelVector >
using Vector = LAI::ParallelVector
 Alias for template parameter.
 

Public Member Functions

 LinearSolverBase (LinearSolverParameters params)
 Constructor. More...
 
virtual void solve (Vector const &rhs, Vector &sol) const =0
 Solve preconditioned system. More...
 
LinearSolverParameters const & parameters () const
 
LinearSolverResult const & result () const
 
- Public Member Functions inherited from geos::PreconditionerBase< LAI >
virtual void setup (Matrix const &mat)
 Compute the preconditioner from a matrix. More...
 
virtual void clear ()
 Clean up the preconditioner setup. More...
 
virtual globalIndex numGlobalRows () const override
 Get the number of global rows. More...
 
virtual globalIndex numGlobalCols () const override
 Get the number of global columns. More...
 
virtual localIndex numLocalRows () const override
 Get the number of local rows. More...
 
virtual localIndex numLocalCols () const override
 Get the number of local columns. More...
 
virtual MPI_Comm comm () const override
 Get the MPI communicator the matrix was created with. More...
 
bool ready () const
 Chech if preconditioner is ready to use. More...
 
Matrix const & matrix () const
 Access the matrix the preconditioner was computed from. More...
 
virtual bool hasPreconditionerMatrix () const
 Check whether the preconditioner is available in matrix (explicit) form. More...
 
virtual Matrix const & preconditionerMatrix () const
 Access the preconditioner in matrix form (whenever available). It must be overridden by the specific preconditioner. More...
 
- Public Member Functions inherited from geos::LinearOperator< LAI::ParallelVector >
 LinearOperator ()=default
 Constructor.
 
virtual ~LinearOperator ()=default
 Destructor.
 
virtual void apply (Vector const &src, Vector &dst) const=0
 Apply operator to a vector, dst = this(src). More...
 
virtual void residual (Vector const &x, Vector const &b, Vector &r) const
 Compute residual r = b - this(x). More...
 

Protected Attributes

LinearSolverParameters m_params
 Parameters for the solver.
 
LinearSolverResult m_result
 Result of most recent solve (status, timings)
 

Detailed Description

template<typename LAI>
class geos::LinearSolverBase< LAI >

Simple interface for linear solvers that allows to extract solution results.

Template Parameters
LAIlinear algebra interface type

Definition at line 35 of file LinearSolverBase.hpp.

Constructor & Destructor Documentation

◆ LinearSolverBase()

template<typename LAI >
geos::LinearSolverBase< LAI >::LinearSolverBase ( LinearSolverParameters  params)
inlineexplicit

Constructor.

Parameters
paramssolver parameters

Definition at line 52 of file LinearSolverBase.hpp.

Member Function Documentation

◆ parameters()

template<typename LAI >
LinearSolverParameters const& geos::LinearSolverBase< LAI >::parameters ( ) const
inline
Returns
parameters of the solver.

Definition at line 66 of file LinearSolverBase.hpp.

◆ result()

template<typename LAI >
LinearSolverResult const& geos::LinearSolverBase< LAI >::result ( ) const
inline
Returns
result of the most recent solve.

Definition at line 74 of file LinearSolverBase.hpp.

◆ solve()

template<typename LAI >
virtual void geos::LinearSolverBase< LAI >::solve ( Vector const &  rhs,
Vector sol 
) const
pure virtual

Solve preconditioned system.

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

Implemented in geos::SuperLUDist< LAI >, and geos::SuiteSparse< LAI >.


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