:orphan:
# SNES
Abstract PETSc object that manages nonlinear solves
## Synopsis
```
typedef struct _p_SNES *SNES;
```
## See Also
[](doc_nonlinsolve), [](ch_snes), `SNESCreate()`, `SNESSetType()`, `SNESType`, `TS`, `SNES`, `KSP`, `PC`, `SNESDestroy()`
## Level
beginner
## Location
include/petscsnes.h
## Examples
src/snes/tutorials/ex1.c
src/snes/tutorials/ex14.c
src/snes/tutorials/ex15.c
src/snes/tutorials/ex16.c
src/snes/tutorials/ex18.c
src/snes/tutorials/ex19.c
src/snes/tutorials/ex1f.F90
src/snes/tutorials/ex2.c
src/snes/tutorials/ex21.c
src/snes/tutorials/ex22.c
src/snes/tutorials/ex28.c
## Implementations
_p_SNES in include/petsc/private/snesimpl.h
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscsnes.h)
[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)