Computer Programs

NAME OR DESIGNATION OF PROGRAM, COMPUTER, DESCRIPTION OF PROGRAM OR FUNCTION, METHODS, RESTRICTIONS, CPU, FEATURES, RELATED OR AUXILIARY PROGRAMS, STATUS, REFERENCES, REQUIREMENTS, LANGUAGE, OPERATING SYSTEM, OTHER RESTRICTIONS, NAME AND ESTABLISHMENT OF AUTHORS, MATERIAL, CATEGORIES

[ top ]

[ top ]

To submit a request, click below on the link of the version you wish to order. Rules for end-users are
available here.

Program name | Package id | Status | Status date |
---|---|---|---|

LSODPK | USCD1231/01 | Tested | 23-SEP-2005 |

Machines used:

Package ID | Orig. computer | Test computer |
---|---|---|

USCD1231/01 | IBM PC | PC Windows |

[ top ]

3. DESCRIPTION OF PROGRAM OR FUNCTION

LSODPK, written jointly with Peter N. Brown, is a set of FORTRAN subroutines for solving the initial value problem for stiff and nonstiff systems of ordinary differential equations. In solving stiff systems, LSODPK uses a corrector iteration composed of Newton iteration and one of four preconditoned Krylov subspace iteration methods. The user must select the desired Krylov method and supply a pair of routine to evaluate, preprocess, and solve the (left and/or right) preconditioner matrices. Aside from preconditioning, the implementation is matrix-free, meaning that explicit storage of the Jacobian (or related) matrix is not required. The method is experimental because the scope of problems for which it is effective is not well-known, and users are forewarned that LSODPK may or may not be competitive with traditional methods on a given problem. LSODPK also includes an option for a user-supplied linear system solver to be used without Krylov iteration.

The LSODKR source is commented extensively to facilitate modification. Both a single-precision version and a double-precision version are available.

LSODPK, written jointly with Peter N. Brown, is a set of FORTRAN subroutines for solving the initial value problem for stiff and nonstiff systems of ordinary differential equations. In solving stiff systems, LSODPK uses a corrector iteration composed of Newton iteration and one of four preconditoned Krylov subspace iteration methods. The user must select the desired Krylov method and supply a pair of routine to evaluate, preprocess, and solve the (left and/or right) preconditioner matrices. Aside from preconditioning, the implementation is matrix-free, meaning that explicit storage of the Jacobian (or related) matrix is not required. The method is experimental because the scope of problems for which it is effective is not well-known, and users are forewarned that LSODPK may or may not be competitive with traditional methods on a given problem. LSODPK also includes an option for a user-supplied linear system solver to be used without Krylov iteration.

The LSODKR source is commented extensively to facilitate modification. Both a single-precision version and a double-precision version are available.

[ top ]

4. METHODS

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. The Krylov methods are based on Arnoldi's method, the Generalized Minimum Residual method, and the Preconditioned Conjugate Gradient method, with scaling added.

This program solves a stiff ODE system that arises from a system of partial differential equations. The PDE system is a food web population model, with predator-prey interaction and diffusion on the unit square in two dimensions. The dependent variable vector is

1 2 ns

c = (c , c , ..., c )

and the PDEs are as follows:

i i i

dc /dt = d(i)*(c + c ) + f (x,y,c) (i=1,...,ns)

xx yy i

where

i ns j

f (x,y,c) = c *(b(i) + sum a(i,j)*c )

i j=1

The number of species is ns = 2*np, with the first np being prey and the last np being predators. The coefficients a(i,j), b(i), d(i) are:

a(i,i) = -a (all i)

a(i,j) = -g (i .le. np, j .gt. np)

a(i,j) = e (i .gt. np, j .le. np)

b(i) = b*(1 + alpha*x*y) (i .le. np)

b(i) = -b*(1 + alpha*x*y) (i .gt. np)

d(i) = dprey (i .le. np)

d(i) = dpred (i .gt. np)

The various scalar parameters are set in subroutine setpar.

The boundary conditions are: normal derivative = 0.

A polynomial in x and y is used to set the initial conditions.

The PDEs are discretized by central differencing on a mx by my mesh.

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. The Krylov methods are based on Arnoldi's method, the Generalized Minimum Residual method, and the Preconditioned Conjugate Gradient method, with scaling added.

This program solves a stiff ODE system that arises from a system of partial differential equations. The PDE system is a food web population model, with predator-prey interaction and diffusion on the unit square in two dimensions. The dependent variable vector is

1 2 ns

c = (c , c , ..., c )

and the PDEs are as follows:

i i i

dc /dt = d(i)*(c + c ) + f (x,y,c) (i=1,...,ns)

xx yy i

where

i ns j

f (x,y,c) = c *(b(i) + sum a(i,j)*c )

i j=1

The number of species is ns = 2*np, with the first np being prey and the last np being predators. The coefficients a(i,j), b(i), d(i) are:

a(i,i) = -a (all i)

a(i,j) = -g (i .le. np, j .gt. np)

a(i,j) = e (i .gt. np, j .le. np)

b(i) = b*(1 + alpha*x*y) (i .le. np)

b(i) = -b*(1 + alpha*x*y) (i .gt. np)

d(i) = dprey (i .le. np)

d(i) = dpred (i .gt. np)

The various scalar parameters are set in subroutine setpar.

The boundary conditions are: normal derivative = 0.

A polynomial in x and y is used to set the initial conditions.

The PDEs are discretized by central differencing on a mx by my mesh.

[ top ]

[ top ]

USCD1231/01

At the NEA-DB the demonstration program included in this package ran on a PC Windows Xeon in a few second.[ top ]

[ top ]

8. RELATED OR AUXILIARY PROGRAMS

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.

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.

[ top ]

10. REFERENCES

[1] 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.

[2] 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.

[3] Peter N. Brown and Alan C. Hindmarsh, Reduced Storage Matrix Methods in Stiff ODE Systems, J. Appl. Math. & Comp., 31 (1989), pp. 40-91; Also LLNL Report UCRL-95088, Rev. 1, June 1987.

[1] 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.

[2] 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.

[3] Peter N. Brown and Alan C. Hindmarsh, Reduced Storage Matrix Methods in Stiff ODE Systems, J. Appl. Math. & Comp., 31 (1989), pp. 40-91; Also LLNL Report UCRL-95088, Rev. 1, June 1987.

[ top ]

USCD1231/01

Compiling, loading, and executing the demonstration program require a minimum main storage of 5 Mbytes.[ top ]

[ top ]

[ top ]

USCD1231/01

Information fileDouble precision files:

DLSODPK_MAIN.exe Executable file

DLSODPK_MAIN.f Test Source file

ccout.aut Author's output file

demout.aut Author's output file

ccout.nea NEA output file

demout.nea NEA output file

opkda1.f Fortran source file

opkda2.f Fortran source file

opkdmain.f Fortran source file

Single precision files:

opksa1.f Fortran source file

opksa2.f Fortran source file

opksmain.f Fortran source file

SLSODPK_MAIN.exe Executable file

SLSODPK_MAIN.f Test source file

ccout.nea NEA output file

demout.nea NEA output file

Keywords: algorithms, initial-value problems, numerical solution, ordinary differential equations.