:orphan: # KSPPREONLY This implements a method that applies ONLY the preconditioner exactly once. This may be used in inner iterations, where it is desired to allow multiple iterations as well as the "0-iteration" case. It is commonly used with the direct solver preconditioners like `PCLU` and `PCCHOLESKY`. There is an alias of `KSPNONE`. ## Options Database Key - ***-ksp_type preonly -*** use preconditioner only ## Notes Since this does not involve an iteration the basic `KSP` parameters such as tolerances and iteration counts do not apply To apply multiple preconditioners in a simple iteration use `KSPRICHARDSON` ## Developer Note Even though this method does not use any norms, the user is allowed to set the `KSPNormType` to any value. This is so the users does not have to change `KSPNormType` options when they switch from other `KSP` methods to this one. ## See Also [](ch_ksp), `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPRICHARDSON`, `KSPCHEBYSHEV` ## Level beginner ## Location src/ksp/ksp/impls/preonly/preonly.c ## Examples src/ksp/ksp/tutorials/ex52.c
src/ksp/ksp/tutorials/ex52f.F90
src/ksp/ksp/tutorials/ex57f.F90
src/ksp/ksp/tutorials/ex78.c
src/snes/tutorials/ex31.c
src/tao/constrained/tutorials/ex1.c
src/tao/constrained/tutorials/maros.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/impls/preonly/preonly.c) [Index of all KSP routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)