petsc-3.9.4 2018-09-11
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