SNESFAS#
An implementation of the Full Approximation Scheme nonlinear multigrid solver, FAS, or nonlinear multigrid [BKST15] for solving nonlinear systems of equations with SNES. The nonlinear problem is solved by correction using coarse versions
of the nonlinear problem. This problem is perturbed so that a projected
solution of the fine problem elicits no correction from the coarse problem.
Options Database Keys and Prefixes#
-snes_fas_levels
- The number of levels-snes_fas_cycles
- The number of cycles – 1 for V, 2 for W-snes_fas_type<additive,multiplicative,full,kaskade> - Additive or multiplicative cycle
-snes_fas_galerkin <false,true> - Form coarse problems by projection back upon the fine problem
-snes_fas_smoothup - The number of iterations of the post-smoother
-snes_fas_smoothdown
- The number of iterations of the pre-smoother-snes_fas_monitor - Monitor progress of all of the levels
-snes_fas_full_downsweep <false,true> - call the downsmooth on the initial downsweep of full FAS
-fas_levels_snes_ - prefix for
SNESoptions for all smoothers-fas_levels_cycle_snes_ - prefix for
SNESoptions for all cycles-fas_levels_i_snes_ - prefix
SNESoptions for the smoothers on level i-fas_levels_i_cycle_snes_ - prefix for
SNESoptions for the cycle on level i-fas_coarse_snes_ - prefix for
SNESoptions for the coarsest smoother
Note#
The organization of the SNESFAS solver is slightly different from the organization of PCMG
As each level has smoother SNES instances(down and potentially up) and a cycle SNES instance.
The cycle SNES instance may be used for monitoring convergence on a particular level.
References#
Peter R. Brune, Matthew G. Knepley, Barry F. Smith, and Xuemin Tu. Composing scalable nonlinear algebraic solvers. SIAM Review, 57(4):535–565, 2015. http://www.mcs.anl.gov/papers/P2010-0112.pdf. URL: http://www.mcs.anl.gov/papers/P2010-0112.pdf, doi:10.1137/130936725.
See Also#
SNES: Nonlinear Solvers, PCMG, SNESCreate(), SNES, SNESSetType(), SNESType, SNESFASSetRestriction(), SNESFASSetInjection(),
SNESFASFullGetTotal(), SNESFASSetType(), SNESFASGetType(), SNESFASSetLevels(), SNESFASGetLevels(), SNESFASGetCycleSNES(),
SNESFASSetNumberSmoothUp(), SNESFASSetNumberSmoothDown(), SNESFASSetContinuation(), SNESFASSetCycles(), SNESFASSetMonitor(),
SNESFASSetLog(), SNESFASCycleSetCycles(), SNESFASCycleGetSmoother(), SNESFASCycleGetSmootherUp(), SNESFASCycleGetSmootherDown(),
SNESFASCycleGetCorrection(), SNESFASCycleGetInterpolation(), SNESFASCycleGetRestriction(), SNESFASCycleGetInjection(),
SNESFASCycleGetRScale(), SNESFASCycleIsFine(), SNESFASSetInterpolation(), SNESFASGetInterpolation(), SNESFASSetRestriction(),
SNESFASGetRestriction(), SNESFASSetInjection(), SNESFASGetInjection(), SNESFASSetRScale(),SNESFASGetSmoother(),
SNESFASGetSmootherDown(), SNESFASGetSmootherUp(), SNESFASGetCoarseSolve(), SNESFASFullSetDownSweep(), SNESFASFullSetTotal(), SNESFASFullGetTotal()
Level#
beginner
Location#
Index of all SNESFAS routines
Table of Contents for all manual pages
Index of all manual pages