:orphan: # SNESNCG Nonlinear Conjugate-Gradient method for the solution of nonlinear systems. ## Options Database Keys - ***-snes_ncg_type -*** Choice of conjugate-gradient update parameter, default is prp. - ***-snes_linesearch_type -*** 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 , `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()`, `SNESLineSearchSetType()` ## Level beginner ## Location src/snes/impls/ncg/snesncg.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/impls/ncg/snesncg.c) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)