#include "taosolver.h" PetscErrorCode TaoSetJacobianDesignRoutine(TaoSolver tao, Mat J, PetscErrorCode (*func)(TaoSolver, Vec, Mat*, void*), void *ctx)Logically collective on TaoSolver
tao | - the TaoSolver context | |
J | - Matrix used for the jacobian | |
jac | - Jacobian evaluation routine | |
ctx | - [optional] user-defined context for private data for the Jacobian evaluation routine (may be PETSC_NULL) |
jac (TaoSolver tao,Vec x,Mat *J,void *ctx);
tao | - the TaoSolver context | |
x | - input vector | |
J | - Jacobian matrix | |
ctx | - [optional] user-defined Jacobian context |
The function jac() takes Mat * as the matrix arguments rather than Mat. This allows the Jacobian evaluation routine to replace A and/or B with a completely new new matrix structure (not just different matrix elements) when appropriate, for instance, if the nonzero structure is changing throughout the global iterations.
Level:intermediate
Location:src/interface/taosolver_hj.c
TAO Solver Index
Table of Contents