petsc-3.10.5 2019-03-28
Report Typos and Errors

# TaoSetObjectiveAndGradientRoutine

Sets a combined objective function and gradient evaluation routine for minimization

### Synopsis

    #include "petsctao.h"
    PetscErrorCode TaoSetObjectiveAndGradientRoutine(Tao tao, PetscErrorCode (*func)(Tao, Vec, PetscReal *, Vec, void*), void *ctx)

Logically collective on Tao

### Input Parameter

| tao | - the Tao context
| func | - the gradient function
| ctx | - [optional] user-defined context for private data for the gradient evaluation routine (may be NULL)

### Calling sequence of func

         func (Tao tao, Vec x, PetscReal *f, Vec g, void *ctx);

| x | - input vector
| f | - objective value (output)
| g | - gradient value (output)
| ctx | - [optional] user-defined function context

### See Also

TaoSetObjectiveRoutine(), TaoSetHessianRoutine() TaoSetObjectiveAndGradientRoutine()

### Level

beginner

### Location

src/tao/interface/taosolver_fg.c

### Examples

src/ts/examples/tutorials/ex16opt_p.c.html
src/ts/examples/tutorials/ex16opt_ic.c.html
src/ts/examples/tutorials/ex20opt_p.c.html
src/ts/examples/tutorials/ex20opt_ic.c.html
src/tao/unconstrained/examples/tutorials/eptorsion1.c.html
src/tao/unconstrained/examples/tutorials/eptorsion2.c.html
src/tao/unconstrained/examples/tutorials/minsurf2.c.html
src/tao/unconstrained/examples/tutorials/rosenbrock1.c.html
src/tao/unconstrained/examples/tutorials/spectraladjointassimilation.c.html
src/tao/unconstrained/examples/tutorials/eptorsion2f.F.html
src/tao/unconstrained/examples/tutorials/rosenbrock1f.F90.html
Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages