petsc-3.7.1 2016-05-15
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() Many br
| projectfunc | - function for projecting the function to the bounds Many br
| normfunc | - function for computing the norm of an active set Many br

Logically Collective on SNES Many br

### Calling sequence of projectfunc

       projectfunc (SNES snes, Vec X)

Many br

### Input parameters for projectfunc

| snes | - nonlinear context Many br
| X | - current solution Many br

### Output parameters for projectfunc

X -Projected solution Many br

### Calling sequence of normfunc

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

Many br

### Input parameters for normfunc

| snes | - nonlinear context Many br
| X | - current solution Many br
| F | - current residual Many br

### Output parameters for normfunc

fnorm -VI-specific norm of the function Many br

### Notes

The VI solvers require projection of the solution to the feasible set. projectfunc should implement this. Many br

The VI solvers require special evaluation of the function norm such that the norm is only calculated Many bron the inactive set. This should be implemented by normfunc. Many br

Many br

### 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