GEOS
|
This class creates and provides basic support for PETSc solvers. More...
#include <PetscSolver.hpp>
Public Types | |
using | Base = LinearSolverBase< PetscInterface > |
Alias for base type. | |
Public Types inherited from geos::LinearSolverBase< PetscInterface > | |
using | Base = PreconditionerBase< PetscInterface > |
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< PetscInterface > | |
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 | |
PetscSolver (LinearSolverParameters parameters) | |
Solver constructor, with parameter list reference. More... | |
virtual | ~PetscSolver () |
Destructor. | |
virtual void | setup (PetscMatrix const &mat) override |
Compute the preconditioner from a matrix. More... | |
virtual void | apply (PetscVector const &src, PetscVector &dst) const override |
Apply operator to a vector, dst = this(src) . More... | |
virtual void | solve (PetscVector const &rhs, PetscVector &sol) const override |
Solve preconditioned system. More... | |
virtual void | clear () override |
Clean up the preconditioner setup. More... | |
Public Member Functions inherited from geos::LinearSolverBase< PetscInterface > | |
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< PetscInterface > | |
virtual void | setup (Matrix const &mat) |
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... | |
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... | |
Additional Inherited Members | |
Protected Attributes inherited from geos::LinearSolverBase< PetscInterface > | |
LinearSolverParameters | m_params |
Parameters for the solver. | |
LinearSolverResult | m_result |
Result of most recent solve (status, timings) | |
This class creates and provides basic support for PETSc solvers.
Definition at line 36 of file PetscSolver.hpp.
|
explicit |
Solver constructor, with parameter list reference.
[in] | parameters | structure containing linear solver parameters |
|
overridevirtual |
Apply operator to a vector, dst = this(src)
.
src | input vector |
dst | output vector |
src
and dst
cannot alias the same vector (some implementations may allow this).
|
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 geos::PreconditionerBase< PetscInterface >.
|
overridevirtual |
Compute the preconditioner from a matrix.
mat | the matrix to precondition. |
|
overridevirtual |
Solve preconditioned system.
[in] | rhs | system right hand side. |
[in,out] | sol | system solution (input = initial guess, output = solution). |