PETSc version 3.17.4
Fix/Edit manual page

# SNESNCG

Nonlinear Conjugate-Gradient method for the solution of general nonlinear systems.

### Options Database

| -snes_ncg_type <fr, prp, dy, hs, cd> | - Choice of conjugate-gradient update parameter, default is prp.
| -snes_linesearch_type <cp,l2,basic> | - Line search type.
| -snes_ncg_monitor | - Print the beta values used in the ncg iteration, .

### Notes

This solves the nonlinear system of equations F(x) = 0 using the nonlinear generalization of the conjugate gradient method. This may be used with a nonlinear preconditioner used to pick the new search directions, but otherwise chooses the initial search direction as F(x) for the initial guess x.

Only supports left non-linear preconditioning.

Default line search is SNESLINESEARCHCP, unless a nonlinear preconditioner is used with -npc_snes_type <type>, SNESSetNPC(), or SNESGetNPC() then SNESLINESEARCHL2 is used. Also supports the special purpose line search SNESLINESEARCHNCGLINEAR

### References

| * | - Peter R. Brune, Matthew G. Knepley, Barry F. Smith, and Xuemin Tu,"Composing Scalable Nonlinear Algebraic Solvers", SIAM Review, 57(4), 2015

### See Also

SNESCreate(), SNES, SNESSetType(), SNESNEWTONLS, SNESNEWTONTR, SNESNGMRES, SNESQN, SNESLINESEARCHNCGLINEAR, SNESNCGSetType(), SNESNCGGetType(), SNESLineSearchSetType()

### Level

beginner

### Location

src/snes/impls/ncg/snesncg.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages