:orphan:
# PCSORGetSymmetric
Gets the form the SOR preconditioner is using; backward, or forward relaxation. The local variants perform SOR on each processor. By default forward relaxation is used.
## Synopsis
```
#include "petscpc.h"
PetscErrorCode PCSORGetSymmetric(PC pc, MatSORType *flag)
```
Logically Collective
## Input Parameter
- ***pc -*** the preconditioner context
## Output Parameter
- ***flag -*** one of the following
```none
SOR_FORWARD_SWEEP
SOR_BACKWARD_SWEEP
SOR_SYMMETRIC_SWEEP
SOR_LOCAL_FORWARD_SWEEP
SOR_LOCAL_BACKWARD_SWEEP
SOR_LOCAL_SYMMETRIC_SWEEP
```
## Options Database Keys
- ***-pc_sor_symmetric -*** Activates symmetric version
- ***-pc_sor_backward -*** Activates backward version
- ***-pc_sor_local_forward -*** Activates local forward version
- ***-pc_sor_local_symmetric -*** Activates local symmetric version
- ***-pc_sor_local_backward -*** Activates local backward version
## Note
To use the Eisenstat trick with SSOR, employ the `PCEISENSTAT` preconditioner,
which can be chosen with the option
- ***-pc_type eisenstat -*** Activates Eisenstat trick
## See Also
`PCSOR`, `PCEisenstatSetOmega()`, `PCSORSetIterations()`, `PCSORSetOmega()`, `PCSORSetSymmetric()`
## Level
intermediate
## Location
src/ksp/pc/impls/sor/sor.c
## Implementations
PCSORGetSymmetric_SOR in src/ksp/pc/impls/sor/sor.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/sor/sor.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)