petsc-3.8.4 2018-03-24
Report Typos and Errors

SNESLineSearchSetVIFunctions

Sets VI-specific functions for line search computation.

Synopsis

#include "petscsnes.h" 
extern PetscErrorCode SNESLineSearchSetVIFunctions(SNESLineSearch linesearch, SNESLineSearchVIProjectFunc projectfunc, SNESLineSearchVINormFunc normfunc)

Input Parameters

snes - nonlinear context obtained from SNESCreate()
projectfunc - function for projecting the function to the bounds
normfunc - function for computing the norm of an active set

Logically Collective on SNES

Calling sequence of projectfunc

   projectfunc (SNES snes, Vec X)

Input parameters for projectfunc

snes - nonlinear context
X - current solution

Output parameters for projectfunc

X -Projected solution

Calling sequence of normfunc

   projectfunc (SNES snes, Vec X, Vec F, PetscScalar * fnorm)

Input parameters for normfunc

snes - nonlinear context
X - current solution
F - current residual

Output parameters for normfunc

fnorm -VI-specific norm of the function

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.

Keywords

SNES, line search, VI, nonlinear, set, line search

See Also

SNESLineSearchGetVIFunctions(), SNESLineSearchSetPostCheck(), SNESLineSearchSetPreCheck()

Level:developer
Location:
src/snes/linesearch/interface/linesearch.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages