SNESLineSearchSetVIFunctions#
Sets VI-specific functions for line search computation.
Synopsis#
#include "petscsnes.h"
PetscErrorCode SNESLineSearchSetVIFunctions(SNESLineSearch linesearch, SNESLineSearchVIProjectFn *projectfunc, SNESLineSearchVINormFn *normfunc, SNESLineSearchVIDirDerivFn *dirderivfunc)
Logically Collective
Input Parameters#
linesearch - the linesearch object
projectfunc - function for projecting the function to the bounds, see
SNESLineSearchVIProjectFn
for calling sequencenormfunc - function for computing the norm of an active set, see
SNESLineSearchVINormFn
for calling sequencedirderivfunc - function for computing the directional derivative of an active set, see
SNESLineSearchVIDirDerivFn
for calling sequence
Notes#
The VI solvers require projection of the solution to the feasible set. projectfunc
should implement this.
The VI solvers require special evaluation of the function norm such that the norm is only calculated
on the inactive set. This should be implemented by normfunc
.
The VI solvers further require special evaluation of the directional derivative (when assuming that there exists some
for which the SNESFunctionFn
) such that it is only calculated on the inactive set.
This should be implemented by dirderivfunc
.
See Also#
SNES: Nonlinear Solvers, SNES
, SNESLineSearch
, SNESLineSearchGetVIFunctions()
, SNESLineSearchSetPostCheck()
, SNESLineSearchSetPreCheck()
,
SNESLineSearchVIProjectFn
, SNESLineSearchVINormFn
, SNESLineSearchVIDirDerivFn
Level#
advanced
Location#
src/snes/linesearch/interface/linesearch.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages