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

Near wall treatment in k-omega SST

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

Like Tree11Likes

Reply
 
LinkBack Thread Tools Display Modes
Old   April 4, 2011, 10:57
Default Near wall treatment in k-omega SST
  #1
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 8
Arnoldinho is on a distinguished road
Hi all,

the last days I tried to get a bit deeper in the general understanding of turbulence modeling, and esp. in Menter's k-omega SST model. Still a few questions remain, esp. concerning the implementation of the model in OF-1.7.x, so hopefully someone can help me a bit out.

Question in short form: Is the current k-omega SST implementation (in OF-1.7.x) capable of automatically switching between low-Re and high-Re model?

Question in long form:
If I understood it right, the k-omega SST model is a combination of the k-omega and k-epsilon model plus a shear stress transport model, using blending functions to choose the appropriate model depending on the region (boundary layer or free stream). So the basic implementation from [1] is a high-Re model. Low-Re models don't use any wall functions as they are grid-resolved. Some paper say that the viscous sublayer is between 0 < y+ < 5. Others say, that a good solution can only be achieved when y+ < 1, sometimes even < 0.1. So what is 'right' here, how big is the error if I'm in a range of y+ 0.5-8?

I have a (interFoam) model using different grid resolutions (esp. first layer cell heights) in different regions at the walls. Additionally, different flow situations, i.e. different water velocities and also water waves are simulated, which lead to local- and time-varying different y+ and u+ values. Therefore I need some kind of near wall treatment, automatically switching between low-Re and high-Re formulation, depending on the location and flow-situation.
So my question is: Is the current k-omega SST implementation (in OF-1.7.x) capable of automatically switching between low-Re and high-Re model? If this is hopefully true, do I then select omegaWallFunction?

Looking at the source code of omegaWallFunction and comparing it to [2] I found that the blending function for y+ is a bit different. E.g. in the implementation,
Code:
scalar omegaLog = sqrt(k[faceCellI])/(Cmu25*kappa_*y[faceI])
and
Code:
Cmu25 = pow(Cmu_, 0.25)
is used, whereas the paper says
Code:
omegaLog = 1/0.3*kappa *ut/y
So the difference lies in the Cmu25 and using k instead of the velocity profile ut near the wall (computed out of uVis and uLog).

In the wall functions implementation, a wall roughness can be specified. Does this still work if switched to a low-Re model?

I already ran some test cases using omegaWallFuntions, nutRoughWallFunction, kqRWallFunction and a y+ between 0.5-8. Nevertheless, the results seemed to be quite grid-depending...


Best, Arne

[1] Menter: Two-Equation Eddy-Viscosity Turbulence Models for Engineering Applications, 1994
[2] Menter: The SST Turbulence Model with Improved Wall Treatment for Heat Transfer Predictions in Gas Turbines, 2003

Last edited by Arnoldinho; April 5, 2011 at 03:05.
Arnoldinho is offline   Reply With Quote

Old   May 2, 2011, 10:07
Default
  #2
Member
 
Sylvain Aguinaga
Join Date: Feb 2010
Posts: 32
Rep Power: 7
Sylvain is on a distinguished road
Hello Arne,

Nice thread you started here. I'm also interested in wall functions those days, and I took a closer loop to what it is actually implemented.

Regarding the omegawallfunction first. What disturbs me is that the omega which is actually computed at the wall cell is a combination of omega_vis and omega_log.

Omega=sqrt(omega_vis^2+omega_log^2).

If you make a parallel with the epsilonwallfunction, with epsilon=c_mu*k*omega, you find that what is prescribed for epsilon is equivalent to what is prescribed for omega_log. I'm not yet very familiar with the komega-SST model, so maybe this combination of the viscous value and the log value is linked to equation of omega, I donít know. What I would have except is that for y+<y_lam the code uses omega_vis, and for y+>y_lam, the code uses omega_log. It's what you call switching from low to high Reynolds. I'm simulating a train with a yaw angle. For low yaw angle the forces calculated match well the values found in wind tunnel, for higher yaw angles the forces are far too low. I suspect the wall functions. But again I don't know.

Regarding the roughness, as far as I have understood, it is implemented via nut. You calculate a new value of nut=nu(y+*kappa/(ln(E_star+)-1). E_star is the only parameter modified by the roughness. Then I suppose that nut is used to calculate the value of the velocity in the wall cell using the wall shear stress tau_w/rho=u_star^2=(nu_t+nu)*du/dy
which yields to
u(y)=u_star*log(y+*E_star)
And I think that is all for the roughness, means there is no direct connection I'm aware of between the values of omega (or epsilon) in the wall cell and the surface roughness.
I'm also trying to compute atmospheric boundary layers, I couldn't' succeed in maintain the theorical profile in OpenFOAM adjusting the correct parameters of Ks and Cs, Fluent does. I think I'm missed something, but I don't know what.
joy2000 likes this.
Sylvain is offline   Reply With Quote

Old   May 5, 2011, 06:25
Default
  #3
Member
 
Sylvain Aguinaga
Join Date: Feb 2010
Posts: 32
Rep Power: 7
Sylvain is on a distinguished road
Hi Arne,

I found that post this morning, might be helpfull.


http://www.openfoam.com/mantisbt/view.php?id=179

I quote Henry

Quote:

Note that the k-omega SST model we provide is in high-Re form and does not include the wall-damping terms often included in the k-omega model for near-wall and low-Re flow. However, you can still use the k-omega SST model for low-Re and near wall flow for a range of resolutions if you use a continuous wall-function (which in OpenFOAM-1.7.x is named nutSpalartAllmarasWallFunction for historical reasons) and this should be used as the wall BC in nut. The BC of k for the continuous wall-function should be kqRWallFunction.

If these changes do not help it may be worth investigating the viscosity averaging in omegaWallFunctionFvPatchScalarField:

scalar omegaVis = 6.0*nuw[faceI]/(beta1_*sqr(y[faceI]));
scalar omegaLog = sqrt(k[faceCellI])/(Cmu25*kappa_*y[faceI]);
omega[faceCellI] = sqrt(sqr(omegaVis) + sqr(omegaLog));

we have found cases for which this causes a sudden change in the viscosity near the wall if the mesh is sufficiently fine and that just using the logarithmic part give more continuous behavior:

omega[faceCellI] = omegaLog;
Sylvain is offline   Reply With Quote

Old   May 5, 2011, 11:45
Default
  #4
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 8
Arnoldinho is on a distinguished road
Hi Sylvain,

thanks for giving me a feedback to my topic and sorry for not having answered yet. I'm quite busy with other things in OF right now, regarding implementing new things (but still at the very beginning...)

I already got the information from somebody else and other threads that using komegaSST works for high- and low-Re grids (mixture) when using it together with nutSpalartAllmarasWallFunction and omegaWallFunction. If Henry says so as well, then it well be right...

Concerning omega, this is what I got from another member (thanks for that!):
"The menters version uses y+ for wall distance, but OF uses y* (compare with http://my.fit.edu/itresources/manual...ug/node512.htm). This seems to be standard procedure in OpenFOAM, for example if you use yPlusRAS you don't get y+ but y*".

I will have a detailed look on this again and check it with some simple test when there is some more time...

Greetings,
Arne

In the meanwhile, please let me know when you got new insights ;-)
fumiya likes this.
Arnoldinho is offline   Reply With Quote

Old   May 9, 2011, 01:48
Default
  #5
Member
 
Robert Ong
Join Date: Aug 2010
Posts: 45
Rep Power: 6
rob3rt 0ng is on a distinguished road
Hello Arne and Sylvain,

Not sure if this helps but there's a handy utility created by Florian, you may find it here y+ and u+ values with low-Re RANS turbulence models: utility + testcase

On the same note, if I have a fine mesh at y* (or y+) less than 1 everywhere, I can opt not to use wall functions (according to Dr. Weller at post#54 in Compressible kOmegaSST). Am I right?

Thanks for your time and attention.

Regards,
Robert
rob3rt 0ng is offline   Reply With Quote

Old   July 12, 2011, 08:34
Default
  #6
Senior Member
 
Join Date: Apr 2010
Posts: 151
Rep Power: 7
flowris is on a distinguished road
Wall functions should only be used for 30 < y+ < 100-300, which means that the first cell is in the log layer and not in the sublayer. If you want to use kOmega_SST without a wall function, y+ should be around 1.
flowris is offline   Reply With Quote

Old   July 12, 2011, 08:46
Default
  #7
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 8
Arnoldinho is on a distinguished road
Quote:
Wall functions should only be used for 30 < y+ < 100-300
Yes, you are right. Although regarding different sources, you also get different limiting values for the viscous sub-layer (0 < y+ < 1, 5) and the log-layer (30, 70 < y+ < 100, 200, 300). I also remember a thread where OF has been tested as low re model without wall functions: an y+ value < 0.2 lead to 'wrong' results as well. For the buffer layer (e.g. 5 < y+ < 30), a blending is needed.

Arne
1/153 likes this.

Last edited by Arnoldinho; July 12, 2011 at 09:12.
Arnoldinho is offline   Reply With Quote

Old   July 13, 2011, 03:59
Default k-Omega SST low Re considerations
  #8
Senior Member
 
romant's Avatar
 
Roman Thiele
Join Date: Aug 2009
Location: Stockholm, Sweden
Posts: 359
Rep Power: 11
romant is on a distinguished road
hej,

as I have noticed now, the change in the "wall function" as suggested by henry is not to reliable. I found however, that when using k-omega SST in a low Re mode, one should have a very smooth transition of the cell size around the y+ < 200. Then the results become quite reliable.
lakeat, fumiya and blake like this.
__________________
~roman
romant is offline   Reply With Quote

Old   July 13, 2011, 07:53
Default
  #9
Senior Member
 
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 8
Arnoldinho is on a distinguished road
Quote:
Originally Posted by romant View Post
one should have a very smooth transition of the cell size around the y+ < 200
So which transition value do you suggest? Normally the cell growth ratio should be something up to 1.2.
Arnoldinho is offline   Reply With Quote

Old   July 13, 2011, 08:21
Default not checked
  #10
Senior Member
 
romant's Avatar
 
Roman Thiele
Join Date: Aug 2009
Location: Stockholm, Sweden
Posts: 359
Rep Power: 11
romant is on a distinguished road
hej,

i haven't checked at which time the model breaks down, but in the end I used 1.1 to 1.15 as my cell growth ratio.
__________________
~roman
romant is offline   Reply With Quote

Old   July 23, 2013, 11:22
Default Low Re BC for K, Omega and nut
  #11
Senior Member
 
sivakumar selvaraju
Join Date: Mar 2009
Location: Cape Town - South Africa
Posts: 186
Rep Power: 8
sivakumar is on a distinguished road
Send a message via Skype™ to sivakumar
Dear all,
I am trying to simulate fan with low re number turb model,
I have gone through so many post regarding wall treatment, still it is not clear for me.

My yPlus vale is 3 to 6,

I tried for k -->

top0
{
type fixedValue;
value uniform 0;
}

top1
{
type fixedValue;
value uniform 0;
}

For Omega;

top0
{
type omegaWallFunction;
value uniform 0;
}

top1
{
type omegaWallFunction;
value uniform 0;
}

and for nut;

top0
{
type calculated;
value uniform 0;
}

top1
{
type calculated;
value uniform 0;
}

my questions are;

is it right setting? for low re number turb model.

when I try this settings, it is reporting the following error

Create time

Create mesh for time = 0

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kOmegaSST
bounding k, min: 0 max: 0 average: 0
bounding omega, min: 0 max: 0 average: 0

#0 Foam::error:rintStack(Foam::Ostream&) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#4 void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#5 at kOmegaSST.C:0
#6 Foam::incompressible::RASModels::kOmegaSST::F2() const in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#7 Foam::incompressible::RASModels::kOmegaSST::kOmega SST(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&, Foam::word const&) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#8 Foam::incompressible::RASModel::adddictionaryConst ructorToTable<Foam::incompressible::RASModels::kOm egaSST>::New(Foam::GeometricField<Foam::Vector<dou ble>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#9 Foam::incompressible::RASModel::New(Foam::Geometri cField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::transportModel&, Foam::word const&) in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libincompressibleRASModels.so"
#10
in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/MRFSimpleFoam"
#11 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#12
in "/home/cerecam/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/MRFSimpleFoam"
Floating point exception (core dumped)




please give me some idea what is wrong,

Tanks for your time and help,
Sivakumar
sivakumar is offline   Reply With Quote

Old   July 26, 2013, 04:49
Default
  #12
New Member
 
Stefan Gaerling
Join Date: Dec 2012
Posts: 22
Rep Power: 4
gillimaniac is on a distinguished road
You've got a floating point exception. Mostly it's caused by some division by 0.
Try setting your k-value to 1e-11 instead to zero.
gillimaniac is offline   Reply With Quote

Old   November 7, 2014, 09:33
Red face OMEGA on the wall surface in SST model
  #13
Member
 
Ali.E
Join Date: Sep 2010
Location: Lisboa
Posts: 78
Rep Power: 6
behest is on a distinguished road
Dear all,
I am working with Fluent and I have simulated a flat plate and the mesh is enogh fine (Y+<=1). The turbulence model that I use is k-w SST and I uncheck Low-Reynolds-Number in the turbulence panel. I export the omega value on the plate surface and now I am trying to find what equation fluent uses for it. It would be appriciated if you help me about the equation.

I used this equation but the answer was not the same with Fluent.
OMG=sqrt(OMG_vis^2+OMG_log^2)
OMG_vis=6*ro*(U_tau^2)/(0.075*Mu*Yplus^2)
OMG_log=ro*(U_tau^2)/(0.3*k*Mu*Yplus)

ro=dinsity
U_tau=friction velosity
Mu=viscosity
k=0.41
behest is offline   Reply With Quote

Old   November 10, 2014, 04:59
Default
  #14
Senior Member
 
RodriguezFatz's Avatar
 
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,097
Rep Power: 16
RodriguezFatz will become famous soon enough
Ali, this may be just a matter of cell and face value. Do you actually know, whether Fluent shows you the value of the wall or the value of the near wall cell?
Anyway, I think Fluent boundary condition of omega is not a boundary condition but setting the frist cell value to a fixed value. So there is actually no wall value of omega and if you plot the wall values this is some extrapolation of the (fixed) first cell value. I may be wrong with this.
__________________
The skeleton ran out of shampoo in the shower.
RodriguezFatz is offline   Reply With Quote

Old   November 12, 2014, 08:40
Unhappy
  #15
Member
 
Ali.E
Join Date: Sep 2010
Location: Lisboa
Posts: 78
Rep Power: 6
behest is on a distinguished road
Thank you very much for replying.
To be honest, Fluent gives us value of the wall. My case study is a 2D flat plate and all values are the face one. To get the OMGa value of the wall, I did it in Display/plot/xy plot and then I selected Specific Dissipation Rate (Omega) and chose plate in the Surfaces. The Fluent gives us the Omega value of the plate surface. I checked the value of the cell adjecent (next cell after the wall boundary) and that value was not the same that I obtained with mentioned equation.
In Fluent, we need a boundary condition for Omega near the wall to solve turbulence equation. Actually, Omega value of the wall surface is obtained by a formule (my problem is to find this formule in SST).
Moreover, I do not think that the Omega value of the wall is extrapolation of the first cell value because Omega value has an increasing behaviour when closing to the wall and finally, it is logically accepted that dissipation should be sharply increased on the wall surface.


Quote:
Originally Posted by RodriguezFatz View Post
Ali, this may be just a matter of cell and face value. Do you actually know, whether Fluent shows you the value of the wall or the value of the near wall cell?
Anyway, I think Fluent boundary condition of omega is not a boundary condition but setting the frist cell value to a fixed value. So there is actually no wall value of omega and if you plot the wall values this is some extrapolation of the (fixed) first cell value. I may be wrong with this.
behest is offline   Reply With Quote

Old   November 12, 2014, 08:58
Default
  #16
Senior Member
 
RodriguezFatz's Avatar
 
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,097
Rep Power: 16
RodriguezFatz will become famous soon enough
Let's assume you y+<1, then you can just calculate the OMG_vis value you mentioned above. OMG_log << OMG_vis.
What value do you get for OMG_vis and what does Fluent show you in the plot?
__________________
The skeleton ran out of shampoo in the shower.
RodriguezFatz is offline   Reply With Quote

Old   November 12, 2014, 09:17
Default
  #17
Member
 
Ali.E
Join Date: Sep 2010
Location: Lisboa
Posts: 78
Rep Power: 6
behest is on a distinguished road
When y+<1, then OMG_vis should give us the omega value of the wall. The problem is that the value of calculating the OMG_vis is not match to the Fluent one. I attach the Omega value of the wall, obtained by Fluent and equation OMG_vis. You can find that two results are not the same. It seems that Fluent uses different equation or another damping function or ....

Quote:
Originally Posted by RodriguezFatz View Post
Let's assume you y+<1, then you can just calculate the OMG_vis value you mentioned above. OMG_log << OMG_vis.
What value do you get for OMG_vis and what does Fluent show you in the plot?
Attached Images
File Type: jpg OMG on wall surface,compare Fluent with eq1.jpg (30.8 KB, 73 views)
Attached Files
File Type: txt OMG_vis(obtain by Fluent).txt (7.6 KB, 5 views)
File Type: txt OMG_vis(obtain by the equation).txt (7.4 KB, 1 views)
behest is offline   Reply With Quote

Old   November 12, 2014, 09:19
Default
  #18
Senior Member
 
RodriguezFatz's Avatar
 
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,097
Rep Power: 16
RodriguezFatz will become famous soon enough
What is "x"?
__________________
The skeleton ran out of shampoo in the shower.
RodriguezFatz is offline   Reply With Quote

Old   November 12, 2014, 09:23
Default
  #19
Member
 
Ali.E
Join Date: Sep 2010
Location: Lisboa
Posts: 78
Rep Power: 6
behest is on a distinguished road
"x" is a direction along the plate, x=0 is the leading edge of the plate and x=1.7 is the end of it.

Quote:
Originally Posted by RodriguezFatz View Post
What is "x"?
behest is offline   Reply With Quote

Old   November 12, 2014, 09:24
Default
  #20
Senior Member
 
RodriguezFatz's Avatar
 
Philipp
Join Date: Jun 2011
Location: Germany
Posts: 1,097
Rep Power: 16
RodriguezFatz will become famous soon enough
So your y+ changes along the plate?
__________________
The skeleton ran out of shampoo in the shower.
RodriguezFatz is offline   Reply With Quote

Reply

Tags
high-re, interfoam, k-omega sst, low-re, wall functions

Thread Tools
Display Modes

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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
k-epsilon, enhanced wall treatment mmmiichaalll FLUENT 4 March 30, 2010 05:10
Problem with the concept of automatic wall treatment ndabir CFX 1 March 10, 2010 07:21
enhanced wall treatment Hugo FLUENT 0 January 11, 2007 10:52
enhanced wall treatment saeed FLUENT 5 September 6, 2006 11:38
SST model with rough wall? David CFX 4 November 30, 2005 12:22


All times are GMT -4. The time now is 23:34.