Program name | Package id | Status | Status date |
---|---|---|---|
LSODE | USCD1223/01 | Tested | 23-SEP-2005 |
Machines used:
Package ID | Orig. computer | Test computer |
---|---|---|
USCD1223/01 | IBM PC | PC Windows |
LSODE (Livermore Solver for Ordinary Differential Equations) solves stiff and nonstiff systems of the form dy/dt = f. In the stiff case, it treats the Jacobian matrix df/dy as either a dense (full) or a banded matrix, and as either user-supplied or internally approximated by difference quotients. It uses Adams methods (predictor-corrector) in the nonstiff case, and Backward Differentiation Formula (BDF) methods (the Gear methods) in the stiff case. The linear systems that arise are solved by direct methods (LU factor/solve). The LSODE source is commented extensively to facilitate modification. Both a single-precision version and a double-precision version are available.
It is assumed that the ODEs are given explicitly, so that the system can be written in the form dy/dt = f(t,y), where y is the vector of dependent variables, and t is the independent variable. LSODE contains two variable-order, variable- step (with interpolatory step-changing) integration methods. The first is the implicit Adams or nonstiff method, of orders one through twelve. The second is the backward differentiation or stiff method (or BDF method, or Gear's method), of orders one through five.
LSODE offers a great deal of flexibility as to choice of basic method, either stiff or nonstiff, nonlinear corrector iteration method - 6 choices, error tolerances including componentwise relative and absolute tolerances, stopping criterion - at a specified time, t, or after every step, possibly with a critical t, optional input controls, e.g. maximum order or print flags, optional output controls, e.g. step and function evaluation counts and derivatives of the solution, interrupt and restart capabilities, etc. Work space arrays and the names of the user-supplied routines are passed as subroutine arguments for flexibility. User-controlled dynamic work space, real and integer, can also be passed to the user routines.
This program is part of the ODEPACK (USCD1232) collection of Fortran solvers for the initial value problem for ordinary differential equation systems. It consists of nine solvers, namely a basic solver called LSODE (USCD1223) and eight variants of it: LSODES (USCD1229), LSODA (USCD1227), LSODAR (USCD1228), LSODPK (USCD1231), LSODKR (USCD1230), LSODI (USCD1224), LSOIBT (USCD1226), and LSODIS (USCD1225) which are distributed by the Computer Program Service of the NEA Data Bank.
A. C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE Solvers," in Scientific Computing, R. S. Stepleman et al. (eds.), North-Holland, Amsterdam, 1983 (vol. 1 of IMACS Transactions on Scientific Computation), pp. 55-64.
P. N. Brown and A. C. Hindmarsh, "Reduced Storage Matrix Methods in Stiff ODE Systems," J. Appl. Math. > Comp., 31 (1989), pp.40-91. 11.
K. Radhakrishnan and A. C. Hindmarsh, "Description and Use of LSODE, the Livermore Solver for Ordinary Differential Equations," LLNL report UCRL-ID-113855, December 1993.
Keywords: algorithms, initial-value problems, numerical solution, ordinary differential equations.