CFD Online Logo CFD Online URL
Home > Forums

Closing on wall functions - part 4: a Musker-Monkewitz wall function

Register Blogs Members List Search Today's Posts Mark Forums Read

Rate this Entry

Closing on wall functions - part 4: a Musker-Monkewitz wall function

Posted April 23, 2022 at 17:53 by sbaffini
Updated April 26, 2022 at 16:49 by sbaffini

In the Musker-Monkewitz wall function the following assumption is made on the turbulent viscosity profile:

\frac{\mu_t}{\mu} = \frac{\left(\kappa y^+\right)^3}{\left( \kappa y^+\right)^2+\left(\kappa a \right)^3-\left(\kappa a \right)^2}

where \kappa is the von Karman constant and a is a constant that specifies the y^+ for which \frac{\mu_t}{\mu} =1 but, in practical terms has the same role of y_v^+ in the standard wall function of the previous post.

There are really several reasons for which this profile is relevant. First of all, it is a continuous, all y^+ profile which has the correct limiting near wall C{y^+}^3 behavior as well as the correct \kappa y^+ logarithmic behavior. Second, as already mentioned here, it has a nice closed form solution. The third reason, as already stated here, but worth restating here, it allows computing the temperature integrals:

{s_T^i}^+ = \int_0^{y+}{\frac{z^{i+1}}{\left[1+\left(\frac{Pr}{Pr_t}\right)\left(\frac{\mu_t}{\mu}\right)\right]}dz}

from the same formula for the velocity integrals:

{s_U^i}^+ = \int_0^{y+}{\frac{z^{i+1}}{\left[1+\left(\frac{\mu_t}{\mu}\right)\right]}dz}

by properly redefining the two profile constants \kappa and a, so it works for arbitrary Pr/Pr_t ratios (or, seen differently, the constant redefinition of the model is, in its own, a model like the Jayatilleke term for the standard wall function). Finally, the model has a strong similarity with the behavior that the Spalart-Allmaras turbulent viscosity assumes in equilibrium conditions (a=4.6228/k in the SA model):

\frac{\mu_t}{\mu} = \frac{\left(\kappa y^+\right)^4}{\left( \kappa y^+\right)^3+\left(\kappa a \right)^4-\left(\kappa a \right)^3}

Which means that, for a properly coded Spalart-Allmaras model, changing a constant and an exponent is all that is required to let it have a closed form analytical solution for arbitrary Pr/Pr_t ratios which is also, obviously, its own wall function.

Note that the original Spalart-Allmaras turbulent viscosity can be analytically integrated as well. But differently from the Musker one, the solution is only known in terms of numerical constants. Which means that, for each given Pr/Pr_t ratio, the numerical constants must be recomputed, which is not very useful.

Back to the present Musker-Monkewitz solution, after substitution of the turbulent viscosity profile in the integrals above, and reminding that we only need the one for the velocity (from which temperature and scalars can be obtained), one obtains:

{s_U^i}^+ = \frac{1}{\kappa^{i+2}}\int_0^{ky+}{\frac{x^{i+1}\left(x^2+c^3-c^2\right)}{x^3+x^2+c^3-c^2}dx}

for the velocity and:

{p^i}^+ = \frac{1}{\kappa^{i+2}}\int_0^{ky+}{\frac{x^{i+4}\left(x^2+c^3-c^2\right)}{\left(x^3+x^2+c^3-c^2\right)^2}dx}

for the average turbulent kinetic energy production, with c=\kappa a. Now, it is easy to obtain closed form solutions to the integrals above for each value of i, but a closed form solution that works for arbitrary i seems out of reach. In the final scripts I will provide a solution just for the constant non equilibrium term (thus for i=-1 and i=0), but here I just want to highlight that, heuristically, solutions to the integrals above seem to have the following forms (x=\kappa y^+):

{s_U^i}^+ = \frac{1}{\kappa^{i+2}}\left[a_1 f_1\left(x,c\right)+a_2 f_2\left(x,c\right) + a_3 f_3\left(x,c\right) +\sum_{j=1}^{i+1} a_{3+j}x^j\right]

{p^i}^+ = \frac{1}{\kappa^{i+2}}\left[b_1 f_1\left(x,c\right)+b_2 f_2\left(x,c\right) + b_3 f_3\left(x,c\right) + f_4\left(x,c\right)+\sum_{j=1}^{i+1} b_{6+j}x^j\right]


f_1\left(x,c\right) = \ln{\left(\frac{x+c}{c}\right)}

f_2\left(x,c\right) = \ln{\left[\frac{x^2+\left(c-1\right)\left(c-x\right)}{c\left(c-1\right)}\right]}

f_3\left(x,c\right) = \frac{\arctan{\left[\frac{2x-\left(c-1\right)}{\sqrt{\left(c-1\right)\left(3c+1\right)}}\right]} + \arctan{\left[\frac{\left(c-1\right)}{\sqrt{\left(c-1\right)\left(3c+1\right)}}\right]}}{\sqrt{\left(c-1\right)\left(3c+1\right)}}

f_4\left(x,c\right) = \frac{b_4x^2+b_5x+b_6}{x^3+x^2+c^2\left(c-1\right)}-\frac{b_6}{c^2\left(c-1\right)}

where the a_j and b_j are constants which are only function of c. Thus, notably, one only has to compute a given integral with a symbolic toolbox and pick up the constants expressions, as the functions f_i are fixed (and 3 of 4 common between the two integrals).

The last thing which is worth mentioning about the Musker-Monkewitz wall function is that, as will be shown running the scripts provided in the last post of this series, it very closely follows a turbulent viscosity prescription which is very popular in the LES community that directly solves the original ODE with a tridiagonal solver (like this), the van Driest damped mixing length:

\frac{\mu_t}{\mu} = \kappa y^+ \left(1-e^{-\frac{y^+}{A^+}}\right)^2

Thus, the take home message here is that, unless you are adding compressibility effects, you are wasting resources, because the Musker-Monkewitz profile is, to all the practical means, identical. Large differences only arise at very large Pr/Pr_t ratios, say, 100 or more.

Finally, following the general discussion here, it is worth mentioning that the same feature that makes the Musker-Monkewitz profile adaptable to any Pr/Pr_t ratio, also makes it easily adaptable to any relevant turbulence model (yet, of course, not exactly). What is needed is just a different law to modify the profile constant, one that can be derived by adapting the Musker profile to the given model profile instead of the one embedded in the model. Such adaptation, which should be done in equilibrium conditions, can be very easily performed as a non linear least-squares optimization.
Posted in Uncategorized
Views 735 Comments 0 Edit Tags Email Blog Entry
« Prev     Main     Next »
Total Comments 0



All times are GMT -4. The time now is 18:07.