:orphan: # SNESSetUpdate Sets the general-purpose update function called at the beginning of every iteration of the nonlinear solve. Specifically it is called just before the Jacobian is "evaluated". ## Synopsis ``` #include "petscsnes.h" PetscErrorCode SNESSetUpdate(SNES snes, PetscErrorCode (*func)(SNES, PetscInt)) ``` Logically Collective ## Input Parameters - ***snes -*** The nonlinear solver context - ***func -*** The function ## Calling sequence of `func` ```none PetscErrorCode func(SNES snes, PetscInt step); ``` - ***snes -*** the nonlinear solver context - ***step -*** The current step of the iteration ## Note This is NOT what one uses to update the ghost points before a function evaluation, that should be done at the beginning of your function provided to `SNESSetFunction()`, or `SNESSetPicard()` This is not used by most users. There are a variety of function hooks one many set that are called at different stages of the nonlinear solution process, see the functions listed below. ## See Also [](ch_snes), `SNES`, `SNESSolve()`, `SNESSetJacobian()`, `SNESSolve()`, `SNESLineSearchSetPreCheck()`, `SNESLineSearchSetPostCheck()`, `SNESNewtonTRSetPreCheck()`, `SNESNewtonTRSetPostCheck()`, `SNESMonitorSet()`, `SNESSetDivergenceTest()` ## Level advanced ## Location src/snes/interface/snes.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/interface/snes.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)