petsc-3.6.0 2015-06-09
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

Developer Notes: We should add support for diagonal blocks that are singular to generate a Inf and thus cause KSPSolve() to terminate with KSP_DIVERGED_NANORIF instead of stopping the program allowing a nonlinear solver/ODE integrator to recover without stopping the program as currently happens.

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