Skip to article frontmatterSkip to article content

In numerical weather prediction and climate modeling, time stepping refers to the process of advancing the simulation in time. This is typically done by discretizing the time domain into small intervals, or “time steps,” and updating the state of the system at each time step based on the governing equations.

There are several methods for time stepping, each with its own advantages and disadvantages. This section is a reference of the most commonly used algorithms.

Given an equation for the tendency of a random variable

ut=Q(t,u)\frac{\partial u}{\partial t} = Q(t,u)

Euler methods

These methods are used to approximate the solution to a differential equation by starting at an initial point and taking a series of small, discrete steps forward in time.

MethodSchemeOrder
Explicit
u~τ+1=u~τ+ΔtQτ\tilde{u}^{\tau+1} = \tilde{u}^\tau + \Delta t Q^\tau
Δt\Delta t
Implicit
u~τ+1=u~τ+ΔtQτ+1\tilde{u}^{\tau+1} = \tilde{u}^\tau + \Delta t Q^{\tau+1}
Δt\Delta t
Trapezoidal
u~τ+1=u~τ+Δt2(Qτ+Qτ+1)\tilde{u}^{\tau+1} = \tilde{u}^\tau + \frac{\Delta t}{2}(Q^\tau + Q^{\tau+1})
Δt2\Delta t^2
General
u~τ+1=u~τ+Δt((1α)Qτ+αQτ+1)\tilde{u}^{\tau+1} = \tilde{u}^\tau + \Delta t((1-\alpha)Q^\tau + \alpha Q^{\tau+1})
Δt\Delta t

Multistep methods

Unlike single-step methods that only use information from the most recent time step, multistep methods increase accuracy by using information from several previous steps to compute the next step.

MethodSchemeTruncation Order
Leapfrog
u~τ+1=u~τ1+2ΔtQτ\tilde{u}^{\tau+1} = \tilde{u}^{\tau-1} + 2\Delta t Q^\tau
Δt2\Delta t^2
Adams-Bashforth
u~τ+1=u~τ+Δt2(Qτ1+3Qτ)\tilde{u}^{\tau+1} = \tilde{u}^\tau + \frac{\Delta t}{2}(-Q^{\tau-1} + 3Q^\tau)
Δt2\Delta t^2
Adams-Moulton
u~τ+1=u~τ+Δt12(Qτ1+8Qτ+5Qτ+1)\tilde{u}^{\tau+1} = \tilde{u}^\tau + \frac{\Delta t}{12}(-Q^{\tau-1} + 8Q^\tau + 5Q^{\tau+1})
Δt3\Delta t^3
Adams-Bashforth
u~τ+1=u~τ+Δt12(5Qτ216Qτ1+23Qτ+1)\tilde{u}^{\tau+1} = \tilde{u}^\tau + \frac{\Delta t}{12}(5Q^{\tau-2} - 16Q^{\tau-1} + 23Q^{\tau+1})
Δt3\Delta t^3

Multistage methods

Multistage methods calculate the solution at the next time step by performing several intermediate calculations, or “stages,” within a single time interval. Instead of using data from previous time steps (like multistep methods), they evaluate the derivative function multiple times between the current and next points to get a more accurate slope estimate.

The core idea is to take a “trial” step, re-evaluate the derivative at this new trial position, and then use this more accurate information to take the final, full step.

MethodSchemeOrder
Runge-Kutta (2nd Order)
u~τ+1/2=u~τ+Δt2Q(tτ,u~τ)u~τ+1=u~τ+ΔtQ(tτ+1/2,u~τ+1/2)\begin{aligned} \tilde{u}^{\tau+1/2} &= \tilde{u}^\tau + \frac{\Delta t}{2}Q(t^\tau, \tilde{u}^\tau) \\ \tilde{u}^{\tau+1} &= \tilde{u}^\tau + \Delta t Q(t^{\tau+1/2}, \tilde{u}^{\tau+1/2}) \end{aligned}
Δt2\Delta t^2
Runge-Kutta (4th Order)
u~aτ+1/2=u~τ+Δt2Q(tτ,u~τ)u~bτ+1/2=u~τ+Δt2Q(tτ+1/2,u~aτ+1/2)u~=u~τ+ΔtQ(tτ+1/2,u~bτ+1/2)u~τ+1=u~τ+Δt6(Q(tτ,u~τ)+2Q(tτ+1/2,u~aτ+1/2)+2Q(tτ+1/2,u~bτ+1/2)+Q(tτ+1,u~))\begin{aligned} \tilde{u}_a^{\tau+1/2} &= \tilde{u}^\tau + \frac{\Delta t}{2}Q(t^\tau, \tilde{u}^\tau) \\ \tilde{u}_b^{\tau+1/2} &= \tilde{u}^\tau + \frac{\Delta t}{2}Q(t^{\tau+1/2}, \tilde{u}_a^{\tau+1/2}) \\ \tilde{u}^* &= \tilde{u}^\tau + \Delta t Q(t^{\tau+1/2}, \tilde{u}_b^{\tau+1/2}) \\ \tilde{u}^{\tau+1} &= \tilde{u}^\tau + \frac{\Delta t}{6} \big( Q(t^\tau, \tilde{u}^\tau) + 2Q(t^{\tau+1/2}, \tilde{u}_a^{\tau+1/2}) \\ &+ 2Q(t^{\tau+1/2}, \tilde{u}_b^{\tau+1/2}) + Q(t^{\tau+1}, \tilde{u}^*) \big) \end{aligned}
Δt4\Delta t^4