**petsc-main 2021-04-20**

# SNESNRICHARDSON

Richardson nonlinear solver that uses successive substitutions, also sometimes known as Picard iteration.

### Options Database

| **-snes_linesearch_type <l2,cp,basic> Line search type.** |

| **-snes_linesearch_damping<1.0> Damping for the line search.** |

### Notes

If no inner nonlinear preconditioner is provided then solves F(x) - b = 0 using x^{n+1} = x^{n} - lambda
(F(x^n) - b) where lambda is obtained either SNESLineSearchSetDamping(), -snes_damping or a line search. If
an inner nonlinear preconditioner is provided (either with -npc_snes_type or SNESSetNPC()) then the inner
solver is called an initial solution x^n and the nonlinear Richardson uses x^{n+1} = x^{n} + lambda d^{n}
where d^{n} = \hat{x}^{n} - x^{n} where \hat{x}^{n} is the solution returned from the inner solver.
The update, especially without inner nonlinear preconditioner, may be ill-scaled. If using the basic
linesearch, one may have to scale the update with -snes_linesearch_damping

This uses no derivative information thus will be much slower then Newton's method obtained with -snes_type ls

Only supports left non-linear preconditioning.

### See Also

SNESCreate(), SNES, SNESSetType(), SNESNEWTONLS, SNESNEWTONTR, SNESNGMRES, SNESQN, SNESNCG

### Level

beginner

### Location

src/snes/impls/richardson/snesrichardson.c

Index of all SNES routines

Table of Contents for all manual pages

Index of all manual pages