TaoAppDefaultComputeHessian

Computes the Hessian using finite differences.

Synopsis

#include "tao.h"  
int TaoAppDefaultComputeHessian(TAO_APPLICATION taoapp,Vec V,Mat *H,Mat *B,
                           MatStructure *flag,void *ctx)
Collective on TAO_APPLICATION

Input Parameters

taoapp - the TAO_APPLICATION context
V - compute Hessian at this point
ctx - the TAO_APPLICATION structure, cast to (void*)

Output Parameters

H - Hessian matrix (not altered in this routine)
B - newly computed Hessian matrix to use with preconditioner (generally the same as H)
flag - flag indicating whether the matrix sparsity structure has changed

Options Database Key

-tao_fd - Activates TaoAppDefaultComputeHessian()
-tao_view_hessian - view the hessian after each evaluation using PETSC_VIEWER_STDOUT_WORLD

Notes

This routine is slow and expensive, and is not currently optimized to take advantage of sparsity in the problem. Although TaoAppDefaultComputeHessian() is not recommended for general use in large-scale applications, It can be useful in checking the correctness of a user-provided Hessian.

Note

The gradient evaluation must be set using the routine TaoAppSetGradientRoutine().

Keywords

TAO_APPLICATION, finite differences, Hessian

See Also

TaoAppSetHessianRoutine(), TaoAppDefaultComputeHessianColor(), SNESDefaultComputeJacobian(),
TaoAppSetGradientRoutine()

Level:intermediate
Location:src/petsctao/application/petscapp/fdiff.c
TAO Solver Index
Table of Contents

Examples

src/unconstrained/examples/tutorials/minsurf2.c.html