CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

k-omega SST for wall-resolved TBL, problem with log layer.

Register Blogs Community New Posts Updated Threads Search

Like Tree8Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 13, 2012, 07:51
Default k-omega SST for wall-resolved TBL, problem with log layer.
  #1
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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.
Attached Images
File Type: jpg Gui_a_rate_sa_simu.jpg (22.0 KB, 957 views)
mevoili is offline   Reply With Quote

Old   March 13, 2012, 08:07
Default
  #2
New Member
 
Gilles De Neyer
Join Date: Nov 2011
Posts: 18
Rep Power: 14
gdeneyer is on a distinguished road
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 ?
gdeneyer is offline   Reply With Quote

Old   March 13, 2012, 08:16
Default
  #3
Senior Member
 
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18
FelixL is on a distinguished road
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
FelixL is offline   Reply With Quote

Old   March 13, 2012, 12:27
Default
  #4
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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
mevoili is offline   Reply With Quote

Old   March 13, 2012, 12:33
Default
  #5
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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;      
}


// ************************************************************************* //
fvSchemes
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               ;
}


// ************************************************************************* //
mevoili is offline   Reply With Quote

Old   March 13, 2012, 12:44
Default
  #6
Senior Member
 
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18
FelixL is on a distinguished road
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.
FelixL is offline   Reply With Quote

Old   March 13, 2012, 13:01
Default
  #7
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
Thanks for your advices, Felix, I will try to do so as soon as I can, and I will comment my results here.
mevoili is offline   Reply With Quote

Old   March 15, 2012, 05:45
Default
  #8
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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 ?
Attached Images
File Type: png uvsy.png (3.6 KB, 622 views)
File Type: png nuvsy.png (3.2 KB, 445 views)
mevoili is offline   Reply With Quote

Old   March 15, 2012, 07:23
Default
  #9
Senior Member
 
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18
FelixL is on a distinguished road
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.
FelixL is offline   Reply With Quote

Old   March 15, 2012, 08:19
Default
  #10
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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
mevoili is offline   Reply With Quote

Old   March 15, 2012, 08:57
Default
  #11
Senior Member
 
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18
FelixL is on a distinguished road
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.
FelixL is offline   Reply With Quote

Old   March 15, 2012, 09:00
Default
  #12
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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...
mevoili is offline   Reply With Quote

Old   June 29, 2012, 08:22
Default
  #13
Senior Member
 
Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 15
Anne Lincke is on a distinguished road
Hey,
why don't you use omegaWallFunction for omega at the wall?

Regards
Anne
Anne Lincke is offline   Reply With Quote

Old   July 10, 2012, 18:08
Default
  #14
New Member
 
Guillaume Terlinden
Join Date: Nov 2011
Posts: 11
Rep Power: 14
mevoili is on a distinguished road
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
mevoili is offline   Reply With Quote

Old   July 10, 2012, 21:31
Default
  #15
Senior Member
 
Travis Carrigan
Join Date: Jul 2010
Location: Arlington, TX
Posts: 161
Rep Power: 15
tcarrigan is on a distinguished road
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.
tcarrigan is offline   Reply With Quote

Old   July 11, 2012, 02:58
Default
  #16
Senior Member
 
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18
FelixL is on a distinguished road
Quote:
Originally Posted by mevoili View Post
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
Hello Guillaume,


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
Blanco, kiddmax, JR22 and 5 others like this.
FelixL is offline   Reply With Quote

Old   July 11, 2012, 09:44
Default
  #17
Senior Member
 
Travis Carrigan
Join Date: Jul 2010
Location: Arlington, TX
Posts: 161
Rep Power: 15
tcarrigan is on a distinguished road
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.
tcarrigan is offline   Reply With Quote

Old   July 11, 2012, 09:59
Default
  #18
Senior Member
 
Felix L.
Join Date: Feb 2010
Location: Hamburg
Posts: 165
Rep Power: 18
FelixL is on a distinguished road
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
FelixL is offline   Reply With Quote

Old   October 16, 2012, 07:46
Default
  #19
Member
 
Join Date: Mar 2009
Posts: 90
Rep Power: 17
aerogt3 is on a distinguished road
Quote:
Originally Posted by tcarrigan View Post
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.
Quote:
Originally Posted by FelixL View Post
@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 am a bit lost here with what looks like two conflicting suggestions. If I have a y+1 mesh, and I want to fully resolve the BL (no wall fcns), should I set k = 1e-XX and nut = 1e-XX, or k = kwRWallFunction, with nut set to nutUSpaldingWallFunction?
aerogt3 is offline   Reply With Quote

Old   February 2, 2014, 17:51
Default
  #20
Member
 
Ye Zhang
Join Date: Dec 2009
Location: Delft,Netherland
Posts: 92
Rep Power: 16
kiddmax is on a distinguished road
Hi Guillaume

I have the same problem, did you solve this problem?

Best regards,
Ye
kiddmax is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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 00:35
[snappyHexMesh] snappy hangs while layer generation bastil OpenFOAM Meshing & Mesh Conversion 3 October 29, 2010 07:19
problem with boundary layer Bharath Main CFD Forum 1 July 11, 2008 09:06
GAMBIT problem with 3D Boundary Layer when meshing Anthony Haroutunian FLUENT 2 March 26, 2008 02:02
problem in convergence with the prism layer genera rakesh CFX 3 September 18, 2006 10:13


All times are GMT -4. The time now is 13:31.