# DMTSSetI2Jacobian
set `TS` implicit Jacobian evaluation function for 2nd order systems 
## Synopsis
```
#include "petscts.h" 
PetscErrorCode DMTSSetI2Jacobian(DM dm, TSI2Jacobian jac, void *ctx)
```
Not Collective


## Input Parameters

- ***dm -*** `DM` to be used with `TS`
- ***fun -*** Jacobian evaluation routine
- ***ctx -*** context for Jacobian evaluation



## 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);
```


- ***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





## Note
`TSSetI2Jacobian()` is normally used, but it calls this function internally because the user context is actually
associated with the `DM`.


## See Also
 [](chapter_ts), `DM`, `TS`, `TSSetI2Jacobian()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/utils/dmts.c.html#DMTSSetI2Jacobian">src/ts/utils/dmts.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ts/utils/dmts.c)


[Index of all TS routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
