Many of the convection schemes in OpenFOAM are based on the Normalised Variable (NV) [40] and Total Variation Diminishing (TVD) [23] methods. These provide a set tools to characterise scheme properties such as boundedness (1-D).



  • Offer a blend between a low order scheme and a higher order scheme based on the calculation of a limiter
  • Boundedness of NVD/TVD schemes is only guaranteed for 1-D cases
  • Boundedness can be improved in 2-D and 3-D cases by limiting the gradient

Limiter calculation

For arbitrary unstructured meshes it is not straightforward to identify the upstream and downstream locations reliably. The limiters are evaluated using a compact stencil as described in Jasak et al. [26], where:

TVD: Limiter \(\Psi(r)\) defined as a function of \(r\) \(r = 2 \frac{\vec{d} \dprod \left( \grad{\phi} \right)_P}{\vec{d} \dprod \left(\grad{\phi} \right)_f} - 1 = 2 \frac{\vec{d} \dprod \left( \grad{\phi} \right)_P}{\phi_N - \phi_P} - 1\) NVD: Limiter \(\widetilde{\phi_f}\) defined as a function of \(\widetilde{\phi_c}\) \(\widetilde{\phi_c} = 1 - 0.5 \frac{\vec{d} \dprod \left( \grad{\phi} \right)_f}{\vec{d} \dprod \left( \grad{\phi}\right)_P } = 1 - 0.5 \frac{\phi_N - \phi_P}{\vec{d} \dprod \left(\grad{\phi}\right)_P}\) Where the gradient at cell P \(\left( \grad{\phi} \right)_P\) is calculated using the user-selected gradient scheme, and the vector \(\vec{d}\) \(\vec{d} = \vec{C}_{N} - \vec{C}_{P}\)

Further information

Source code: