# Wall function usage

Posted April 2, 2018 at 22:34 by zacwhee

about wallfunction usage

Quote:

Since the documentation on the use of wall functions (or BCs for turbulence models in general) in OpenFOAM is rather small I tried to write up a little summary of what is posted in the internet (for kEpsilon, kOmegaSST & SA).

As this may also be interesting to other people and I would be interested in feedback, please find the summary below:

Basics:

If the grid near the wall is fine enough (~y+<1 everywhere and at least 4-5 nodes below y+=5) wall functions are not needed.

For kEpsilon a lowRe version is required, SA and kOmegaSST should be applicable also for low Re numbers (though this is under discussion for the OpenFOAM implementation: http://www.cfd-online.com/Forums/ope...penfoam-2.html).

For coarser grids (30<y+<100) wall functions exploit the universal logarithmic wall law to model the transition from the laminar near-wall flow to the fully developed turbulent flow.

Basically the type of wall function is chosen in the nut file by the nutxxx wall functions:

- nutWallFunction (seems to be the most basic wall function without further requirements): high-Re wall-function based on k.

- nutkWallFunction (standard for kEpsilon/kOmega, probably requires an equation for k...): nutkWallFunction sets the turbulent viscosity in the first node point based on the logarithmic law ( based on the turbulent kinetic energy close to the wall)

- nutUWallFunction: in comparison to nutkWallFunction this wall function calculates yPlus based on the velocity close to the wall (not k)

- nutUSpaldingWallFunction (standard for SA turbulence model, called nutSpalartAllmarasWallFunction in earlier version, original reference is doi:10.1115/1.3641728):

continuous wall-function which should cover the complete y+ range from O(1) to somewhere of O(10). Might be the best choice (together with low Re kEpsilon, kOmegaSST or SA, when y+ varies for different parts of the wall.

- nutLowReWallFunction (code comment: "Sets nut to zero, and provides an access function to calculate y+." ):

Dummy wall function required for the calculation of yPlusRAS in simulations which resolve the near wall flow (however, there are varying opinions about this in the internet).

For epsilon, omega, k, ... one uses the corresponding wall functions exist:

- epsilonWallFuncion for epsilon ( (fixed value e=0 or better e=1e-8(?) for lowRe calculations):

calculate (for each timestep) the first grid point value by using an algebraic expression derived from the classical logarithmic law-of the wall approach

- kqRWallFunction for k, q, R

in code: Boundary condition for turbulence k, Q, and R when using wall functions. Simply acts as a zero gradient condition.

(appears to be applicable down to yPlus~1, but one should use a fixed value with k=0 or a very small value for y+<1)

- omegaWallFunction for omega; Not really a wall function but the b.c. defined by Menter for Omega, i.e. should be used always for kOmega model, independent of y+)

omegawall=60*nu/(beta*y^2), with nu=kinematic viscosity at the wall, beta=0.075 and y=normal distance between the first fluid node and the nearest wall-> very large value for omega)

The "value" which is specified for the wall functions is only an initial conditions

To check my understanding I did some comparisons of simulations with OF 2.4/3.0 to Wieghardt's flat plate Cf measurements:

As this may also be interesting to other people and I would be interested in feedback, please find the summary below:

Basics:

If the grid near the wall is fine enough (~y+<1 everywhere and at least 4-5 nodes below y+=5) wall functions are not needed.

For kEpsilon a lowRe version is required, SA and kOmegaSST should be applicable also for low Re numbers (though this is under discussion for the OpenFOAM implementation: http://www.cfd-online.com/Forums/ope...penfoam-2.html).

For coarser grids (30<y+<100) wall functions exploit the universal logarithmic wall law to model the transition from the laminar near-wall flow to the fully developed turbulent flow.

Basically the type of wall function is chosen in the nut file by the nutxxx wall functions:

- nutWallFunction (seems to be the most basic wall function without further requirements): high-Re wall-function based on k.

- nutkWallFunction (standard for kEpsilon/kOmega, probably requires an equation for k...): nutkWallFunction sets the turbulent viscosity in the first node point based on the logarithmic law ( based on the turbulent kinetic energy close to the wall)

- nutUWallFunction: in comparison to nutkWallFunction this wall function calculates yPlus based on the velocity close to the wall (not k)

- nutUSpaldingWallFunction (standard for SA turbulence model, called nutSpalartAllmarasWallFunction in earlier version, original reference is doi:10.1115/1.3641728):

continuous wall-function which should cover the complete y+ range from O(1) to somewhere of O(10). Might be the best choice (together with low Re kEpsilon, kOmegaSST or SA, when y+ varies for different parts of the wall.

- nutLowReWallFunction (code comment: "Sets nut to zero, and provides an access function to calculate y+." ):

Dummy wall function required for the calculation of yPlusRAS in simulations which resolve the near wall flow (however, there are varying opinions about this in the internet).

For epsilon, omega, k, ... one uses the corresponding wall functions exist:

- epsilonWallFuncion for epsilon ( (fixed value e=0 or better e=1e-8(?) for lowRe calculations):

calculate (for each timestep) the first grid point value by using an algebraic expression derived from the classical logarithmic law-of the wall approach

- kqRWallFunction for k, q, R

in code: Boundary condition for turbulence k, Q, and R when using wall functions. Simply acts as a zero gradient condition.

(appears to be applicable down to yPlus~1, but one should use a fixed value with k=0 or a very small value for y+<1)

- omegaWallFunction for omega; Not really a wall function but the b.c. defined by Menter for Omega, i.e. should be used always for kOmega model, independent of y+)

omegawall=60*nu/(beta*y^2), with nu=kinematic viscosity at the wall, beta=0.075 and y=normal distance between the first fluid node and the nearest wall-> very large value for omega)

The "value" which is specified for the wall functions is only an initial conditions

To check my understanding I did some comparisons of simulations with OF 2.4/3.0 to Wieghardt's flat plate Cf measurements: