SNESFASSetUseCoarseCorrectionLineSearch#

Tells a SNESFAS to apply a line search to the coarse correction update on a multiplicative SNESFAS cycle.

Synopsis#

Logically Collective

Input Parameters#

  • snes - the SNESFAS nonlinear multigrid context

  • use - use a line search

Options Database Keys#

  • -snes_fas_use_coarse_correction_linesearch (true|false) - use a line search for the coarse correction on every level except the coarsest

  • -fas_coarse_correction_snes_linesearch_type (none|bt|secant|cp|nleqerr|bisection|shell) - set the coarse correction line search type on all levels except the coarsest

  • -fas_coarse_correction_i_snes_linesearch_type (none|bt|secant|cp|nleqerr|bisection|shell) - set the coarse correction line search type on level i

Notes#

Without a coarse correction line search, the correction \(X += I(x^c - Rx)\) is applied directly as a unit step, equivalent to the original FAS correction. Calling this function or using -snes_fas_use_coarse_correction_linesearch enables the MG-Opt damping strategy [Nas00], which is useful when monotonic decrease in the residual norm or energy functional is desired (e.g., non-convex problems where the full coarse correction may overshoot without an explicit convergence control strategy).

Defaults to using SNESLINESEARCHSECANT

This has no effect unless SNESFASGetType() returns SNES_FAS_MULTIPLICATIVE.

All the line search options, see SNESLineSearchSetFromOptions(), can be set using the options database prefix -fas_coarse_correction_i_ for any particular level i, or all levels with -fas_coarse_correction_. See SNESFASGetCoarseCorrectionLineSearch() for how to access the line searches at which point you can also change their options using the SNESLineSearch API.

Must be called before SNESSetFromOptions(). If SNESSetFromOptions() is never called then this option is not utilized.

References#

[Nas00]

S.G. Nash. A multigrid approach to discretized optimization problems. Optimization Methods and Software, 14(1-2):99–116, 2000.

See Also#

SNES: Nonlinear Solvers, SNES, SNESFAS, SNESFASGetCoarseCorrectionLineSearch(), SNESLineSearch, PCMG, SNESLineSearchSetFromOptions()

Level#

advanced

Location#

src/snes/impls/fas/fasfunc.c

Implementations#

SNESFASSetUseCoarseCorrectionLineSearch_FAS() in src/snes/impls/fas/fas.c


Index of all SNESFAS routines
Table of Contents for all manual pages
Index of all manual pages