komegaSST model (OF 1.6)  turbulent flat plate
3 Attachment(s)
Good afternoon,
in the last few days I did some computations with the implemented komegaSST 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 http://www.grc.nasa.gov/WWW/wind/val...rb/fpturb.html . (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 yplus reaching for 0.1 to 100. The yplus 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) yplus = 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 komegaSST 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 komegaSST turbulence model and wallfunctions 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 yplus > 30. This corresponds with suggestions in literature and here in the forum, that loglaw wall functions should be used with this grid resolutions. Smaller yplus values provide to high skin friction (and therefore pressure loss) in combination with this wallfunction approach. The second approach is a little bit more tricky and should show the capability of the in OF 1.6 implemented komegaSST turbulence model on fine grids and integrating the model to the wall. So no wallfunctions 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 yplus), 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 yplus values, as the laminar sublayer is resolved. What is quite bad is that there is no mesh independent solution for small yplus values, here yplus = 0.1. Therefore this approach is not satisfying. Perhaps the Menter wall BC suggestion is unrewarding for very small yplus values. Perhaps a limitation for the k production is needed. I hope, that especially the approach with wallfunctions could be a first little help for new users, how wallfunctions of the komegaSST 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 ! [1] http://www.opensourcecfd.com/confere...0b8b978b532798 [2] http://turbmodels.larc.nasa.gov/sst.html 
Hi,
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. Thanks 
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: http://www.cfdonline.com/Forums/ope...megasst2.html There is also pointed out, that a modified omegaWallFunction is available. This indeed uses the the described wallBC 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, lowRe, grid and the komegaSST turbulence model. For boundary conditions at the wall, k=0, mut=0, omega=omegaWallFunction (actual one). 
Hi
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 F1_ ( IOobject ( "F1", runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), to out put them. if not ,you could try to turn to A.Hellsten`s paper(AIAA A9832817) 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 1520(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 G0771998,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),793802. [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),803810. please let us now more. thanks! yours wayne 
Hi,
to 1) The idea to have a look at the blendingfactor 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. 
As mentioned in the original paper of Menter. F1 is used to blend the model from kepsilon to komega,actually original SST = [F1*komega+(1F1)*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@163.com 
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.

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

@cboss
Hi  Did you do a study of the various y+ values with your new method vis.: Quote:
Cheers Nick 
Me again!
When you set k=0 do you mean as a fixedValue not zeroGradient? Cheers 
Hi again
I realised that I'm using a different version to you. Do you know how to implement the wall functions in 1.5dev as I want to use TurbDyMFoam which is becoming difficult to compile in 1.6.x? Cheers Nick 
Nick,
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, yplus values in the area of 5 are not the best, because you are in an area between the classical high or lowRe approach. I would try to get the yplus 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.5dev. But as far as I remember, in 1.5dev you already have a komegaSST 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: http://www.cfdonline.com/Forums/ope...megasst2.html Sounds quite good! And I think changing mut=0 to mutSpalartAllmarasWallFunction will give you more freedom with yplus 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.5dev you'll see, that k is set to 'zeroGradient' as far as I remeber. I don't know what the background therefore is. Regards, Christoph 
Thanks Christoph
I am currently using a lowRe model. Ideally though, I wanted to use the wall function rather than a lowRe model as my simulations already take several days just in 2D due to the rotation of one of the domains. Hey ho! Nick 
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 yplus 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. Regards 
Thanks for that Christian, unfortunately with OF1.5dev 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 lowRe method anyway.
Cheers nick 
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! 
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] Nick 
Hi again Axel
Just realised that your equation and mine are the same (provided you meant Cmu) N 
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 
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 14:37. 