Actual source code: petscsnestypes.h

      1: #pragma once

      3: /* SUBMANSEC = SNES */

      5: /*S
      6:   SNES - Abstract PETSc object that manages nonlinear solves

      8:   Level: beginner

     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.

     14:   See `SNESType` for a list of all the nonlinear solver algorithms provided by PETSc.

     16:   Some of the `SNES` solvers support nonlinear preconditioners, which themselves are also `SNES` objects managed with `SNESGetNPC()`

     18: .seealso: [](doc_nonlinsolve), [](ch_snes), `SNESCreate()`, `SNESSolve()`, `SNESSetType()`, `SNESType`, `TS`, `SNESType`, `KSP`, `PC`, `SNESDestroy()`
     19: S*/
     20: typedef struct _p_SNES *SNES;