SNESLineSearchPreCheckPicard#
Implements a correction that is sometimes useful to improve the convergence rate of Picard iteration
Synopsis#
#include "petscsnes.h"
PetscErrorCode SNESLineSearchPreCheckPicard(SNESLineSearch linesearch, Vec X, Vec Y, PetscBool *changed, void *ctx)
Logically Collective
Input Parameters#
linesearch - linesearch context
X - base state for this step
ctx - context for this function
Input/Output Parameter#
Y - correction, possibly modified
Output Parameter#
changed - flag indicating that Y was modified
Options Database Key#
-snes_linesearch_precheck_picard - activate this routine
-snes_linesearch_precheck_picard_angle - angle
Notes#
This function should be passed to SNESLineSearchSetPreCheck()
The justification for this method involves the linear convergence of a Picard iteration so the Picard linearization should be provided in place of the “Jacobian”. This correction is generally not useful when using a Newton linearization.
Reference#
. - * - Hindmarsh and Payne (1996) Time step limits for stable solutions of the ice sheet equation, Annals of Glaciology.
See Also#
SNESLineSearch
, SNESSetPicard()
, SNESGetLineSearch()
, SNESLineSearchSetPreCheck()
Level#
advanced
Location#
Examples#
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages