SNESFAS#
Full Approximation Scheme nonlinear multigrid solver [BKST15]. 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
SNES
options for all smoothers-fas_levels_cycle_snes_ - prefix for
SNES
options for all cycles-fas_levels_i_snes_ - prefix
SNES
options for the smoothers on level i-fas_levels_i_cycle_snes_ - prefix for
SNES
options for the cycle on level i-fas_coarse_snes_ - prefix for
SNES
options for the coarsest smoother
Note#
The organization of the FAS 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