Expand description
Preconditioned iterative solvers: PCG and PGMRES(m).
Provides preconditioned variants of the Conjugate Gradient and GMRES(m)
solvers. A preconditioner approximates M^{-1} to accelerate convergence
by reducing the condition number of the effective system.
§Algorithm — Preconditioned CG (PCG)
Standard CG with a preconditioner M applied to the residual:
- r = b - A*x; z = M^{-1}*r; p = z; rz_old = r^T * z
- For each iteration: a. Ap = A * p b. alpha = rz_old / (p^T * Ap) c. x += alpha * p d. r -= alpha * Ap e. z = M^{-1} * r f. rz_new = r^T * z g. If ||r|| < tol * ||b||: converged h. beta = rz_new / rz_old i. p = z + beta * p j. rz_old = rz_new
§Algorithm — Preconditioned GMRES(m) (Left-preconditioned)
Left-preconditioned GMRES builds the Krylov space from M^{-1}*A instead
of A, solving the preconditioned system M^{-1} A x = M^{-1} b.
Structs§
- Identity
Preconditioner - Identity preconditioner (no preconditioning).
- Iterative
Solver Result - Result from a preconditioned iterative solver.
- Jacobi
Preconditioner - Jacobi (diagonal) preconditioner.
- PcgConfig
- Configuration for the Preconditioned Conjugate Gradient solver.
- Pgmres
Config - Configuration for the Preconditioned GMRES(m) solver.
Traits§
- Preconditioner
- Preconditioner trait for iterative solvers.
Functions§
- preconditioned_
cg - Solves
A * x = busing the Preconditioned Conjugate Gradient method. - preconditioned_
gmres - Solves
A * x = busing left-preconditioned GMRES(m) with restart.