# 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 |