Go to the documentation of this file.
7 #ifndef INCLUDE_JET_FDM_ICCG_SOLVER3_H_
8 #define INCLUDE_JET_FDM_ICCG_SOLVER3_H_
42 struct Preconditioner final {
52 struct PreconditionerCompressed final {
62 unsigned int _maxNumberOfIterations;
63 unsigned int _lastNumberOfIterations;
65 double _lastResidualNorm;
72 Preconditioner _precond;
79 PreconditionerCompressed _precondComp;
81 void clearUncompressedVectors();
82 void clearCompressedVectors();
90 #endif // INCLUDE_JET_FDM_ICCG_SOLVER3_H_
3-D read-only array accessor class.
Definition: array_accessor3.h:270
double tolerance() const
Returns the max residual tolerance for the ICCG method.
double lastResidual() const
Returns the last residual after the ICCG iterations.
unsigned int maxNumberOfIterations() const
Returns the max number of ICCG iterations.
unsigned int lastNumberOfIterations() const
Returns the last number of ICCG iterations the solver made.
3-D finite difference-type linear system solver using incomplete Cholesky conjugate gradient (ICCG).
Definition: fdm_iccg_solver3.h:18
Definition: advection_solver2.h:18
Abstract base class for 3-D finite difference-type linear system solver.
Definition: fdm_linear_system_solver3.h:17
Compressed linear system (Ax=b) for 3-D finite differencing.
Definition: fdm_linear_system3.h:57
FdmIccgSolver3(unsigned int maxNumberOfIterations, double tolerance)
Constructs the solver with given parameters.
Linear system (Ax=b) for 3-D finite differencing.
Definition: fdm_linear_system3.h:39
std::shared_ptr< FdmIccgSolver3 > FdmIccgSolver3Ptr
Shared pointer type for the FdmIccgSolver3.
Definition: fdm_iccg_solver3.h:86
VectorN< double > VectorND
Double-type N-D vector.
Definition: vector_n.h:404
Array3< double > FdmVector3
Vector type for 3-D finite differencing.
Definition: fdm_linear_system3.h:33
bool solve(FdmLinearSystem3 *system) override
Solves the given linear system.
3-D array class.
Definition: array3.h:43
bool solveCompressed(FdmCompressedLinearSystem3 *system) override
Solves the given compressed linear system.