Skip to main content
`Ctrl`+`K`

# SNESGetFunction

Returns the function that defines the nonlinear system set with `SNESSetFunction()`

## Synopsis

    #include "petscsnes.h"
    #include "petscsnes.h"
    PetscErrorCode SNESGetFunction(SNES snes, Vec *r, SNESFunctionFn **f, PetscCtxRt ctx)

Not Collective, but `r` is parallel if `snes` is parallel. Collective if `r` is requested, but has not been created yet.

## Input Parameter

- snes - the `SNES` context

## Output Parameters

- r - the vector that is used to store residuals (or `NULL` if you don’t want it)

- f - the function (or `NULL` if you don’t want it); for calling sequence see `SNESFunctionFn`

- ctx - the function context (or `NULL` if you don’t want it)

## Note

The vector `r` DOES NOT, in general, contain the current value of the `SNES` nonlinear function

## See Also

SNES: Nonlinear Solvers, `SNES`, `SNESSolve()`, `SNESSetFunction()`, `SNESGetSolution()`, `SNESFunctionFn`

## Level

advanced

## Location

src/snes/interface/snes.c

## Examples

src/snes/tutorials/ex22.c
src/ts/tutorials/ex48.c
src/snes/tutorials/ex21.c
src/snes/tutorials/ex30.c
src/snes/tutorials/ex1.c
src/ts/tutorials/ex30.c
src/snes/tutorials/ex12.c

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