:orphan: # 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 src/snes/linesearch/interface/linesearch.c ## Examples src/snes/tutorials/ex15.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/linesearch/interface/linesearch.c) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)