# TSComputeIJacobianConstant
Reuses a time-independent for a semi-implicit DAE or ODE 
## Synopsis
```
#include "petscts.h"  
PetscErrorCode TSComputeIJacobianConstant(TS ts, PetscReal t, Vec U, Vec Udot, PetscReal shift, Mat A, Mat B, void *ctx)
```
Collective


## Input Parameters

- ***ts -*** time stepping context
- ***t -*** time at which to evaluate
- ***U -*** state at which to evaluate
- ***Udot -*** time derivative of state vector
- ***shift -*** shift to apply
- ***ctx -*** context



## Output Parameters

- ***A -*** pointer to operator
- ***B -*** pointer to preconditioning matrix





## Notes
This function is intended to be passed to `TSSetIJacobian()` to evaluate the Jacobian for linear time-independent problems.

It is only appropriate for problems of the form

```none
M Udot = F(U,t)
```

where M is constant and F is non-stiff.  The user must pass M to `TSSetIJacobian()`.  The current implementation only
works with IMEX time integration methods such as `TSROSW` and `TSARKIMEX`, since there is no support for de-constructing
an implicit operator of the form

```none
shift*M + J
```

where J is the Jacobian of -F(U).  Support may be added in a future version of PETSc, but for now, the user must store
a copy of M or reassemble it when requested.


## See Also
 [](chapter_ts), `TS`, `TSROSW`, `TSARKIMEX`, `TSSetIFunction()`, `TSSetIJacobian()`, `TSComputeIFunctionLinear()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ts/interface/ts.c.html#TSComputeIJacobianConstant">src/ts/interface/ts.c</A>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
