:orphan: # SNESSetUp Sets up the internal data structures for the later use of a nonlinear solver. ## Synopsis ``` #include "petscsnes.h" PetscErrorCode SNESSetUp(SNES snes) ``` Collective ## Input Parameter - ***snes -*** the `SNES` context ## Note For basic use of the `SNES` solvers the user need not explicitly call `SNESSetUp()`, since these actions will automatically occur during the call to `SNESSolve()`. However, if one wishes to control this phase separately, `SNESSetUp()` should be called after `SNESCreate()` and optional routines of the form SNESSetXXX(), but before `SNESSolve()`. ## See Also [](ch_snes), `SNES`, `SNESCreate()`, `SNESSolve()`, `SNESDestroy()` ## Level advanced ## Location src/snes/interface/snes.c ## Examples src/snes/tutorials/ex62.c
src/snes/tutorials/ex69.c
## Implementations SNESSetUp_Composite in src/snes/impls/composite/snescomposite.c
SNESSetUp_FAS in src/snes/impls/fas/fas.c
SNESSetUp_NGS in src/snes/impls/gs/snesgs.c
SNESSetUp_KSPONLY in src/snes/impls/ksponly/ksponly.c
SNESSetUp_NEWTONLS in src/snes/impls/ls/ls.c
SNESSetUp_MS in src/snes/impls/ms/ms.c
SNESSetUp_Multiblock in src/snes/impls/multiblock/multiblock.c
SNESSetUp_NASM in src/snes/impls/nasm/nasm.c
SNESSetUp_NCG in src/snes/impls/ncg/snesncg.c
SNESSetUp_NGMRES in src/snes/impls/ngmres/snesngmres.c
SNESSetUp_NEWTONTRDC in src/snes/impls/ntrdc/ntrdc.c
SNESSetUp_Patch in src/snes/impls/patch/snespatch.c
SNESSetUp_QN in src/snes/impls/qn/qn.c
SNESSetUp_NRichardson in src/snes/impls/richardson/snesrichardson.c
SNESSetUp_Shell in src/snes/impls/shell/snesshell.c
SNESSetUp_NEWTONTR in src/snes/impls/tr/tr.c
SNESSetUp_VINEWTONRSLS in src/snes/impls/vi/rs/virs.c
SNESSetUp_VINEWTONSSLS in src/snes/impls/vi/ss/viss.c
SNESSetUp_VI in src/snes/impls/vi/vi.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)