Professional Documents
Culture Documents
Symplectic methods for Hamiltonian systems and symmetric methods for reversible problems show an improved
qualitative and quantitative behaviour, especially for long-time integrations.
For a description see: E. Hairer, C. Lubich and G. Wanner (2002): Geometric Numerical Integration. Structure-
Preserving Algorithms for Ordinary Differential equations. Springer Series in Comput. Math., vol. 31 as well as
the article E. Hairer and M. Hairer (2002): GniCodes - Matlab programs for geometric numerical integration.
The tar file gnicodes.tar contains a directory with the following Fortran 77 codes (for unfolding the directory use
the command tar xvf gnicodes.tar)
GNI_IRK2, symplectic and symmetric implicit Runge-Kutta code for second order differential equations;
GNI_COMP, composition methods with basic method as external subroutine;
GNI_LMM2, symmetric linear multistep methods for second order differential equations;
Driver examples for all three methods;
Comparison of three 8th order methods at the Kepler problem and the outer solar system;
sophisticated use of composition methods: rigid-body simulation (top) based on splitting or on Rattle;
two-body problem on the sphere.
The tar file gnimatlab.tar contain a directory with the following Matlab codes (for unfolding the directory use
the command tar xvf gnimatlab.tar)
GNI_IRK2, symplectic and symmetric implicit Runge-Kutta code for second order differential equations;
GNI_COMP, composition methods with basic method as external subroutine;
GNI_LMM2, symmetric linear multistep methods for second order differential equations;
Driver examples for the methods, Kepler problem;
Computation of Poincare sections for the Henon-Heiles problem;
Driver for solving the two-body problem on the sphere.
Rigid body integrator, which is described in E. Hairer and G. Vilmart (2006): Preprocessed Discrete Moser-
Veselov algorithm for the full dynamics of the rigid body, J. Phys. A: Math. Gen. 39 (2006) 13225-13235.
DMV10 Fortran subroutine for the modification of order 10 of the DMV algorithm (subroutines for the
versions of orders 2,4,6,8 are included).
DR_DMV10 Driver for DMV10 (asymmetric rigid body).
For a description see: Hairer, Norsett and Wanner (1993): Solving Ordinary Differential Equations. Nonstiff
Problems. 2nd edition. Springer Series in Comput. Math., vol. 8.
DOPRI5 explicit Runge-Kutta method of order 5(4) for problems y'=f(x,y); with dense output of order 4
http://www.unige.ch/~hairer/software.html 1/5
9/16/2017 Fortran Codes
There is a .tar file of a folder which contains C-versions of DOPRI5, DOP853 and RETARD. A Unix
command-line version of DOP853 is available from Keith Briggs. A modification of the C-version that
can handle discontinuites is available from Frederico Bergero
There is a folder, written by Blake Ashby "bmashby (at) stanford.edu", which contains C++ versions of
the nonstiff integrator DOPRI5 and of the stiff integrator RADAU5. It can be unfolded with "tar xzf
IntegratorT.tgz".
There are Matlab and Octave files MatlabNonStiff, OctaveNonStiff, written by Denis Bichsel "dbichsel
(at) infomaniak.ch", for the nonstiff integrators DOPRI5 and DOP853.
Concerning a Matlab Interface for the nonstiff integrators DOPRI5, DOP853, and ODEX consult the
homepage at the Technische Universitt Mnchen.
Description: Hairer and Wanner (1996): Solving Ordinary Differential Equations. Stiff and Differential-
Algebraic Problems. 2nd edition. Springer Series in Comput. Math., vol. 14.
RADAU5 implicit Runge-Kutta method of order 5 (Radau IIA) for problems of the form My'=f(x,y) with
possibly singular matrix M; with dense output (collocation solution). Concerning the linear algebra
routines the user has the choice to link the program either with DC_DECSOL and DECSOL or with
DC_LAPACK and LAPACK and LAPACKC
Hints for the choice:
a) the LAPACK routines use BLAS
b) the compiler has to accept COMPLEX*16 for the LAPACK routines; the DECSOL routines only use
REAL*8 declarations
C-Interface to radau/radau5 code, written by Michael Hauth (Michael.Hauth (at) wsi-gris.uni-
tuebingen.de). This package allows to call the radau/radau5-codes from C.
DC_DECSOL subroutines for the decomposition and backsubstitution of linear systems; uses the
subroutines of DECSOL
DECSOL linear algebra routines, used by DC_DECSOL,SDIRK4,ROS4,SEULEX,SODEX
DC_LAPACK subroutines for the decomposition and backsubstitution of linear systems; uses the
subroutines of LAPACK and LAPACKC
LAPACK linear algebra routines, used by DC_LAPACK
LAPACKC linear algebra routines for complex arithmetic, used by DC_LAPACK
DR1_RADAU5 Driver for RADAU5 (stiff Van der Pol equation)
DR2_RADAU5 Driver for RADAU5 (Amplifier Problem, differential-algebraic of index 1)
RADAU implicit Runge-Kutta method (Radau IIA) of variable order (switches automatically between
orders 5, 9, and 13) for problems of the form My'=f(x,y) with possibly singular matrix M; For the choices
IWORK(11)=3 and IWORK(12)=3, the code is mathematically equivalent to RADAU5 (in general a little
bit slower than RADAU5).
DR_RADAU Driver for RADAU (stiff Van der Pol equation)
http://www.unige.ch/~hairer/software.html 2/5
9/16/2017 Fortran Codes
RODAS Rosenbrock method of order 4(3), for problems of the form My'=f(x,y) with possibly singular
matrix M; with dense output; algebraic order conditions are considered Concerning the linear algebra
routines the user has the choice to link the code with DC_DECSOL and DECSOL or with DC_LAPACK
and LAPACK and LAPACKC (actually, the file LAPACKC and the routines of DC_LAPACK which need
COMPLEX*16 are not used)
DR_RODAS Driver for RODAS (stiff Van der Pol equation)
SEULEX Extrapolation method based on linearly implicit Euler for problems of the form My'=f(x,y) with
possibly singular matrix M; with dense output; concerning the linear algebra the user has the same choice
as for RODAS
DR_SEULEX Driver for SEULEX (stiff Van der Pol equation)
Oldies: Some further available codes which, however, do not have the same linear algebra options are:
SDIRK4 a diagonally-implicit Runge-Kutta method of order 4 for problems of the form My'=f(x,y) with
possibly singular matrix M; with dense output, uses DECSOL; A driver is also available.
ROS4 Classical Rosenbrock methods of order 4(3), for problems of the form My'=f(x,y) with possibly
singular matrix M; no dense output; uses DECSOL; A driver is also available.
SODEX Extrapolation method based on linearly implicit mid-point rule for problems of the form
My'=f(x,y); uses DECSOL; A driver is also available.
RADAUP implicit Runge-Kutta method of order 5, 9, or 13 (Radau IIA) for problems of the form
My'=f(x,y) with possibly singular matrix M; superseded by RADAU.
There is a folder, written by Blake Ashby "bmashby (at) stanford.edu", which contains C++ versions of
the nonstiff integrator DOPRI5 and of the stiff integrator RADAU5. It can be unfolded with "tar xzf
IntegratorT.tgz".
There are Matlab and Octave files MatlabStiff, OctaveStiff, written by Denis Bichsel "dbichsel (at)
infomaniak.ch", for the stiff integrator RADAU.
Concerning a Matlab Interface for the stiff integrators RADAU5 and SEULEX consult the homepage at
the Technische Universitt Mnchen.
Matlab versions of RADAU5 can be downloaded from Universitt Tbingen (Ch. Engstler).
The methods are based on explicit Runge-Kutta methods with extended stability domain along the negative real
axis. They are easy to use (no linear algebra routines, ...), and they are especially suited for MOL discretizations
of parabolic partial differential equations. The codes are written by Assyr Abdulle (Assyr.Abdulle (at)
math.unige.ch).
the tar file rock.tar contains a directory with the Fortran 77 codes ROCK2 (order 2) and ROCK4 (order 4),
and subdirectories for the following three examples. For unfolding the directory use the command tar xvf
rock.tar
BURGER, a MOL discretization of Burger's equation (dimension 500);
BRUSS-2D, a MOL discretization of a reaction-diffusion problem in 2 space dimensions (dimension of
the ODE is 32768);
FINAG, the FitzHug and Nagumo nerve conduction equation (dimension 400).
For stiff problems, including differential-algebraic and neutral delay equations with constant or state-dependent
(eventually vanishing) delay. The codes are written in collaboration with Nicola Guglielmi (guglielm (at)
univ.trieste.it).
the tar file radar5-v2.1.tar (version 2.1 of July 2005) contains a directory with the Fortran 90 code
RADAR5, the necessary linear algebra routines, and subdirectories for the following nine examples (the
old version is radar5.tar). A user's guide is included. For unfolding the directory use the command tar xvf
radar5.tar
ENZYME kinetics with an inhibitor molecule, dimension 4, one constant delay;
HAYASHI an almost singular state dependent neutral problem, dimension 2 as differential-algebraic
problem, one vanishing delay;
HEPATITIS acute hepatitis B virus infection, dimension 10, 5 constant delays;
OREGONATOR chemical kinetics, dimension 2, one constant delay;
ROBERTSON chemical reaction with steady state solution, dimension 3, one constant delay, very large
time interval (step sizes larger than the delay);
SDISC, non smooth artificial problem, dimension 1, 1 constant delay;
WALTMAN, threshold model for antibody production, dimension 6, 2 state-dependent delays tending to
zero, discontinuities in the right-hand side of the equations;
PAUL, state-dependent artificial problem;
ELSNOR, problem with solution termination.
There is a folder with Matlab codes, written by Denis Bichsel "dbichsel (at) infomaniak.ch", for adaptations of
the nonstiff integrators DOPRI5 and DOP853 to delay differential equations.
Mechanical Systems
The following codes are especially adapted to the equations of motion for constrained mechanical systems:
q' = T(q,t)v
M(t,q)v' = f(q,v,u,t) - L(q,v,u,t)*lamda
0 = H(q,t)v + k(q,t)
u' = d(q,v,u,lambda,t)
They have options for projecting the numerical solution to manifolds defined by 0 = g(q,t).
A dense output is available.
HEM5 Half-explicit Runge-Kutta method of order 5(3); uses DECSOL, LAPACK, LINSP (code by V.
Brasey)
HEM5.PS PostScript file containing a user's guide for HEM5.
LINSP Sparse Linear Algebra routines containing MA28 of the Harwell library
DR_ISO Driver for HEM5 (chain of insulators, non-sparse version)
DR_ISOSP Driver for HEM5 (chain of insulators, sparse version)
PHEM56 Partitioned half-explicit Runge-Kutta method of order 5(4); uses DECSOL, LAPACK, LINSP
(code by A. Murua ander(at)si.ehu.es)
PHEM56.PS PostScript file containing a user's guide for PHEM56.
DR_PHEM56 Driver for PHEM56 (chain of insulators, sparse version)
http://www.unige.ch/~hairer/software.html 4/5
9/16/2017 Fortran Codes
http://www.unige.ch/~hairer/software.html 5/5