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 , the temporal rate is represented as:
For non-uniform time steps, OpenFOAM uses the general coefficients , and derived from and the previous step size :
where
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
as:
| Contribution | Discrete form |
|---|---|
| Implicit (matrix diagonal) | |
| Explicit (source) |
where 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