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