#include "petscts.h" PetscErrorCode TSSetIHessianProduct(TS ts,Vec *ihp1,PetscErrorCode (*ihessianproductfunc1)(TS,PetscReal,Vec,Vec*,Vec,Vec*,void*), Vec *ihp2,PetscErrorCode (*ihessianproductfunc2)(TS,PetscReal,Vec,Vec*,Vec,Vec*,void*), Vec *ihp3,PetscErrorCode (*ihessianproductfunc3)(TS,PetscReal,Vec,Vec*,Vec,Vec*,void*), Vec *ihp4,PetscErrorCode (*ihessianproductfunc4)(TS,PetscReal,Vec,Vec*,Vec,Vec*,void*), void *ctx)Logically Collective on TS
ts | - TS context obtained from TSCreate() | |
ihp1 | - an array of vectors storing the result of vector-Hessian-vector product for F_UU | |
hessianproductfunc1 | - vector-Hessian-vector product function for F_UU | |
ihp2 | - an array of vectors storing the result of vector-Hessian-vector product for F_UP | |
hessianproductfunc2 | - vector-Hessian-vector product function for F_UP | |
ihp3 | - an array of vectors storing the result of vector-Hessian-vector product for F_PU | |
hessianproductfunc3 | - vector-Hessian-vector product function for F_PU | |
ihp4 | - an array of vectors storing the result of vector-Hessian-vector product for F_PP | |
hessianproductfunc4 | - vector-Hessian-vector product function for F_PP |
ihessianproductfunc (TS ts,PetscReal t,Vec U,Vec *Vl,Vec Vr,Vec *VHV,void *ctx);
t | - current timestep | |
U | - input vector (current ODE solution) | |
Vl | - an array of input vectors to be left-multiplied with the Hessian | |
Vr | - input vector to be right-multiplied with the Hessian | |
VHV | - an array of output vectors for vector-Hessian-vector product | |
ctx | - [optional] user-defined function context |