PetIBM 0.5.4
Toolbox and applications of the immersed-boundary method for distributed-memory architectures
|
Iterative solver using wrapper of AmgX. More...
#include <linsolveramgx.h>
Public Member Functions | |
LinSolverAmgX (const std::string &solverName, const std::string &file) | |
Constructor. More... | |
virtual | ~LinSolverAmgX () |
Default destructor. More... | |
virtual PetscErrorCode | destroy () |
Manually destroy the data in the current instance. More... | |
virtual PetscErrorCode | setMatrix (const Mat &A) |
Set the coefficient matrix of the linear system. More... | |
virtual PetscErrorCode | solve (Vec &x, Vec &b) |
Solve the linear system. More... | |
virtual PetscErrorCode | getIters (PetscInt &iters) |
Get the number of iterations of the solver. More... | |
virtual PetscErrorCode | getResidual (PetscReal &res) |
Get the final residual of the solver. More... | |
PetscErrorCode | printInfo () const |
Print information to standard output. More... | |
PetscErrorCode | getType (std::string &_type) const |
Get the type of this instance. More... | |
Protected Member Functions | |
virtual PetscErrorCode | init () |
Private initialization function. More... | |
Protected Attributes | |
AmgXSolver | amgx |
the underlying AmgX wrapper solver. More... | |
std::string | name |
Name of the linear solver. More... | |
std::string | config |
Path of the solver configuration file to read. More... | |
std::string | type |
Type of the linear solver. More... | |
Iterative solver using wrapper of AmgX.
This class holds a AmgXSolver from AmgXWrapper package. Users must enable AmgX and AmgXWrapper when building PetIBM in order to use this class.
Definition at line 28 of file linsolveramgx.h.
petibm::linsolver::LinSolverAmgX::LinSolverAmgX | ( | const std::string & | solverName, |
const std::string & | file | ||
) |
Constructor.
solverName | [in] Name of the solver. |
file | [in] Path of the configuration file for the solver. |
Definition at line 20 of file linsolveramgx.cpp.
|
virtual |
Default destructor.
Definition at line 28 of file linsolveramgx.cpp.
|
virtual |
Manually destroy the data in the current instance.
Reimplemented from petibm::linsolver::LinSolverBase.
Definition at line 41 of file linsolveramgx.cpp.
|
virtual |
Get the number of iterations of the solver.
iters | [out] Number of iterations. |
Implements petibm::linsolver::LinSolverBase.
Definition at line 102 of file linsolveramgx.cpp.
|
virtual |
Get the final residual of the solver.
res | [out] Residual. |
Implements petibm::linsolver::LinSolverBase.
Definition at line 114 of file linsolveramgx.cpp.
|
inherited |
Get the type of this instance.
_type | [out] String representing the type. |
Possible returns for _type
are NVIDIA AmgX
or PETSc KSP
.
Definition at line 49 of file linsolver.cpp.
|
protectedvirtual |
Private initialization function.
The design of linear solver classes is that only the factory function can initialize the instances, and it doesn't allow user to declare instance first and initialize the instance later. So it seems not necessary to make initialization function public.
Implements petibm::linsolver::LinSolverBase.
Definition at line 54 of file linsolveramgx.cpp.
|
inherited |
Print information to standard output.
Definition at line 29 of file linsolver.cpp.
|
virtual |
Set the coefficient matrix of the linear system.
A | [in] Coefficient matrix. |
Implements petibm::linsolver::LinSolverBase.
Definition at line 78 of file linsolveramgx.cpp.
|
virtual |
Solve the linear system.
x | [in, out] Vector of unknowns. |
b | [in] Right-hand side of the linear system. |
Implements petibm::linsolver::LinSolverBase.
Definition at line 90 of file linsolveramgx.cpp.
|
protected |
the underlying AmgX wrapper solver.
Definition at line 54 of file linsolveramgx.h.
|
protectedinherited |
Path of the solver configuration file to read.
Definition at line 132 of file linsolver.h.
|
protectedinherited |
Name of the linear solver.
The name should match the prefix used for to configure the solver from the command line or from a configuration file. For example, if the name is "velocity", the prefix should be "_velocity".
Definition at line 129 of file linsolver.h.
|
protectedinherited |
Type of the linear solver.
Definition at line 135 of file linsolver.h.