Sequential Jacobi-preconditioned CG solver.
Solver: CG (conjugate gradient) is an iterative method for solving linear systems with a symmetric, positive definite matrix.
See: Helfenstein, R., Koko, J. (2010). "Parallel preconditioned conjugate
gradient algorithm on GPU", Journal of Computational and Applied Mathematics, Volume 236, Issue 15, Pages 3584–3590, http://dx.doi.org/10.1016/j.cam.2011.04.025.
Preconditioner: Jacobi method. It can be damped by the relaxation parameter LinearSolver.PreconditionerRelaxation. In each preconditioning step, it is applied as often as given by the parameter LinearSolver.PreconditionerIterations.
See: Golub, G. H., and Van Loan, C. F. (2012). Matrix computations. JHU Press.
|
| template<class Matrix, class Vector> |
| bool | solve (const Matrix &A, Vector &x, const Vector &b) |
| std::string | name () const |
| | LinearSolver (const std::string ¶mGroup="") |
| | Contruct the solver.
|
| const std::string & | paramGroup () const |
| | the parameter group for getting parameter from the parameter tree
|
| int | verbosity () const |
| | the verbosity level
|
| void | setVerbosity (int v) |
| | set the verbosity level
|
| int | maxIter () const |
| | the maximum number of linear solver iterations
|
| void | setMaxIter (int i) |
| | set the maximum number of linear solver iterations
|
| double | residReduction () const |
| | the linear solver residual reduction
|
| void | setResidualReduction (double r) |
| | set the linear solver residual reduction
|
| double | relaxation () const |
| | the linear solver relaxation factor
|
| void | setRelaxation (double r) |
| | set the linear solver relaxation factor
|
| int | precondIter () const |
| | the number of preconditioner iterations
|
| void | setPrecondIter (int i) |
| | set the number of preconditioner iterations
|
| int | precondVerbosity () const |
| | the preconditioner verbosity
|
| void | setPrecondVerbosity (int verbosityLevel) |
| | set the preconditioner verbosity
|