The TS component provides a framework for the scalable solution of ODEs arising from the discretization of time-dependent PDEs, and of steady-state problems using pseudo-timestepping.
Time-Dependent Problems: Consider the ODE
ut = F(u,t),
where u is a finite-dimensional vector, usually obtained from discretizing a PDE with finite differences, finite elements, etc. For example, discretizing the heat equation
ut = uxx
with centered finite differences results in
The TS component provides code to solve these equations (currently using the forward or backward Euler method) as well as an interface to other sophisticated ODE solvers, in a clean and easy manner, where the user need only provide code for the evaluation of F(u,t) and (optionally) its associated Jacobian matrix.
Steady-State Problems: In addition, TS provides a general code for performing pseudo timestepping with a variable timestep at each physical node point. For example, instead of directly attacking the steady-state problem
F(u) = 0,
we can use pseudo-transient continuation by solving
ut = F(u).
By using time differencing with the backward Euler method, we obtain
More generally we can consider a diagonal matrix Dtn that has a pseudo-timestep for each node point to obtain the series of nonlinear equations
Dtn-1(un+1 - un) = F(un+1).
For this problem the user must provide F(u) and the diagonal matrix Dtn, (or optionally, if the timestep is position independent, a scalar timestep) as well as optionally the Jacobian of F(u).