gko::preconditioner#

Preconditioners: operators applied alongside a solver to accelerate convergence. Each one is a LinOp that takes a system matrix at generation time and applies an approximate inverse on apply. For how to wire a preconditioner into a Krylov solver see the Solver / preconditioner picker.

Diagonal-block / pointwise#

  • Jacobi: block-Jacobi (and pointwise Jacobi as the max_block_size = 1 special case).

Incomplete factorisations#

  • Ic: Incomplete Cholesky applied as a preconditioner (forward-/backward-solve against the factor).

  • Ilu: Incomplete LU applied as a preconditioner.

  • Isai: Incomplete Sparse Approximate Inverse.

Relaxation methods#

  • GaussSeidel: Gauss-Seidel; the ω = 1 special case of SOR.

  • Sor: Successive Over-Relaxation (and Symmetric SOR).

Wrappers#

  • NullspaceProjection: wraps a preconditioner \(M\) as \(P\,M\,Q\), removing a nullspace from its output (and optionally a left nullspace from its input). Cg, Fcg, Minres, Gmres and Bicgstab insert it automatically when their nullspace parameter is set; it can also be used by hand as the preconditioner of another solver. See Singular systems and nullspaces.