petsc-3.6.2 2015-10-02
Report Typos and Errors


(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

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages