Skip to main content
`Ctrl`+`K`

# 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