petsc-3.13.6 2020-09-29
Report Typos and Errors

SNESNRICHARDSON

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

Options Database

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
-snes_linesearch_type <l2,cp,basic> Line search type.- - -snes_linesearch_damping<1.0> Damping for the line search.