xref: /petsc/doc/overview/nonlinear_solve_table.md (revision f8b9f887efa5534f423807e37a1fe2e87d779bac)
1(doc_nonlinsolve)=
2
3# Summary of Nonlinear Solvers Available In PETSc
4
5See the paper [Composing Scalable Nonlinear Algebraic Solvers](https://www.mcs.anl.gov/papers/P2010-0112.pdf) for details
6on the algorithms.
7
8```{eval-rst}
9.. list-table::
10   :widths: auto
11   :align: center
12   :header-rows: 1
13
14   * - Algorithm
15     - Associated Type
16     - Notes
17   * - Newton's method
18     - ``SNESNEWTONLS``
19     - Use ``-snes_mf`` for matrix-free linear solvers
20   * - Newton's method with trust region
21     - ``SNESNEWTONTR``
22     -
23   * - Single linearization
24     - ``SNESKSPONLY``
25     - Essentially one step of Newtwon without a line search
26   * - Quasi-Newton method (BFGS)
27     - ``SNESQN``
28     -
29   * - Nonlinear CG
30     - ``SNESNCG``
31     - Requires nearly symmetric Jacobian for good convergence
32   * - Nonlinear GMRES
33     - ``SNESNGMRES``
34     -
35   * - Anderson mixing
36     - ``SNESANDERSON``
37     -
38   * - Nonlinear Richardson
39     - ``SNESNRICHARDSON``
40     -
41   * - Nonlinear Gauss-Siedel
42     - ``SNESNGS``
43     -
44   * - Full Approximation Scheme (nonlinear multigrid)
45     - ``SNESFAS``
46     -
47   * - Nonlinear additive Schwarz
48     - ``SNESNASM``
49     -
50   * - Nonlinear additive Schwarz preconditioned inexact Newton (ASPIN) methods
51     - ``SNESASPIN``
52     -
53   * - Composite (combine several nonlinear solvers)
54     - ``SNESCOMPOSITE``
55     -
56   * - Preconditioned nonlinear solver
57     - ---
58     - See ``SNESGetNPC()``/ ``SNESSetNPC()``, can be combined to accelerate many of the solvers
59```
60