GEOSX
Public Types | Public Member Functions | List of all members
geosx::HyprePreconditioner Class Referencefinal

Wrapper around hypre-based preconditioners. More...

#include <HyprePreconditioner.hpp>

Inheritance diagram for geosx::HyprePreconditioner:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

 HyprePreconditioner (LinearSolverParameters params, DofManager const *const dofManager=nullptr)
 Constructor. More...
 
 HyprePreconditioner (LinearSolverParameters params, array1d< HypreVector > const &nearNullKernel, DofManager const *const dofManager=nullptr)
 Constructor. More...
 
virtual ~HyprePreconditioner () override
 Destructor.
 
void create ()
 Create the preconditioner from the input parameters.
 
virtual void compute (Matrix const &mat) override
 Compute the preconditioner from a matrix. More...
 
virtual void apply (Vector const &src, Vector &dst) const override
 Apply operator to a vector. More...
 
virtual void clear () override
 Clean up the preconditioner setup. More...
 
HYPRE_Solver const & unwrapped () const
 Access the underlying implementation. More...
 
HyprePrecFuncs const & unwrappedFuncs () const
 Access the underlying implementation. More...
 
- Public Member Functions inherited from geosx::PreconditionerBase< HypreInterface >
virtual void compute (Matrix const &mat)
 Compute the preconditioner from a matrix. More...
 
virtual void compute (Matrix const &mat, DofManager const &dofManager)
 Compute the preconditioner from a matrix. 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...
 
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 geosx::LinearOperator< HypreInterface ::ParallelVector >
 LinearOperator ()=default
 Constructor.
 
virtual ~LinearOperator ()=default
 Destructor.
 
virtual void apply (Vector const &src, Vector &dst) const=0
 Apply operator to a vector. More...
 
virtual void residual (Vector const &x, Vector const &b, Vector &r) const
 Compute residual r = Ax - b. More...
 

Detailed Description

Wrapper around hypre-based preconditioners.

Definition at line 56 of file HyprePreconditioner.hpp.

Constructor & Destructor Documentation

◆ HyprePreconditioner() [1/2]

geosx::HyprePreconditioner::HyprePreconditioner ( LinearSolverParameters  params,
DofManager const *const  dofManager = nullptr 
)
explicit

Constructor.

Parameters
paramspreconditioner parameters
dofManagerthe Degree-of-Freedom manager associated with matrix

◆ HyprePreconditioner() [2/2]

geosx::HyprePreconditioner::HyprePreconditioner ( LinearSolverParameters  params,
array1d< HypreVector > const &  nearNullKernel,
DofManager const *const  dofManager = nullptr 
)

Constructor.

Parameters
paramspreconditioner parameters
nearNullKernelthe user-provided near null kernel
dofManagerthe Degree-of-Freedom manager associated with matrix

Member Function Documentation

◆ apply()

virtual void geosx::HyprePreconditioner::apply ( Vector const &  src,
Vector dst 
) const
overridevirtual

Apply operator to a vector.

Parameters
srcInput vector (x).
dstOutput vector (b).
Warning
src and dst cannot alias the same vector.

◆ clear()

virtual void geosx::HyprePreconditioner::clear ( )
overridevirtual

Clean up the preconditioner setup.

Releases memory used and allows the matrix to be deleted cleanly. This method should be called before the matrix used to compute the preconditioner goes out of scope or is re-created. Some implementations require the matrix to outlive the preconditioner (for example, Trilinos/ML may crash the program if deleted after the matrix).

Note
Should be properly overridden in derived classes, which may call this method.

Reimplemented from geosx::PreconditionerBase< HypreInterface >.

◆ compute()

virtual void geosx::HyprePreconditioner::compute ( Matrix const &  mat)
overridevirtual

Compute the preconditioner from a matrix.

Parameters
matthe matrix to precondition.

◆ unwrapped()

HYPRE_Solver const& geosx::HyprePreconditioner::unwrapped ( ) const

Access the underlying implementation.

Returns
reference to hypre preconditioner

◆ unwrappedFuncs()

HyprePrecFuncs const& geosx::HyprePreconditioner::unwrappedFuncs ( ) const

Access the underlying implementation.

Returns
reference to container of preconditioner functions.

Intended for use by HypreSolver.


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