:orphan: # TSSetI2Jacobian Set the function to compute the matrix dF/dU + v*dF/dU_t + a*dF/dU_tt where F(t,U,U_t,U_tt) is the function you provided with `TSSetI2Function()`. ## Synopsis ``` #include "petscts.h" PetscErrorCode TSSetI2Jacobian(TS ts, Mat J, Mat P, TSI2Jacobian jac, void *ctx) ``` Logically Collective ## Input Parameters - ***ts -*** the `TS` context obtained from `TSCreate()` - ***J -*** matrix to hold the Jacobian values - ***P -*** matrix for constructing the preconditioner (may be same as `J`) - ***jac -*** the Jacobian evaluation routine - ***ctx -*** user-defined context for private data for the Jacobian evaluation routine (may be `NULL`) ## Calling sequence of `jac` ```none PetscErrorCode jac(TS ts, PetscReal t, Vec U, Vec U_t, Vec U_tt, PetscReal v, PetscReal a, Mat J, Mat P, void *ctx) ``` - ***ts -*** the `TS` context obtained from `TSCreate()` - ***t -*** time at step/stage being solved - ***U -*** state vector - ***U_t -*** time derivative of state vector - ***U_tt -*** second time derivative of state vector - ***v -*** shift for U_t - ***a -*** shift for U_tt - ***J -*** Jacobian of G(U) = F(t,U,W+v*U,W'+a*U), equivalent to dF/dU + v*dF/dU_t + a*dF/dU_tt - ***P -*** preconditioning matrix for J, may be same as J - ***ctx -*** [optional] user-defined context for matrix evaluation routine ## Notes The matrices `J` and `P` are exactly the matrices that are used by `SNES` for the nonlinear solve. The matrix dF/dU + v*dF/dU_t + a*dF/dU_tt you provide turns out to be the Jacobian of G(U) = F(t,U,W+v*U,W'+a*U) where F(t,U,U_t,U_tt) = 0 is the DAE to be solved. The time integrator internally approximates U_t by W+v*U and U_tt by W'+a*U where the positive "shift" parameters 'v' and 'a' and vectors W, W' depend on the integration method, step size, and past states. ## See Also [](ch_ts), `TS`, `TSSetI2Function()`, `TSGetI2Jacobian()` ## Level beginner ## Location src/ts/interface/ts.c ## Examples src/ts/tutorials/ex43.c
src/ts/tutorials/ex44.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ts/interface/ts.c) [Index of all TS routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)