|
[Sponsors] |
k-omega SST for wall-resolved TBL, problem with log layer. |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 13, 2012, 08:51 |
k-omega SST for wall-resolved TBL, problem with log layer.
|
#1 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
Hello Foamers,
I'm trying to compute a turbulent flow on a 2-D airfoil usin RANS. I've created my mesh such that the flow is wall resolved (y+ ~ 1 ). I would like to compare different models: the first one is the Spalart-Allmaras model, and the second one is the k-omega SST model. From what I've read, those two models are good for wall-resolved turbulent flow, and especially for boundary layers experiencing adverse pressure gradients, and separating flows. To be sure about the quality of my results, I have first computed a simple turbulent boundary layer on a plane plate, with an uniform velocity at the inflow. For the Spalart-Allmaras model, the results are very good and show the expected viscous layer and the log layer, but for the k-Omega SST model, the results aren't that good (See picture), and there is no log layer (or at least with the correct slope kappa ~ .37), and I don't know where that problem might come from (i used pisoFoam solver)... For the boundary conditions on omega, I use the condition : omega_wall = 10*6*nu/0.075*y^2 with y = distance to the wall of the centroid of the first cell. |
|
March 13, 2012, 09:07 |
|
#2 |
New Member
Gilles De Neyer
Join Date: Nov 2011
Posts: 18
Rep Power: 15 |
I had the same problem a few weeks ago. I would be really happy if somebody had the solution !
Which inflow/outflow condition did you use for k and omega ? |
|
March 13, 2012, 09:16 |
|
#3 |
Senior Member
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18 |
Hello, Guillaume,
this doesn't look right. I had better results for such a simple case using the k-omega-SST-turbulence model. Can you give us more infos on your setup? (grid specs, numerical schemes, boundary conditions, initial conditions) Greetings, Felix |
|
March 13, 2012, 13:27 |
|
#4 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
Here are my boundary and initial conditions :
inlet : k = 1e-4; omega = 1; nut : calculated; U = (1 0 0); p : zeroGradient; outlet : k : zeroGradient omega : zeroGradient; nut : calculated; U : zeroGradient; p = 0; wall : U = (0 0 0); p = zeroGradient; k : zeroGradient; omega = 10*6*nu/0.075*y^2 with y = 2.3e-4 and nu = 1e-5 nut = 0; Initial condition : omega = 1; k = 1e-4 ; p = 0; U = (1 0 0); I think my grid is okay since the Spalart Allmaras works well on it.. Thanks for your help |
|
March 13, 2012, 13:33 |
|
#5 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
And here are my fvSolution & fvSchemes, but I don't think the problem comes from there...
fvSolution Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; preconditioner DICGaussSeidel; tolerance 1e-06; relTol 0.0001; nCellsInCoarsestLevel 100; agglomerator faceAreaPair; mergeLevels 1; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; } pFinal { solver GAMG; preconditioner DICGaussSeidel; tolerance 1e-06; relTol 0; nCellsInCoarsestLevel 100; agglomerator faceAreaPair; mergeLevels 1; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; } U { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0; } k { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0; } omega { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0; } R { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0; } } potentialFlow { nNonOrthogonalCorrectors 3; } PISO { nNonOrthogonalCorrectors 3; pRefCell 10; pRefValue 0; residualControl { p 1e-8; U 1e-8; "(k|epsilon|omega)" 1e-3; } } relaxationFactors { p 0.3; U 0.7; k 0.7; omega 0.7; } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default backward; } gradSchemes { default Gauss linear; grad(p) leastSquares; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) Gauss limitedLinearV 1; div(phi,k) Gauss limitedLinear 1; div(phi,omega) Gauss limitedLinear 1; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A(U)),p) Gauss linear corrected; laplacian(1,p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DomegaEff,omega) Gauss linear corrected; laplacian(DREff,R) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } // ************************************************************************* // |
|
March 13, 2012, 13:44 |
|
#6 |
Senior Member
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18 |
Hello, Guillaume,
thanks for the informations. For a start, I have two comments: 1. Use k = fixedValue 1e-12 (or some different, very small number) at the wall. zeroGradient usually is the wall function approach. In LowRe-formulations, k equals zero at the wall. 2. Your solution doesn't seem to be converged. Could you attach a residuals vs. time plot, please? Using simpleFoam (steady-state calculations) there were problems with the omega equation not being solved anymore after some iterations. This lead to wrong results. It can be the same in your case. I'd suggest to set the solver tolerance for omega to a very small value (1e-12, for example) and try again. Greetings, Felix. |
|
March 13, 2012, 14:01 |
|
#7 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
Thanks for your advices, Felix, I will try to do so as soon as I can, and I will comment my results here.
|
|
March 15, 2012, 06:45 |
|
#8 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
Hella again,
I followed your advices, and my results are better than before, but I still don't get the right logarithmic slope in the log layer.. Do you have any ideas what could cause this ? |
|
March 15, 2012, 08:23 |
|
#9 |
Senior Member
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18 |
Hello, Guillaume,
a.) which OF Version are you using? b.) did you check for grid independence when using the k-Omega-SST-model? Greetings, Felix. |
|
March 15, 2012, 09:19 |
|
#10 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
Hi,
I'm using openFOAM 2.0.1. What do you mean by "checking for grid independence", my omega BC at the wall depends on the first cell so I'm not sure to understand what you mean? My mesh is such that the first cell is at y+ < 1, if that's the question... Thanks Guillaume |
|
March 15, 2012, 09:57 |
|
#11 |
Senior Member
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18 |
Hello, Guillaume,
with checking for grid independence I mean that you made sure that the discretization error is low enough to omit it when interpreting your results. When grid spacing tends to zero, the discretization error also does so the easiest way to check for grid independence is to refine the mesh by factor two in all (relevant) spatial dimensions. This does not mean that a reasonably low y+ value is enough for your results to be accurate! There are many factors playing a role in wall bounded flows, e.g. cell expansion ratio, grid density in streamwise direction, aspect ratios, etc. That's why I want to know if your results are grid independent. Otherwise it's too hard to tell why your results are so off. Greetings, Felix. |
|
March 15, 2012, 10:00 |
|
#12 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
I'll run a case on a finer mesh to compare results, but i used rather conventional values to generate my mesh so it should be ok...
|
|
June 29, 2012, 09:22 |
|
#13 |
Senior Member
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 16 |
Hey,
why don't you use omegaWallFunction for omega at the wall? Regards Anne |
|
July 10, 2012, 19:08 |
|
#14 |
New Member
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 15 |
Because I've created my mesh such that it is wall resolved (y+ ~ 1 ), in order to see all the detail of the boundary layer. Indeed, I want to study boundary layers, so using wall functions would be a non-sense
|
|
July 10, 2012, 22:31 |
|
#15 |
Senior Member
Travis Carrigan
Join Date: Jul 2010
Location: Arlington, TX
Posts: 161
Rep Power: 16 |
The k-omega SST turbulence model implemented in OpenFOAM is in high-Re form. There are several posts on the forums discussing the models breakdown or inaccuracy for resolved grids (y+=1).
However, I've read that you can use this model for resolved flows by coupling it with a continuous wall function like nutUSpaldingWallFunction. You would then use kqRWallFunction for k and omegaWallFunction for omega. I've tried the above approach for turbulent flat plate flow with no success. |
|
July 11, 2012, 03:58 |
|
#16 | |
Senior Member
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18 |
Quote:
I wouldn't say it's "nonsense". The omegaWallFunction works perfectly fine for both LowRe and HighRe-meshes. Take a look at the implementation or numerous other threads in this message board and you will see that for the viscous sublayer the correct asymptotic solution is used. @tcarrigan: You should use typical LowRe-BCs when resolving the boundary layer with your mesh. I.E. U = 0; k = 1e-12; omega = omegaWallFunction; nut = calculated or nut = 1e-12 I've used these settings with lots of success for simple flat plate cases. Another note: if you compare the OpenFOAM implementation of the SST-model with literature you'll notice that the OpenFOAM implementation doesn't differ from typical versions of the model. Since Menter's original formulations are applicable for both cases (HighRe and LowRe), OpenFOAMs implementation also is. Greetings Felix |
||
July 11, 2012, 10:44 |
|
#17 |
Senior Member
Travis Carrigan
Join Date: Jul 2010
Location: Arlington, TX
Posts: 161
Rep Power: 16 |
Maybe it depends on which version of OpenFOAM you're running, Extend or OpenCFD. The break down of k-omega SST for high resolution grids was logged as a bug a while back because users assumed the implementation of the model was similar to Menter's formulation...which it was not. In that case, the model would be applicable, like you said, for both high-Re and low-Re flows without the need for wall functions.
Here is Henry's reply to the bug that was logged against 1.7.x: http://www.openfoam.org/mantisbt/view.php?id=179#c351 If this has been addressed in 2.1, I'd like to know. |
|
July 11, 2012, 10:59 |
|
#18 |
Senior Member
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18 |
Hello Travis,
please refer to this post by the bug report author: http://www.cfd-online.com/Forums/ope...tml#post369671 As you can see, this issue is not directly connected with the SST-model implementation. It's more likely caused by the general numerics of OpenFOAM and it's sensitivity to smooth meshes. So yes, you are able to get accurate results on LowRe-meshes with the SST model, but you have to ensure your grid is smooth enough (this improves the stability and accuracy anyway). I say it again: this issue is caused by grid irregularities not the SST model implementation itself. Hope I could clarify this! Greetings Felix |
|
October 16, 2012, 08:46 |
|
#19 | |
Member
Join Date: Mar 2009
Posts: 90
Rep Power: 17 |
Quote:
|
||
February 2, 2014, 18:51 |
|
#20 |
Member
Ye Zhang
Join Date: Dec 2009
Location: Delft,Netherland
Posts: 92
Rep Power: 17 |
Hi Guillaume
I have the same problem, did you solve this problem? Best regards, Ye |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[GAMBIT] 3D boundary layer and meshing problem in GAMBIT 2.4.6 | prashanthreddyh | ANSYS Meshing & Geometry | 1 | December 20, 2011 01:35 |
[snappyHexMesh] snappy hangs while layer generation | bastil | OpenFOAM Meshing & Mesh Conversion | 3 | October 29, 2010 08:19 |
problem with boundary layer | Bharath | Main CFD Forum | 1 | July 11, 2008 10:06 |
GAMBIT problem with 3D Boundary Layer when meshing | Anthony Haroutunian | FLUENT | 2 | March 26, 2008 03:02 |
problem in convergence with the prism layer genera | rakesh | CFX | 3 | September 18, 2006 11:13 |