:orphan: # DMSNESGetNGS get `SNES` Gauss-Seidel relaxation function ## Synopsis ``` #include "petscsnes.h" #include "petscdm.h" PetscErrorCode DMSNESGetNGS(DM dm, PetscErrorCode (**f)(SNES, Vec, Vec, void *), void **ctx) ``` Not Collective ## Input Parameter - ***dm -*** `DM` to be used with `SNES` ## Output Parameters - ***f -*** relaxation function which performs Gauss-Seidel sweeps, see `SNESSetNGS()` - ***ctx -*** context for residual evaluation ## Note `SNESGetNGS()` is normally used, but it calls this function internally because the user context is actually associated with the `DM`. ## Developer Note This makes the interface consistent regardless of whether the user interacts with a `DM` or not. If `DM` took a more central role at some later date, this could become the primary method of setting the residual. ## See Also `DMSNESSetContext()`, `SNESGetNGS()`, `DMSNESGetJacobian()`, `DMSNESGetFunction()` ## Level advanced ## Location src/snes/utils/dmsnes.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/utils/dmsnes.c) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)