9 Numerical Analysis and Software Overview
9.1 Theory: RKMs and BDF for DAEs
DAEs | |
---|---|
unstructured, linear | \(E(t)\dot x = A(t)x + f(t)\) |
semi-linear | \(E(t)\dot x = f(t,x)\) |
unstructured | \(F(t,\dot x, x)=0\) |
unstructured, strangeness-free/index-1 | \(\begin{cases}\hat F_1(t,\dot x, x)=0 \\ \hat F_2(t,x)=0 \end{cases}\) |
semi-explicit, strangeness-free/index-1 | \(\begin{cases}\dot x= f(t, x, y) \\ 0=g(t,x,y) \end{cases}\) |
semi-explicit, index-2 | \(\begin{cases}\dot x= f(t, x, y) \\ 0=g(t,y) \end{cases}\) |
Problem / Index | \(*\) | \(2\) | \(1\) | \(*\) | \(2\) | \(1\) | \(*\) | \(2\) | \(1\) | \(*\) | \(2\) | \(1\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
nonlinear | c | g,i | b | f | h | e | ||||||
linear TV | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) | ||||||
linear CC | a | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) | d | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) | \(\cdot\) |
Description | Reference | |
---|---|---|
a | RKM, linear constant coefficients | KM Thm. 5.12 |
b | RKM, nonlinear, strangeness-free/index-1, semi-explicit | KM Thm 5.16 / HW Thm. VI.1.1 |
c | RKM, nonlinear, strangeness-free | KM Thm. 5.18 |
d | BDF, linear constant coefficients | KM Thm. 5.24 |
e | BDF(\(\subset\) MSM), nonlinear, strangeness-free/index-1, semi-explicit | KM Thm. 5.26 (\(\subset\) HW Thm. VI.2.1) |
f | BDF, nonlinear, strangeness-free/index-1 | KM Thm. 5.27 |
g | RKM, nonlinear, index-2, semi-explicit | HW Ch. VII.4 |
h | BDF, nonlinear, index-2, semi-explicit | HW Thm. VII.3.5 |
i | half-explicit RKM, nonlinear, index-2, semi-explicit | HW Thm. VII.6.2 |
HW | Ernst Hairer, Gerhard Wanner (1996) | Solving ordinary differential equations. II: Stiff and differential-algebraic problems |
KM | Peter Kunkel, Volker Mehrmann (2006) | Differential-Algebraic Equations. Analysis and Numerical Solution |
9.2 Solvers
As can be seen from the table above, generally usable discretization methods for unstructured DAEs are only there for index-1 problems. However, the solvers GELDA/GENDA include an automated reduction to the strangeness-free form so that they apply for any index; see Lecture Chapter 4++.
9.2.1 Multi purpose
DAEs | Methods | h/p | Language | Remark | Avail | |
---|---|---|---|---|---|---|
GELDA | l-\(\mu\)-\(*\) | BDF/RKM | \(*\)/\(*\) | F-77 | \(*\)/\(\cdot\) | |
GENDA | n-\(\mu\)-\(*\) | BDF | \(*\)/\(*\) | F-77 | \(\phantom{*}\)/\(\cdot\) | |
DASSL | n-\(\nu\)-\(1\) | BDF | \(*\)/\(*\) | F-77 | base for Sundials IDA – the base of many DAE solvers | \(*\)/\(\phantom{\cdot}\) |
LIMEX | sl-\(\nu\)-\(1\) | x-SE-Eul | \(*\)/\(*\) | F-77 | \(\phantom{*}\)/\(\phantom{\cdot}\) | |
RADAU | sl-\(\nu\)-\(1\) | RKM | \(*\)/\(*\) | F-77 | \(*\)/\(\phantom{\cdot}\) |
Notes:
Explanation | |
---|---|
DAEs | l-linear, sl-semilinear, nl-nonlinear |
classification: \(\mu\)-strangeness index, \(\nu\)-differentiation index | |
\(*\)-includes index reduction | |
h/p | time step control / order control |
availability | code for download / licence provided(\(*\)) or other statement(\(\cdot\)) |
methods | x-SE-Eul: extrapolation based on semiexplicit Euler |
9.2.2 Application specific
Furthermore, there are solvers for particularly structured DAEs.
DAEs | Resources |
---|---|
Navier-Stokes (nl-se-\(2\)) | See, e.g., Sec. 4.3 of our preprint on definitions of different schemes |
Multi-Body (nl-se-\(3\)) | See, e.g., the code on Hairer’s homepage |
9.3 Software
Many software suits actually wrap SUNDIALS IDA.
DAEs | Routines | Method | Remark | |
---|---|---|---|---|
Matlab | ind-\(1\) | ode15{i,s} |
BDF | |
Python | — | no built-in functionality, DASSL/IDA wrapped in the modules scikit-odes , assimulo , pyDAS , DAEtools |
||
Julia | ind-\(1\) | DifferentialEquations.jl |
BDF | calls SUNDIALS IDA |