Skip to main content
`Ctrl`+`K`

# TaoSetGradient

Sets the gradient evaluation routine for the function to be optimized

## Synopsis

    #include "petsctao.h"
    PetscErrorCode TaoSetGradient(Tao tao, Vec g, PetscErrorCode (*func)(Tao tao, Vec x, Vec g, void *ctx), void *ctx)

Logically Collective

## Input Parameters

- tao - the `Tao` context

- g - [optional] the vector to internally hold the gradient computation

- func - the gradient function

- ctx - [optional] user-defined context for private data for the gradient evaluation routine (may be `NULL`)

## Calling sequence of `func`

- tao - the optimization solver

- x - input vector

- g - gradient value (output)

- ctx - [optional] user-defined function context

## See Also

TAO: Optimization Solvers, `Tao`, `TaoSolve()`, `TaoSetObjective()`, `TaoSetHessian()`, `TaoSetObjectiveAndGradient()`, `TaoGetGradient()`

## Level

beginner

## Location

src/tao/interface/taosolver_fg.c

## Examples

src/tao/pde_constrained/tutorials/hyperbolic.c
src/tao/pde_constrained/tutorials/parabolic.c
src/tao/pde_constrained/tutorials/elliptic.c
src/tao/tutorials/ex4.c

Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages