SNESFASSetUseCoarseCorrectionLineSearch#
Tells a SNESFAS to apply a line search to the coarse correction update on a multiplicative SNESFAS cycle.
Synopsis#
#include "petscsnes.h"
PetscErrorCode SNESFASSetUseCoarseCorrectionLineSearch(SNES snes, PetscBool use)
Logically Collective
Input Parameters#
snes - the
SNESFASnonlinear multigrid contextuse - 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#
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#
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