petsc-3.7.3 2016-07-24
Report Typos and Errors

# PCSOR

(S)SOR (successive over relaxation, Gauss-Seidel) preconditioning

### Options Database Keys

| -pc_sor_symmetric | - Activates symmetric version
| -pc_sor_backward | - Activates backward version
| -pc_sor_forward | - Activates forward version
| -pc_sor_local_forward | - Activates local forward version
| -pc_sor_local_symmetric | - Activates local symmetric version (default version)
| -pc_sor_local_backward | - Activates local backward version
| -pc_sor_omega <omega> | - Sets omega
| -pc_sor_diagonal_shift <shift> | - shift the diagonal entries; useful if the matrix has zeros on the diagonal
| -pc_sor_its <its> | - Sets number of iterations (default 1)
| -pc_sor_lits <lits> | - Sets number of local iterations (default 1)

Notes: Only implemented for the AIJ and SeqBAIJ matrix formats. Not a true parallel SOR, in parallel this implementation corresponds to block Jacobi with SOR on each block.

For AIJ matrix if a diagonal entry is zero (and the diagonal shift is zero) then by default the inverse of that zero will be used and hence the KSPSolve() will terminate with KSP_DIVERGED_NANORIF. If the option KSPSetErrorIfNotConverged() or -ksp_error_if_not_converged the code will terminate as soon as it detects the zero pivot.

For SeqBAIJ matrices this implements point-block SOR, but the omega, its, lits options are not supported.

For SeqBAIJ the diagonal blocks are inverted using dense LU with partial pivoting. If a zero pivot is detected the computation is stopped with an error

### See Also

PCCreate(), PCSetType(), PCType (for list of available types), PC,
PCSORSetIterations(), PCSORSetSymmetric(), PCSORSetOmega(), PCEISENSTAT

Level:beginner
Location: src/ksp/pc/impls/sor/sor.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/ksp/ksp/examples/tutorials/ex21f.F.html