CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   k-omega-SST model (OF 1.6) - turbulent flat plate (

cboss February 23, 2010 11:29

k-omega-SST model (OF 1.6) - turbulent flat plate
3 Attachment(s)
Good afternoon,

in the last few days I did some computations with the implemented k-omega-SST turbulence model of OF 1.6 and would like to share the results here.

As this is my first post, just a few words about my person. I've now been working with OF 1.6 for six weeks with the intention to use OF for turbomachinery computations, or at least for periphery of turbomachines.

For the first sight I used a quite famous validation case for turbulence models, the turbulent flat plate study by Wieghardt, that is provided on .
(On this site also grids are provided, but I was not able to open these grids)

The provided results of the skin friction are used for comparison, as this value, according to my understanding, is proportional to the pressure loss.

The case is computed with several grid resolutions, with y-plus reaching for 0.1 to 100. The y-plus value is calculated with the experimental skin friction at x = 4.687 m and is therefore independent from the computational results. The experimental data provides a skin friction factor Cf, which is coupled with the wall shear stress tau_wall.

Cf = tau_wall / (1/2 * rho * c^2)

y-plus = y * sqrt( tau_wall / rho ) / nu

The boundary conditions are set up as follows:

Inlet: Ux = 68.8 m/s , k = 23.6 m^2/s^2 , omega = 12.83 1/s , p = 101350 Pa
Outlet: p = 101350 Pa
The inlet is located 0.5 m upstream of the plate. The velocity and pressure values are taken from the experiment description. The values for k and omega are taken from [1], while omega is calculated as follows.

omega = epsilon * C_mu / k (see Wilcox)
C_mu = 0.09

As the case is 2D, the front and back patch is defined as empty. The upper and lower "free" surfaces are set to symmetryPlane, the plate to wall.

At the start all grids are computed with CFX and the implemented k-omega-SST turbulence model to check if the case setup is correct and as a reference. The results show good agreement with the experimental results and a nearly mesh independent solution. Also the asymptotic behavior at x = 0 m is described correctly.

Following all grids are computed with OF 1.6 using the implemented k-omega-SST turbulence model and wall-functions with the default parameters. kRqWallFunction for the wall boundary condition (BC) for k, omegaWallFunction for the wall BC for omega, and nutWallFunction to get a value for nut at the wall.

The flow was assumed incompressible and simpleFoam is used.

The results show a good agreement with the experimental data and mesh independent solution for y-plus > 30. This corresponds with suggestions in literature and here in the forum, that log-law wall functions should be used with this grid resolutions. Smaller y-plus values provide to high skin friction (and therefore pressure loss) in combination with this wall-function approach.

The second approach is a little bit more tricky and should show the capability of the in OF 1.6 implemented k-omega-SST turbulence model on fine grids and integrating the model to the wall. So no wall-functions are used. As the grid is assumed to be fine enough to resolve the laminar sublayer at the wall, the values of k and nut are set to zero. Therefore the conditions at the wall are set to "fixedValue uniform 0". As the wall BC for omega a suggestion for smooth walls by Menter is used which defines omega at the wall as a function of y (not y-plus), where y is the wall distance of the nearest cell center. [2]

omega_wall = 10 * 6 * nu / ( 0.075 * y^2 )

The omega_wall value is calculated for each grid an is defined in the "omega" file by hand as "fixedValue uniform".

The results show, as expected, good agreement for small y-plus values, as the laminar sublayer is resolved. What is quite bad is that there is no mesh independent solution for small y-plus values, here y-plus = 0.1. Therefore this approach is not satisfying. Perhaps the Menter wall BC suggestion is unrewarding for very small y-plus values. Perhaps a limitation for the k production is needed.

I hope, that especially the approach with wall-functions could be a first little help for new users, how wall-functions of the k-omega-SST turbulence model in OF 1.6 work.

A few remarks that took me some hours. I found two ways to get the wall shear stress: Using the "wallGradU" tool and multiplying with mu_eff. Using the "wallShearStress" tool, which seems to internally multiply the normal wallGradU component with nu_eff. To get the correct stress, the result has to be multiplied with rho, as nu = mu / rho. (!) Because simpleFoam consequently uses normalized (with rho) values.

Any comments and discussion is greatly appreciated !


maruthamuthu_venkatraman April 6, 2010 10:12

Have you tried this nutSpallartAllmaraswallfunction ? Since there is no clear documentation for it I couldn't comment anything in concrete.

However it includes both laminar and viscous parts of the turbulent boundary layer. It acts as a hybrid wall function. You shall try it out and check your results .

I asked for more documentation in the forum. If i get it i will update you.


cboss April 7, 2010 06:08

I did not use the nutSpallartAlmarasWallFunction. At this point I thought, that it can only be used with the depending turbulence model.

There are some interesting comments on this wall function in this thread:

There is also pointed out, that a modified omegaWallFunction is available. This indeed uses the the described wall-BC for omega, proposed by Menter [2]. (At first sight, I could not find the factor 10). I like this new wall function very much!

What I generally do now, is using a fine, low-Re, grid and the k-omega-SST turbulence model. For boundary conditions at the wall, k=0, mut=0, omega=omegaWallFunction (actual one).

waynezw0618 April 7, 2010 08:56

well, It is a interesting topic about v&v of RANS.and how is going now?
1) I want to know if you have check out F1 and F2 to find out if the model correctly distinguish the boundary layer and core region? you could just add
to out put them. if not ,you could try to turn to A.Hellsten`s paper(AIAA A98-32817) to make some modification to the origional model. this may make improvements.

2) the validate using of SST model of wall function for omega(not log -law) is not only to make the Y_plus smaller then 1,but also to make engough grids in the boundary layer,that is about 15-20(I am not sure.)

3) the convergency procedure of grid problem may be not only "gradually" but also oscillating.and practicle guide line about this topic may be find in website of J. of Fluid Eng. or you could find some reference paper to check out the grid convergency,such as :

[1]AIAA.Editorial policy statement on numerical accuracy and experimental uncertainty.AIAA Journal,1994,32(1):3
[2]Editorial Board.Journal of heat transfer editorial policy statement on numerical accuracy.Journal of Heat Transfer,1994,116:797~798 [3]AIAA.Guide for the verification and validation of computational fluid dynamics simulations.AIAA G-077-1998,1998

[4]Stern F, Wilson R, Coleman H et al. Comprehensive Approach to verification and validation of CFD simulation Part 1:Methodology and Procedures[J]. Journal of Fluids Engineering.2001:123(4),793-802. [5]Stern F, Wilson R, Coleman H et al. Comprehensive Approach to verification and validation of CFD simulation Part 2: Application for RANS Simulation of Cargo/Container Ship [J]. Journal of Fluids Engineering.2001:123(4),803-810.

please let us now more. thanks!

yours wayne

cboss April 7, 2010 10:07

to 1) The idea to have a look at the blending-factor F1 seems to be interesting. But to answer your question, I did not look at the blending. I also have to admit, that I don't know, what a correct blending would be.

to 2) Very good point. I had a short look at the y+=1 mesh, and the condition you described is not fulfilled. The laminar sublayer should be in the area up to y+=11 (please correct if wrong), so to met the condition of say 15 cells in this region y+ must be smaller than 1 and the expansion ratio around 1.1 (generally I use 1.2).
Interesting point.

to 3) Everything new to me. But thank you for the long list of literature.

Hope this can help you someway.

waynezw0618 April 7, 2010 10:46

As mentioned in the original paper of Menter. F1 is used to blend the model from kepsilon to komega,actually original SST = [F1*komega+(1-F1)*ke] + (correction for shear stress transportation),but maybe more complex then that with other modification.It makes kOmega works in boundary layer and kEpsilon in core area.and sometimes it may over predict the boundary layers with original SST model,especially in complex case like airfoil compress blades.this may affect the flow and then the Cf. for example influent the prediction of separation point. these details about F1 and F2 could turn to the original paper of F.Menter.\

v&v method is very useful to determine if the case is convergency.

BTW which kind of turbomachines you will calculate? compressor .pump or water turbine? would you mind send me email :

waynezw0618 April 7, 2010 10:50

P.S. I think this conclusions (Y+ <1 ,15 nodes in boundary layer) is not useful for more complex case like separation, curvature boundary , becasue they are not from physical but from numerical test of flat plate.

NickG May 6, 2010 12:00

Just wanted to say thanks for the post. Really Helpful.

NickG May 6, 2010 12:57


Hi - Did you do a study of the various y+ values with your new method vis.:


Originally Posted by cboss (Post 253507)
What I generally do now, is using a fine, low-Re, grid and the k-omega-SST turbulence model. For boundary conditions at the wall, k=0, mut=0, omega=omegaWallFunction (actual one).

Part of the problem I have is that I want 10 nodes inside the boundary layer as recommended in the CFX SST mesh guide, but for the Reynolds number I'm using the y+ value becomes ~6 with no mesh expansion. From your results this obviously isn't good in OpenFOAM...



NickG May 6, 2010 13:18

Me again!

When you set k=0 do you mean as a fixedValue not zeroGradient?


NickG May 7, 2010 08:13

Hi again

I realised that I'm using a different version to you. Do you know how to implement the wall functions in 1.5-dev as I want to use TurbDyMFoam which is becoming difficult to compile in 1.6.x?



cboss May 7, 2010 09:44


always nice to hear, that the post is appreciated.
(1) No, I did not do the study with the omegaWallFunction of OF 1.6.x. But I don't think, that this will make a big difference as long as the boundary condition for mut is fixedValue=0.

(2) Indeed, if you have a look at literature, y-plus values in the area of 5 are not the best, because you are in an area between the classical high- or low-Re approach. I would try to get the y-plus values a little bit more towards 1 and switch to the lowRe model (see (4))

(3) Yes, I set k as fixedValue=0.

(4) No, I don't know how to run the omegaWallFunction from 1.6.x in 1.5-dev. But as far as I remember, in 1.5-dev you already have a k-omega-SST lowRe Model. If you would like to have some kind of adaptive wall treatment, it is perhaps worth trying what Henry Weller points out in post #23 here:
Sounds quite good! And I think changing mut=0 to mutSpalartAllmarasWallFunction will give you more freedom with y-plus values than the 'adaptive' omegaWallFunction of 1.6.x. (Never used it)

(5) If you have a look at the SST lowRe model in 1.5-dev you'll see, that k is set to 'zeroGradient' as far as I remeber. I don't know what the background therefore is.


NickG May 7, 2010 10:25

Thanks Christoph

I am currently using a low-Re model. Ideally though, I wanted to use the wall function rather than a low-Re model as my simulations already take several days just in 2D due to the rotation of one of the domains. Hey ho!


cboss May 7, 2010 10:49

Okay. If you would like to use wall functions there should be no problem. One can just use the supplied wall functions for k, omega and mut.
But if you use the wall function approach, your y-plus values should be in the area of 30 (and a little above). Otherwise you'll get to high skin friction. Can clearly be seen on my 'wall functions' diagram, and is nothing new.


NickG May 8, 2010 02:30

Thanks for that Christian, unfortunately with OF-1.5-dev it doesn't seem to be as simple as specifying a wall function as a boundary condition, but I think I need to go with the low-Re method anyway.



chelvistero June 8, 2010 14:33

Hello Foamers,
I also trying to simulate an airfoil with kOmegaSST without wall Functions. Is there something new about the boundary conditions?
I tried with

nut=nutSpalartAllmarasWallFunction fixedValue 0,
kWall=fixedValue 0,
kInlet=fixedValue 0.03375 (3/2*(u*I)) ,
omegaWall=6693336 (omega_wall = 10 * 6 * nu / ( 0.075 * y^2 ))
omegaInlet=fixedValue 22.36 (epsilon/(Cnu*k))

But the results aren't very good. Does anybody know if the boundaries aren't correct?

Thank's in advance!

NickG June 9, 2010 06:15

Hi Axel

What version of OF and which solver are you using?
I've been using omega = (Cmu ^ -0.25)(k^0.5)/L
where L is the characteristic length, as an internal field for all except for the inlet and let it find its own level.
I'm happy with the results so far..

[note Cmu not Cnu - though that's what I think you meant]


NickG June 9, 2010 06:18

Hi again Axel

Just realised that your equation and mine are the same (provided you meant Cmu)


chelvistero June 9, 2010 07:41

Hello Nick,
thanks for reply. You're right I meant Cmu (0.09). I'm using OpenFoam 1.6.x and the simpleFoam solver.
For the characteristic length I choose the chord length of the airfoil, I hope that's right.
yPlusRas ~ 1

NickG June 10, 2010 12:01

I would think so. There's another thread mentioned above in post #12 that you may want to check out.

All times are GMT -4. The time now is 21:05.