:orphan: # SNESNGMRES The Nonlinear Generalized Minimum Residual method. ## Options Database Keys - ***-snes_ngmres_select_type -*** choose the select between candidate and combined solution - ***-snes_ngmres_restart_type -*** choose the restart conditions - ***-snes_ngmres_candidate -*** Use `SNESNGMRES` variant which combines candidate solutions instead of actual solutions - ***-snes_ngmres_m -*** Number of stored previous solutions and residuals - ***-snes_ngmres_restart_it -*** Number of iterations the restart conditions hold before restart - ***-snes_ngmres_gammaA -*** Residual tolerance for solution select between the candidate and combination - ***-snes_ngmres_gammaC -*** Residual tolerance for restart - ***-snes_ngmres_epsilonB -*** Difference tolerance between subsequent solutions triggering restart - ***-snes_ngmres_deltaB -*** Difference tolerance between residuals triggering restart - ***-snes_ngmres_restart_fm_rise -*** Restart on residual rise from x_M step - ***-snes_ngmres_monitor -*** Prints relevant information about the ngmres iteration - ***-snes_linesearch_type -*** Line search type used for the default smoother - ***-additive_snes_linesearch_type -*** linesearch type used to select between the candidate and combined solution with additive select type ## Notes The N-GMRES method combines m previous solutions into a minimum-residual solution by solving a small linearized optimization problem at each iteration. Very similar to the `SNESANDERSON` algorithm. ## References - **** -*** C. W. Oosterlee and T. Washio, "Krylov Subspace Acceleration of Nonlinear Multigrid with Application to Recirculating Flows", SIAM Journal on Scientific Computing, 21(5), 2000. - **** -*** 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()`, `SNESType`, `SNESANDERSON`, `SNESNGMRESSetSelectType()`, `SNESNGMRESSetRestartType()`, `SNESNGMRESSetRestartFmRise()` ## Level beginner ## Location src/snes/impls/ngmres/snesngmres.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/impls/ngmres/snesngmres.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)