KSPCHEBYSHEV#

The preconditioned Chebyshev iterative method

Options Database Keys#

  • -ksp_chebyshev_eigenvalues <emin,emax> - set approximations to the smallest and largest eigenvalues of the preconditioned operator. If these are accurate you will get much faster convergence.

  • -ksp_chebyshev_esteig <a,b,c,d> - estimate eigenvalues using a Krylov method, then use this transform for Chebyshev eigenvalue bounds (KSPChebyshevEstEigSet())

  • -ksp_chebyshev_esteig_steps - number of eigenvalue estimation steps

  • -ksp_chebyshev_esteig_noisy - use a noisy random number generator to create right-hand side for eigenvalue estimator

Notes#

The Chebyshev method requires both the matrix and preconditioner to be symmetric positive (semi) definite, but it can work as a smoother in other situations

Only has support for left preconditioning.

Chebyshev is configured as a smoother by default, targeting the “upper” part of the spectrum.

By default this uses KSPGMRES to estimate the extreme eigenvalues, if the matrix is known to be SPD then it uses KSPCG to estimate the eigenvalues. See MatIsSPDKnown() for how to indicate a Mat, matrix is SPD.

See Also#

KSP: Linear System Solvers, KSPCreate(), KSPSetType(), KSPType, KSP, KSPChebyshevSetEigenvalues(), KSPChebyshevEstEigSet(), KSPChebyshevEstEigSetUseNoisy() KSPRICHARDSON, KSPCG, PCMG

Level#

beginner

Location#

src/ksp/ksp/impls/cheby/cheby.c


Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages