TaoGetGradient#

Gets the gradient evaluation routine for the function being optimized

Synopsis#

#include "petsctao.h" 
PetscErrorCode TaoGetGradient(Tao tao, Vec *g, PetscErrorCode (**func)(Tao tao, Vec x, Vec g, PetscCtx ctx), PetscCtxRt ctx)

Not Collective

Input Parameter#

  • tao - the Tao context

Output Parameters#

  • g - the vector to internally hold the gradient computation

  • func - the gradient function

  • ctx - user-defined context for private data for the gradient evaluation routine

Calling sequence of func#

  • tao - the optimizer

  • x - input vector

  • g - gradient value (output)

  • ctx - [optional] user-defined function context

Notes#

In addition to specifying an objective function using callbacks such as TaoSetObjective() and TaoSetGradient(), users can specify objective functions with TaoAddTerm().

TaoGetGradient() will always return the callback specified with TaoSetGradient(), even if the objective function has been changed by calling TaoAddTerm().

See Also#

TAO: Optimization Solvers, Tao, TaoSetObjective(), TaoSetHessian(), TaoSetObjectiveAndGradient(), TaoSetGradient()

Level#

beginner

Location#

src/tao/interface/taosolver_fg.c

Examples#

src/tao/unconstrained/tutorials/spectraladjointassimilation.c


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