Time Stepping Methods
Time stepping methods are methods for calculating how a value (or dimensioned values) evolves over time. Such an evolution should be expressed as a system of equations of the form:
\[
d\overrightarrow{x}/dt = f(\overrightarrow{x})\\
\overrightarrow{x}(t_0) = \overrightarrow{x}_0
\]
The implemented methods are:
- Explicit Euler (first order) (Euler)
- Crank-Nicolson (second order) (CrankNicolson)
- Second order Runge Kutta (RK2)
- Third order Runge Kutta (RK3)
- Fourth order Runge Kutta (RK4)
These classes all contain an update
method which carries out one time step of the algorithm.
Explicit Euler method
-
Scheme: \(x^{n+1} = x^{n} + dt f(x^{n+1})\)
-
Convergence order : 1.
Crank-Nicolson method
-
Scheme: \(x^{k} = x^{n} + \frac{dt}{2} \left( f(x^{n}) + f(x^k) \right)\) and \(x^{n+1} = x^{k+1}\) once converged.
-
Convergence order : 2.
RK2 method
- Scheme: \(x^{n+1} = x^{n} + dt k_2\)
-
with
- \(k_1 = f(x^{n})\),
- \(k_2 = f(x^{n} + \frac{dt}{2} k_1)\),
-
Convergence order : 3.
RK3 method
- Scheme: \(x^n = x^{n+1} - \frac{dt}{6} \left( k_1 + 4 k_2 + k_3 \right)\)
-
with
- \(k_1 = f(x^{n})\),
- \(k_2 = f(x^{n} + \frac{dt}{2} k_1)\),
- \(k_3 = f(x^{n} + dt( 2k_2 - k_1))\).
-
Convergence order : 3.
RK4 method
- Scheme: \(x^{n+1} = x^{n} + \frac{dt}{6} \left( k_1 + 2 k_2 + 2 k_3 + k_4\right)\)
-
with
- \(k_1 = f(x^{n+1})\),
- \(k_2 = f(x^{n+1} + \frac{dt}{2} k_1)\),
- \(k_3 = f(x^{n+1} + \frac{dt}{2} k_2)\),
- \(k_4 = f(x^{n+1} + dt k_3)\).
-
Convergence order : 4.