:orphan: # PCEISENSTAT An implementation of SSOR (symmetric successive over relaxation, symmetric Gauss-Seidel) preconditioning that incorporates Eisenstat's trick to reduce the amount of computation needed. ## Options Database Keys - ***-pc_eisenstat_omega -*** Sets omega - ***-pc_eisenstat_no_diagonal_scaling -*** Activates `PCEisenstatSetNoDiagonalScaling()` ## Notes Only implemented for the `MATAIJ` matrix format. Not a true parallel SOR, in parallel this implementation corresponds to block Jacobi with SOR on each block. ## Developer Note Since this algorithm runs the Krylov method on a transformed linear system the implementation provides `PCPreSolve()` and `PCPostSolve()` routines that `KSP` uses to set up the transformed linear system. ## See Also `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCEisenstatGetOmega()`, `PCEisenstatSetNoDiagonalScaling()`, `PCEisenstatSetOmega()`, `PCSOR` ## Level beginner ## Location src/ksp/pc/impls/eisens/eisen.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/eisens/eisen.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)