Template Numerical Library version\ main:94209208
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
TNL::Solvers::Linear::HyprePCG Class Reference

Wrapper for the PCG solver in Hypre. More...

#include <TNL/Solvers/Linear/Hypre.h>

Inheritance diagram for TNL::Solvers::Linear::HyprePCG:
Inheritance graph
[legend]
Collaboration diagram for TNL::Solvers::Linear::HyprePCG:
Collaboration graph
[legend]

Public Member Functions

 HyprePCG (const Matrices::HypreParCSRMatrix &A)
 
 HyprePCG (MPI_Comm comm)
 
HYPRE_Int getNumIterations () const
 
void setAbsTol (double atol)
 
void setMatrix (const Matrices::HypreParCSRMatrix &op, bool reuse_setup=false) override
 Set the matrix of the linear system to be solved.
 
void setMaxIter (int max_iter)
 
void setPreconditioner (HypreSolver &precond)
 Set the Hypre solver to be used as a preconditioner.
 
void setPrintLevel (int print_level)
 
void setResidualConvergenceOptions (int res_frequency=-1, double rtol=0.0)
 Use the L2 norm of the residual for measuring PCG convergence, plus (optionally) 1) periodically recompute true residuals from scratch; and 2) enable residual-based stopping criteria.
 
void setTol (double tol)
 
HYPRE_PtrToParSolverFcn setupFcn () const override
 Hypre's internal setup function.
 
HYPRE_PtrToParSolverFcn solveFcn () const override
 Hypre's internal solve function.
 
- Public Member Functions inherited from TNL::Solvers::Linear::HypreSolver
 HypreSolver (const Matrices::HypreParCSRMatrix &A)
 
virtual operator HYPRE_Solver () const
 Type-cast to HYPRE_Solver.
 
void setErrorMode (ErrorMode err_mode) const
 Set the behavior for treating Hypre errors, see the ErrorMode enum. The default mode in the base class is ABORT_HYPRE_ERRORS.
 
virtual void setup (const Containers::HypreParVector &b, Containers::HypreParVector &x) const
 Setup the solver for solving the linear system Ax=b.
 
virtual void solve (const Containers::HypreParVector &b, Containers::HypreParVector &x) const
 Solve the linear system Ax=b.
 

Protected Member Functions

void postSolveHook () const override
 Hook function that is called at the end of solve.
 

Additional Inherited Members

- Public Types inherited from TNL::Solvers::Linear::HypreSolver
enum  ErrorMode { IGNORE_HYPRE_ERRORS , WARN_HYPRE_ERRORS , ABORT_HYPRE_ERRORS }
 How to treat errors returned by Hypre function calls. More...
 
- Protected Attributes inherited from TNL::Solvers::Linear::HypreSolver
const Matrices::HypreParCSRMatrixA = nullptr
 The linear system matrix.
 
ErrorMode error_mode = ABORT_HYPRE_ERRORS
 How to treat Hypre errors.
 
bool setup_called = false
 Indicates if Hypre's setup function was already called.
 
HYPRE_Solver solver = nullptr
 Handle for the Hypre solver.
 

Detailed Description

Wrapper for the PCG solver in Hypre.

Parameters can be set using native Hypre functions, e.g.

HYPRE_PCGSetTol(solver, 1e-7);
Wrapper for the PCG solver in Hypre.
Definition Hypre.h:134
HYPRE_Solver solver
Handle for the Hypre solver.
Definition Hypre.h:28

See the Hypre Reference Manual for the available parameters.

Member Function Documentation

◆ postSolveHook()

void TNL::Solvers::Linear::HyprePCG::postSolveHook ( ) const
overrideprotectedvirtual

Hook function that is called at the end of solve.

Reimplemented from TNL::Solvers::Linear::HypreSolver.

◆ setMatrix()

void TNL::Solvers::Linear::HyprePCG::setMatrix ( const Matrices::HypreParCSRMatrix & op,
bool reuse_setup = false )
overridevirtual

Set the matrix of the linear system to be solved.

This function also resets the internal flag indicating whether the Hypre setup function was called for the current matrix.

Parameters
opThe input matrix.
reuse_setupWhen true, the result of the previous setup phase will be preserved, i.e., the solver (and preconditioner) will not be updated for the new matrix when calling the solve method.

Reimplemented from TNL::Solvers::Linear::HypreSolver.

◆ setupFcn()

HYPRE_PtrToParSolverFcn TNL::Solvers::Linear::HyprePCG::setupFcn ( ) const
inlineoverridevirtual

Hypre's internal setup function.

Implements TNL::Solvers::Linear::HypreSolver.

◆ solveFcn()

HYPRE_PtrToParSolverFcn TNL::Solvers::Linear::HyprePCG::solveFcn ( ) const
inlineoverridevirtual

Hypre's internal solve function.

Implements TNL::Solvers::Linear::HypreSolver.


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