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 sequence

  • normfunc - function for computing the norm of an active set, see SNESLineSearchVINormFn for calling sequence

  • dirderivfunc - 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 G(x)G(x) for which the SNESFunctionFn F(x)=gradG(x)F(x) = grad G(x)) 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