C++ library of (Ordinary) Differential Equations solvers, with routines adapted to Parabolic Equations.
(Why NG? because it is a New Generation of solvers).
This library contains:
-
optimized rewriting of classical stiff ODES solvers.
-
specialized versions of stabilized explicit solvers, mainly for large systems resulting from parabolic PDEs.
Stabilized explicit solvers (Rock*) are multi-threaded (openmp).
-
Radau5-NG : rewriting of the classical Radau5 code (by Hairer and Wanner).
-
Rock4-NG : rewriting of the code of A. Abdulle, with less memory copies.
-
Rock4-L : specialization of Rock4 for linear problems.
-
Rodas-NG : rewriting of the code Rodas (by Hairer and Wanner).
-
SDIRKL : SDIRK methods, for linear problems.
-
SymplectikRK : Gaussian symplectic methods.
We hope to add at least 2 other methods in the (near?) future: a rewritten version of Rock2, and a specialization of Rock2 for linear problems.
-
Odes-NG/common/include/: contains parts of code common to all integrators.
-
For each integrator, the directory contains:
- include/ : the core integrator.
- test/ : examples, and some documentation.
- An optional sage/ sub-directory contains SageMath material used to build the codes.
User provides a C++ class which should completely describe the problem:
- RHS (and if necessary Jacobian of RHS).
- Size (number of equations).
- Some operators if necessary.
- Constants.
- ...
This allow to inline functions in the case of a rather simple RHS.
The original codes for Radau5, Rodas, Rock2 and Rock4 can be found at https://www.unige.ch/~hairer/software.html
Just do:
doxygen Doxyfile
Documentation (html and latex) goes in Doc/
The main page of the html documentation explains how to use these codes.
cd Radau5-NG (or Rock4-L, Rock4-NG, Rodas-NG and so on)
cd test
mkdir Build
cd Build
export CXX=your_compiler (with your compiler = g++ or icc or clang++; default:g++)
cmake ..
make
./run
Odes-NG introduces the namespace odes.
To learn about Ordinary Differential Equations solvers, you should read the bible:
- Solving Ordinary Differential Equations I, by Hairer, Nørsett,, Wanner,
- Solving Ordinary Differential Equations II Stiff and Differential-Algebraic Problems by Hairer and Wanner,
- Geometric Numerical Integration by Hairer, Lubich and Wanner.
About Rock methods, you can also read this paper.