This julia module provides an interface to solvers for ordinary differential equations (ODEs) written in Fortran for solving initial value problems (IVP) of the form
x' = rhs(t,x), x(t₀) = x₀
or (for solvers supporting a "mass matrix" M)
M⋅x' = rhs(t,x), x(t₀) = x₀.
Additionally a boundary value solver (called bvpsol
) is
supported for boundary value problems (BVP) of the form
x' = rhs(t,x), r = bc( xa, xb ) = 0
This julia module does not contain code for solving initial value problems, but this module does contain code for interacting with compiled Fortran-solvers. That's the reason, why this module is not called ODESuite.
Currently the following Fortran-solvers, written by Prof. E. Hairer and Prof. G. Wanner, are supported:
- dopri5: explicit Runge-Kutta method of order 5(4) due to Dormand & Prince
- dop853: explicit Runge-Kutta method of order 8(5,3) due to Dormand & Prince
- odex: GBS extrapolation-algorithm based on the explicit midpoint rule
- radau5: implicit Runge-Kutta method (Radau IIA) of order 5
- radau: implicit Runge-Kutta method (Radau IIA) of variable order between 5 and 13
- seulex: extrapolation-algorithm based on the linear implicit Euler method
see Software page of Prof. Hairer.
Also supported:
- bvpsol: a boundary value problem solver for highly nonlinear two point
boundary value problems using either a local linear solver or a global
sparse linear solver. Please note: The license for
bvpsol
only covers non commercial use, see License.
written by P. Deuflhard, G. Bader, L. Weimann, see CodeLib at ZIB.
Description: Calling the Solvers
The following features of the IVP-solvers are supported by this ODEInterface:
- providing an output function (e.g. for dense output or for event location) to the solvers
- providing mass- and jacobi-matrices for the solvers (with support for banded matrices)
- all the solvers' parameters for fine-tuning them, see Options for Solvers
- support for problems with "special structure", see special structure
This module needs the compiled Fortran solvers as shared libraries
(i.e. .so
, .dylib
or .dll
files, respectively).
The build script of this module tries to do this compilation.
It was tested with:
- Linux (64bit) and
gfortran
- MacOS and
gfortran
- Windows 7 (64bit) and
gfortran
of mingw-w64 (x86_64
)
If you want to compile the solvers yourself (perhaps with different
options and/or a different compiler), then just call
ODEInterface.help_solversupport
for further informations (help topics)
on how to compile the solvers and how to create shared libraries.
see ODEInterface.help_overview
for an overview of some help topics.
The author of this julia module is
Dr. Christian Ludwig
email: [email protected]
(Faculty of Mathematics, Technische Universität München)