GEOSX
|
Wrapper around hypre-based preconditioners. More...
#include <HyprePreconditioner.hpp>
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... | |
Wrapper around hypre-based preconditioners.
Definition at line 56 of file HyprePreconditioner.hpp.
|
explicit |
Constructor.
params | preconditioner parameters |
dofManager | the Degree-of-Freedom manager associated with matrix |
geosx::HyprePreconditioner::HyprePreconditioner | ( | LinearSolverParameters | params, |
array1d< HypreVector > const & | nearNullKernel, | ||
DofManager const *const | dofManager = nullptr |
||
) |
Constructor.
params | preconditioner parameters |
nearNullKernel | the user-provided near null kernel |
dofManager | the Degree-of-Freedom manager associated with matrix |
|
overridevirtual |
Apply operator to a vector.
src | Input vector (x). |
dst | Output vector (b). |
src
and dst
cannot alias the same vector.
|
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).
Reimplemented from geosx::PreconditionerBase< HypreInterface >.
|
overridevirtual |
Compute the preconditioner from a matrix.
mat | the matrix to precondition. |
HYPRE_Solver const& geosx::HyprePreconditioner::unwrapped | ( | ) | const |
Access the underlying implementation.
HyprePrecFuncs const& geosx::HyprePreconditioner::unwrappedFuncs | ( | ) | const |
Access the underlying implementation.
Intended for use by HypreSolver.