TSSetI2Jacobian#
Set the function to compute the matrix dF/dU + vdF/dU_t + adF/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#
Calling sequence of jac
#
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+vU,W’+aU), equivalent to dF/dU + vdF/dU_t + adF/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 + vdF/dU_t + adF/dU_tt you provide turns out to be the Jacobian of G(U) = F(t,U,W+vU,W’+aU) where F(t,U,U_t,U_tt) = 0 is the DAE to be solved. The time integrator internally approximates U_t by W+vU and U_tt by W’+aU where the positive “shift” parameters ‘v’ and ‘a’ and vectors W, W’ depend on the integration method, step size, and past states.
See Also#
TS: Scalable ODE and DAE Solvers, TS
, TSSetI2Function()
, TSGetI2Jacobian()
Level#
beginner
Location#
Examples#
src/ts/tutorials/ex43.c
src/ts/tutorials/ex44.c
Index of all TS routines
Table of Contents for all manual pages
Index of all manual pages