|
GEOS
|
Linear solver adapter that routes GEOS Hypre systems through hypredrive. More...
#include <hypredrive.hpp>

Public Types | |
| using | Base = LinearSolverBase< HypreInterface > |
| Alias for the common linear-solver base implementation. | |
Public Types inherited from geos::LinearSolverBase< HypreInterface > | |
| 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 geos::PreconditionerBase< HypreInterface > | |
| 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 | |
| HypredriveSolver (LinearSolverParameters parameters) | |
| Construct a hypredrive-backed linear solver. More... | |
| ~HypredriveSolver () override | |
| Destroys the managed hypredrive object and releases any fallback solver state. | |
| void | setExecutionContext (LinearSolverExecutionContext const &context) override |
| Update the execution metadata associated with subsequent solves. More... | |
| void | setup (HypreMatrix const &mat) override |
| Build or refresh the solver/preconditioner for a matrix. More... | |
| void | apply (HypreVector const &src, HypreVector &dst) const override |
| Apply the configured operator as a preconditioner action. More... | |
| void | solve (HypreVector const &rhs, HypreVector &sol) const override |
| Solve the linear system with hypredrive. More... | |
| void | clear () override |
| Reset solver-owned state and destroy any active hypredrive object. | |
Public Member Functions inherited from geos::LinearSolverBase< HypreInterface > | |
| 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< HypreInterface > | |
| 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... | |
| virtual globalIndex | numGlobalNonzeros () const |
| virtual localIndex | numLocalNonzeros () const |
Friends | |
| class | HypredriveSolverTestPeer |
Additional Inherited Members | |
Protected Attributes inherited from geos::LinearSolverBase< HypreInterface > | |
| LinearSolverParameters | m_params |
| Parameters for the solver. | |
| LinearSolverResult | m_result |
| Result of most recent solve (status, timings) | |
Linear solver adapter that routes GEOS Hypre systems through hypredrive.
The solver owns a HYPREDRV_t handle when hypredrive is active and falls back to the legacy Hypre solver path when the requested configuration is unsupported.
Definition at line 79 of file hypredrive.hpp.
|
explicit |
Construct a hypredrive-backed linear solver.
| parameters | GEOS linear-solver parameters used to configure hypredrive. |
|
override |
Apply the configured operator as a preconditioner action.
| src | Input vector. |
| dst | Output vector receiving the operator application. |
|
overridevirtual |
Update the execution metadata associated with subsequent solves.
| context | Current solve context from the owning physics solver. |
Reimplemented from geos::LinearSolverBase< HypreInterface >.
|
override |
Build or refresh the solver/preconditioner for a matrix.
| mat | Matrix that defines the system structure and coefficients. |
|
override |
Solve the linear system with hypredrive.
| rhs | Right-hand side vector. |
| sol | Input initial guess and output solution vector. |