xref: /petsc/include/petscsnestypes.h (revision 76d6960897ba55d8238485170da43545084300c6)
1e5148a0bSMatthew G. Knepley #pragma once
2e5148a0bSMatthew G. Knepley 
3e5148a0bSMatthew G. Knepley /* SUBMANSEC = SNES */
4e5148a0bSMatthew G. Knepley 
5e5148a0bSMatthew G. Knepley /*S
6e5148a0bSMatthew G. Knepley   SNES - Abstract PETSc object that manages nonlinear solves
7e5148a0bSMatthew G. Knepley 
8e5148a0bSMatthew G. Knepley   Level: beginner
9e5148a0bSMatthew G. Knepley 
10*0b4b7b1cSBarry Smith   Notes:
11*0b4b7b1cSBarry Smith   The most commonly used `SNESType` is `SNESNEWTONLS` which uses Newton's method with a line search. For all the Newton based `SNES` nonlinear
12*0b4b7b1cSBarry Smith   solvers, `KSP`, the PETSc abstract linear solver object, is used to (approximately) solve the required linear systems.
13*0b4b7b1cSBarry Smith 
14*0b4b7b1cSBarry Smith   See `SNESType` for a list of all the nonlinear solver algorithms provided by PETSc.
15*0b4b7b1cSBarry Smith 
16*0b4b7b1cSBarry Smith   Some of the `SNES` solvers support nonlinear preconditioners, which themselves are also `SNES` objects managed with `SNESGetNPC()`
17*0b4b7b1cSBarry Smith 
18*0b4b7b1cSBarry Smith .seealso: [](doc_nonlinsolve), [](ch_snes), `SNESCreate()`, `SNESSolve()`, `SNESSetType()`, `SNESType`, `TS`, `SNESType`, `KSP`, `PC`, `SNESDestroy()`
19e5148a0bSMatthew G. Knepley S*/
20e5148a0bSMatthew G. Knepley typedef struct _p_SNES *SNES;
21