Under construction - please check again later


  • The nutUSpaldingWallFunction boundary condition provides a wall constraint on the turbulent viscosity, i.e. nut, based on velocity, i.e. U for low- and high-Reynolds number turbulence models.
  • Using Spalding's law gives a continuous nut profile to the wall.
  • The nutUSpaldingWallFunction condition inherits the traits of the nutWallFunction boundary condition.

Required fields:

nut  | Turbulent viscosity         [m2/s]

Model equations

The model expressions:

\[ \nu_t = \max(0, \frac{u_{\tau^*}^2}{|\grad{\u}| + \zeta} -\nu_w) \]


\[ y^+ = u^+ + \frac{1}{E} \left[exp(\kappa u^+) - 1 - \kappa u^+\, - 0.5 (\kappa u^+)^2 - \frac{1}{6} (\kappa u^+)^3\right] \]


\( \nu_t \) = Turbulent viscosity [m2/s]
\( \nu_w \) = Kinematic viscosity of fluid near wall [m2/s]
\( y^+ \) = Estimated wall-normal height of the cell centre in wall units
\( u^+ \) = Velocity near wall in wall units
\( \kappa \) = von Kármán constant [-]
\( E \) = Wall roughness parameter [-]
\( C_\mu \) = Empirical model constant [-]
\( y \) = Wall-normal height [m]


Example of the boundary condition specification:

    // Mandatory entries (unmodifiable)
    type            nutUSpaldingWallFunction;

    // Optional entries (unmodifiable)
    maxIter         10;
    tolerance       0.0001;

    // Optional (inherited) entries

where the entries mean:

Property Description Type Required Default
type Type name: nutUSpaldingWallFunction word yes -
maxIter Number of Newton-Raphson iterations label no 10
tolerance Convergence tolerance scalar no 0.0001

The inherited entries are elaborated in:

Notes on entries

  • Suffers from non-exact restart since correctNut() (called through turbulence->validate) returns a slightly different value every time it is called. This is since the seed for the Newton-Raphson iteration uses the current value of *this (=nut ).
  • This can be avoided by overriding the tolerance. This also switches on a pre-detection whether the current nut already satisfies the turbulence conditions and if so does not change it at all. This means that the nut only changes if it 'has really changed'. This probably should be used with a tight tolerance, to make sure to kick every iteration, e.g.

    maxIter 100; tolerance 1e-7;

  • The inherited wall-function blending methods are not available for this wall function.

Further information


Source code