TSComputeIJacobianConstant#

Reuses the matrix previously computed with the provided TSIJacobianFn 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 matrix from which the preconditioner is built (often A)

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

\[ M \dot{U} = 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

\[ 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#

TS: Scalable ODE and DAE Solvers, TS, TSROSW, TSARKIMEX, TSSetIFunction(), TSSetIJacobian(), TSComputeIFunctionLinear()

Level#

advanced

Location#

src/ts/interface/ts.c


Index of all TS routines
Table of Contents for all manual pages
Index of all manual pages