# SNESGetFunction#

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

## Synopsis#

#include "petscsnes.h"
PetscErrorCode SNESGetFunction(SNES snes, Vec *r, PetscErrorCode (**f)(SNES, Vec, Vec, void *), void **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); see SNESFunction for calling sequence details

• 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

SNES, SNESSolve(), SNESSetFunction(), SNESGetSolution(), SNESFunction`