Skip to main content

Module preconditioned

Module preconditioned 

Source
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:

  1. r = b - A*x; z = M^{-1}*r; p = z; rz_old = r^T * z
  2. 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§

IdentityPreconditioner
Identity preconditioner (no preconditioning).
IterativeSolverResult
Result from a preconditioned iterative solver.
JacobiPreconditioner
Jacobi (diagonal) preconditioner.
PcgConfig
Configuration for the Preconditioned Conjugate Gradient solver.
PgmresConfig
Configuration for the Preconditioned GMRES(m) solver.

Traits§

Preconditioner
Preconditioner trait for iterative solvers.

Functions§

preconditioned_cg
Solves A * x = b using the Preconditioned Conjugate Gradient method.
preconditioned_gmres
Solves A * x = b using left-preconditioned GMRES(m) with restart.