Skip to main content

Backward time scheme

Properties

  • Implicit
  • Second order in time
  • Transient
  • Boundedness not guaranteed
  • Conditionally stable

Discretisation

The backward scheme uses second-order backward differencing in time, requiring the current and two previous time-level field values. On a static mesh with uniform time step Δt\Delta t, the temporal rate is represented as:

t(ϕ)1Δt(32ϕ2ϕo+12ϕoo) \ddt{\phi} \approx \frac{1}{\Delta t} \left(\frac{3}{2}\phi - 2\old{\phi} + \frac{1}{2}\oldold{\phi}\right)

For non-uniform time steps, OpenFOAM uses the general coefficients coefft\mathrm{coeff}_t, coefft0\mathrm{coeff}_{t0} and coefft00\mathrm{coeff}_{t00} derived from Δt\Delta t and the previous step size Δto\Delta t^{o}:

t(ϕ)1Δt(coefftϕcoefft0ϕo+coefft00ϕoo) \ddt{\phi} \approx \frac{1}{\Delta t} \left( \mathrm{coeff}_t\,\phi - \mathrm{coeff}_{t0}\,\old{\phi} + \mathrm{coeff}_{t00}\,\oldold{\phi} \right)

where

coefft=1+ΔtΔt+Δto,coefft00=Δt2Δto(Δt+Δto),coefft0=coefft+coefft00 \mathrm{coeff}_t = 1 + \frac{\Delta t}{\Delta t + \Delta t^{o}}, \quad \mathrm{coeff}_{t00} = \frac{\Delta t^{2}}{\Delta t^{o}\left(\Delta t + \Delta t^{o}\right)}, \quad \mathrm{coeff}_{t0} = \mathrm{coeff}_t + \mathrm{coeff}_{t00}

On the first time step the scheme reduces to Euler implicit until two previous time levels are available.

Implicit and explicit contributions

When fvm::ddt(phi) is used, the temporal term contributes to the linear system for ϕ\phi as:

ContributionDiscrete form
Implicit (matrix diagonal)coefftΔtVϕ\displaystyle\frac{\mathrm{coeff}_t}{\Delta t}\, V\,\phi
Explicit (source)1Δt(coefft0ϕocoefft00ϕoo)V\displaystyle\frac{1}{\Delta t}\left(\mathrm{coeff}_{t0}\,\old{\phi} - \mathrm{coeff}_{t00}\,\oldold{\phi}\right) V

where VV is the cell volume. The corresponding explicit evaluation from fvc::ddt(phi) is the difference between these two parts.

Usage

The scheme is specified using:

ddtSchemes
{
default backward;
ddt(phi) backward;
}

Compared with Crank-Nicolson, the backward scheme is generally more robust and provides formal second-order accuracy in time, but requires old-old-time field values in the matrix assembly and does not offer the same opportunity for flux limiting at the mid-point of the time step.

Further information

Source code