8. TS: Scalable ODE Solvers

Up: Contents Next: Basic Usage Previous: Finite Difference Jacobian Approximations

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).


Up: Contents Next: Basic Usage Previous: Finite Difference Jacobian Approximations