:orphan: # MatSORType What type of (S)SOR to perform ## Synopsis ``` typedef enum { SOR_FORWARD_SWEEP = 1, SOR_BACKWARD_SWEEP = 2, SOR_SYMMETRIC_SWEEP = 3, SOR_LOCAL_FORWARD_SWEEP = 4, SOR_LOCAL_BACKWARD_SWEEP = 8, SOR_LOCAL_SYMMETRIC_SWEEP = 12, SOR_ZERO_INITIAL_GUESS = 16, SOR_EISENSTAT = 32, SOR_APPLY_UPPER = 64, SOR_APPLY_LOWER = 128 } MatSORType; ``` ## Values - ***`SOR_FORWARD_SWEEP` -*** do a sweep from the first row of the matrix to the last - ***`SOR_BACKWARD_SWEEP` -*** do a sweep from the last row to the first - ***`SOR_SYMMETRIC_SWEEP` -*** do a sweep from the first row to the last and then back to the first - ***`SOR_LOCAL_FORWARD_SWEEP` -*** each MPI rank does its own forward sweep with no communication - ***`SOR_LOCAL_BACKWARD_SWEEP` -*** each MPI rank does its own backward sweep with no communication - ***`SOR_LOCAL_SYMMETRIC_SWEEP` -*** each MPI rank does its own symmetric sweep with no communication - ***`SOR_ZERO_INITIAL_GUESS` -*** indicates the initial solution is zero so the sweep can avoid unneeded computation - ***`SOR_EISENSTAT` -*** apply the Eisentat application of SOR, see `PCEISENSTAT` - ***`SOR_APPLY_UPPER` -*** multiply by the upper triangular portion of the matrix - ***`SOR_APPLY_LOWER` -*** multiply by the lower triangular portion of the matrix ## Note These may be bitwise ORd together ## Developer Note Since `MatSORType` may be bitwise ORd together, so do not change the numerical values below ## See Also [](ch_matrices), `MatSOR()` ## Level beginner ## Location include/petscmat.h ## Examples src/tao/pde_constrained/tutorials/hyperbolic.c
src/tao/pde_constrained/tutorials/parabolic.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h) [Index of all Mat routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)