Skip to main content
`Ctrl`+`K`

# DMSNESGetNGS

get `SNES` Gauss-Seidel relaxation function from a `DMSNES` object

## 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

SNES: Nonlinear Solvers, `DMSNES`, `DMSNESSetContext()`, `SNESGetNGS()`, `DMSNESGetJacobian()`, `DMSNESGetFunction()`

## Level

developer

## Location

src/snes/utils/dmsnes.c

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