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

Why Menter's SST model low-Re issue has not been seriously investigated?

Register Blogs Community New Posts Updated Threads Search

Like Tree67Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 19, 2012, 09:12
Question Why Menter's SST model low-Re issue has not been seriously investigated?
  #1
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Hi all,
as I'm seemingly not the only one still having trouble with Menter's model run in low-Re mode, I think it can be a good idea to restart a tread about this matter. A good starting point can be the following tread:

http://www.cfd-online.com/Forums/ope...tion-mesh.html

To resume all the facts, after a major fix in nut's definition inside the model, its OpenFOAM implementation has started to give in many cases serious stability and convergence issues when an attempt is made to solve flows with y+<1. The problem has been stressed as a bug on the official OpenCFD bug tracker, but It was very soon closed with the following (to me totally disappointing) explanations:

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

quote from henry:

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;

Here there are my questions:

1) what does it mean "wall-damping terms often included in the k-omega model"? Any k-omega model, starting from Wilcox's original one, should be appliable up to the wall WITHOUT any additional damping terms (and, indeed, if you try to use OpenFOAM's k-omega standard model with low-Re meshes, provided you assign a sufficiently high fixed value for omega at the wall, you get reasonable results!)

2) the official suggestions for "resolve" the problem can be resumed as: I) use kqrWallFunction for k; II) use nutSpalartAllmarasWallFunction (or it's equivalent in newer releases) for nut; III) use the logarithmic (?????) near-wall omega value. Well, probably it's me, but does this mean that the official suggestions are "forget to recover the original k-omega near wall behavior if you want some convergence"? Because: I) to use kqrWallFunction for k means not to resolve k with the proper wall value (strictly k=0, numerically k=extremely low value); II) to assign nutSpalartAllmarasWallFunction means to calculate the u_tau (friction velocity) with Spalding's law of the wall, which is strictly valid only in equilibrium zero-pressure gradient boundary layers (thus ignoring k-omega's sensitivity to pressure gradients); III) to assign the logarithmic omega value in an y+= 1 (or less) node means to heavily underestimate the real value in this region of the boundary layer.

3) why haven't been made (or been officially commented by the developers) some comparisons with Menter's original implmentation (which, for instance, uses the vorticity magnitude instead of the rate of strain invariant in the nut limiter definition) or any other serious investigation on this matter?

4) why after this discussion has been made on the 1.7.x release we are at the 2.1.0 one and still no modification has been introduced in SST's model implementation?

Any comments, especially from some of the code's developers, will be really appreciated.

Best regards

V.
val46, excolade, Tauseef and 9 others like this.
vkrastev is offline   Reply With Quote

Old   February 28, 2012, 07:56
Default
  #2
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Ok, I've done my own tests and this is what I've found:

-test case: external aerodynamics, incompressible, steady-state (simpleFoam solver)
-mesh: about 7 milions of elements, with prismatic layers near the solid surfaces and tetras elsewhere
-schemes: limited 0.5 on laplacian, Gamma(V) or linearUpwind(V) on the convection terms

Well, the good news are that the SST model CAN actually be employed to resolve boundary layers with y+<1 (as it is supposed to), both with the omegaWallFunction BC as well as with directly imposing Menter's BC for the viscous sublayer. The only real problem is that it seems to be very sensitive to the mesh quality and to the initial conditions, so in steady-state solution approaches it tends to easily diverge in the very early stage of the iteration procedure. My remedy to this was simply to use as initial pressure and velocity conditions the converged fields from a simulation with another turbulence model (but probably initializing the p and U fields with potentialFoam would also have been beneficial, maybe lowering a bit the URF values for p, k and omega).

Hope this will help other SST model users

V.
kiddmax, excolade, Tauseef and 7 others like this.
vkrastev is offline   Reply With Quote

Old   April 11, 2012, 20:38
Thumbs up
  #3
New Member
 
Felipe
Join Date: Apr 2010
Posts: 13
Rep Power: 16
fippo_dk is on a distinguished road
Hi V

Could you put your fvSchemes, fvSolution, k, omega and nut files used for both cases?

Which case did you run?

Best
Felipe
fippo_dk is offline   Reply With Quote

Old   April 12, 2012, 12:57
Default
  #4
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
The case is a quite standard bluff-body benchmark (the Ahmed model). You can find the fvSchemes and fvSolution which worked fine for me in the attachements. About the BC's and initial conditions, it depends of the case but as I stated before for non-trivial geometries (and especially with unstructured grids) I suggest you to start from reasonable velocity and pressure fields (hopefully obtained with other turbulence models, for instance the Spalart-Allmaras one). Concerning k, omega and nut, the wall BC's are as follows:

Using wall functions for omega:

k
type fixedValue;
value uniform 0.000000000001; (or some other very small value)

omega
type omegaWallFunction;
value uniform (usually the same as the initial internalField value, but it should have no influence at all as it is only an initialization value);

nut
type calculated;
value uniform 0;

Not using wall functions for omega (k and nut same as above):

omega
type fixedValue;
value uniform (calculated with Menter's recommended wall BC, i. e. omegawall=60*nu/(beta*y^2), with nu=kinematic viscosity at the wall, beta=0.075 and y=normal distance between the first fluid node and the nearest wall);

Hope this can help you for your calculations

V.
Attached Files
File Type: gz system.tar.gz (871 Bytes, 428 views)
kiddmax, excolade, bennn and 19 others like this.

Last edited by vkrastev; April 12, 2012 at 13:08. Reason: Attachement added
vkrastev is offline   Reply With Quote

Old   April 12, 2012, 17:36
Default
  #5
New Member
 
Felipe
Join Date: Apr 2010
Posts: 13
Rep Power: 16
fippo_dk is on a distinguished road
Hi V.

thanks for your answer. I will give it a check with a simulation with a blunt airfoil to see if my results improve or not.

Do you think you could upload a mesh or put it in dropbox?

What about the convergence of k and omega? How many iterations do you run in order to get converged results?

Best

Felipe
fippo_dk is offline   Reply With Quote

Old   April 13, 2012, 05:57
Default
  #6
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Quote:
Originally Posted by fippo_dk View Post
Hi V.

thanks for your answer. I will give it a check with a simulation with a blunt airfoil to see if my results improve or not.

Do you think you could upload a mesh or put it in dropbox?

What about the convergence of k and omega? How many iterations do you run in order to get converged results?

Best

Felipe
The mesh in question is far too big to upload it, and sorry but I don't use dropbox. About the convergence, starting from good p and U field guesses for me it took about 3000 iterations to get fully convergent results (residuals for k and omega usually fall down quite fast to very small values, so I suggest you to monitor also some of the integrated aerodynamic parameters, such as Cd, Cl, etc.), but of course this is not a universal value as it strongly depends not only on the numerical setup but also on the physics of your problem (think about airfoils beyond stall condition, when the flow is unstable and unsteady in nature).

Good luck for your case

V.
vkrastev is offline   Reply With Quote

Old   April 13, 2012, 06:18
Default
  #7
New Member
 
Felipe
Join Date: Apr 2010
Posts: 13
Rep Power: 16
fippo_dk is on a distinguished road
V would you mind taking a look at my mesh? Thing is I am no sure about the quality but it gives good results with other CFD code, if it is fine with you send me a private message and I will send it too you.


Best


Felipe
fippo_dk is offline   Reply With Quote

Old   July 7, 2013, 09:15
Default adding the damping functions to kOmegaSST
  #8
Senior Member
 
Join Date: Mar 2010
Posts: 181
Rep Power: 17
Jonathan is on a distinguished road
hi V,

Thanks for starting this thread.

Quote:
Originally Posted by vkrastev View Post
Hi all,
as I'm seemingly not the only one still having trouble with Menter's model run in low-Re mode, I think it can be a good idea to restart a tread about this matter. A good starting point can be the following tread:

http://www.cfd-online.com/Forums/ope...tion-mesh.html

To resume all the facts, after a major fix in nut's definition inside the model, its OpenFOAM implementation has started to give in many cases serious stability and convergence issues when an attempt is made to solve flows with y+<1. The problem has been stressed as a bug on the official OpenCFD bug tracker, but It was very soon closed with the following (to me totally disappointing) explanations:

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

quote from henry:

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;

Here there are my questions:

1) what does it mean "wall-damping terms often included in the k-omega model"? Any k-omega model, starting from Wilcox's original one, should be appliable up to the wall WITHOUT any additional damping terms (and, indeed, if you try to use OpenFOAM's k-omega standard model with low-Re meshes, provided you assign a sufficiently high fixed value for omega at the wall, you get reasonable results!)

2) the official suggestions for "resolve" the problem can be resumed as: I) use kqrWallFunction for k; II) use nutSpalartAllmarasWallFunction (or it's equivalent in newer releases) for nut; III) use the logarithmic (?????) near-wall omega value. Well, probably it's me, but does this mean that the official suggestions are "forget to recover the original k-omega near wall behavior if you want some convergence"? Because: I) to use kqrWallFunction for k means not to resolve k with the proper wall value (strictly k=0, numerically k=extremely low value); II) to assign nutSpalartAllmarasWallFunction means to calculate the u_tau (friction velocity) with Spalding's law of the wall, which is strictly valid only in equilibrium zero-pressure gradient boundary layers (thus ignoring k-omega's sensitivity to pressure gradients); III) to assign the logarithmic omega value in an y+= 1 (or less) node means to heavily underestimate the real value in this region of the boundary layer.

3) why haven't been made (or been officially commented by the developers) some comparisons with Menter's original implmentation (which, for instance, uses the vorticity magnitude instead of the rate of strain invariant in the nut limiter definition) or any other serious investigation on this matter?

4) why after this discussion has been made on the 1.7.x release we are at the 2.1.0 one and still no modification has been introduced in SST's model implementation?

Any comments, especially from some of the code's developers, will be really appreciated.

Best regards

V.
I have been using the kOmegaSST model in 2.1.1 with the 'fix' of using the continuous wall function (nutUSpaldingWallFunction) but have decided to implement the full low-Re model with damping functions for some work i am doing.

I am replying to your thread because i thought you might find this interesting, and I thought it might be beneficial to collaborate to some degree if you were still interested.

Anyway, i have found a some of the literature i think is needed, and it doesnt look too difficult.

Anyway, let me know if you are interested,

best regards
Jonathan

EDIT: PS - i dont have time right now but i will answer some of your questions above later when i have more time ... Jon
Jonathan is offline   Reply With Quote

Old   July 8, 2013, 06:08
Default
  #9
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Quote:
Originally Posted by Jonathan View Post
hi V,

Thanks for starting this thread.



I have been using the kOmegaSST model in 2.1.1 with the 'fix' of using the continuous wall function (nutUSpaldingWallFunction) but have decided to implement the full low-Re model with damping functions for some work i am doing.

I am replying to your thread because i thought you might find this interesting, and I thought it might be beneficial to collaborate to some degree if you were still interested.

Anyway, i have found a some of the literature i think is needed, and it doesnt look too difficult.

Anyway, let me know if you are interested,

best regards
Jonathan

EDIT: PS - i dont have time right now but i will answer some of your questions above later when i have more time ... Jon
Hi Jonathan,

at the moment I don't have time for doing some testing/research work on the SST model, but I'll be happy to share ideas and/or opinions inside this tread. I'll wait for your answers to my original questions, but before that let me add some more details: since my last post, I have discovered and, to some small extent, tested the low-Re version of the Wilcox k-omega model, which has some viscous damping functions implemented in order to recover some kind of transitional behaviour in boundary layers. I don't know if these are the functions you were talking about, but, in general, I have found very little benefits in considering them: the transitional behaviour is indeed recovered, but it happens generally too early and it is highly dependent on inlet/freestream conditions (those findings are more or less confirmed in the original Wilcox reference about this low-Re implementation).

Regards

V.
vkrastev is offline   Reply With Quote

Old   July 8, 2013, 08:03
Default hi
  #10
Senior Member
 
Join Date: Mar 2010
Posts: 181
Rep Power: 17
Jonathan is on a distinguished road
hi V,

no problem regarding time - i have the time so am happy to do it - i just thought you might be interested etc as you started the above thread and that it might be useful to have the 'full' low Re k-omega SST model floating around the community if anyone wanted to use it ...

Quote:
quote from henry:

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.
1) So i did not understand this initially, since as you say, all omega models should integrate to the wall, but the issue is that this does not mean the model is in fact a 'low Re' model - it just means you can integrate / solve to the wall. There are additional damping terms which are added to the production of k, \omega and nu_{t} equations which model the damping out of turbulence adjacent to the walls. And they are additional to the blending functions implicit in the k-omegaSST model to transform between k-epsilon and k-omega.

Yes, I am pretty sure they are the same damping functions (for Menter k-omegaSST) as the ones you are talking about (revised Wilcox k-omega). Fluent uses the same DF's in both k-omega implementations. They are not hard to add / code up.

Quote:
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;
2) This issue i hope will disappear with the added damping above. I have not investigated it thoroughly yet.

Quote:
what does it mean "wall-damping terms often included in the k-omega model"? Any k-omega model, starting from Wilcox's original one, should be appliable up to the wall WITHOUT any additional damping terms (and, indeed, if you try to use OpenFOAM's k-omega standard model with low-Re meshes, provided you assign a sufficiently high fixed value for omega at the wall, you get reasonable results!)
3) as per above

Quote:
the official suggestions for "resolve" the problem can be resumed as: I) use kqrWallFunction for k; II) use nutSpalartAllmarasWallFunction (or it's equivalent in newer releases) for nut; III) use the logarithmic (?????) near-wall omega value. Well, probably it's me, but does this mean that the official suggestions are "forget to recover the original k-omega near wall behavior if you want some convergence"? Because: I) to use kqrWallFunction for k means not to resolve k with the proper wall value (strictly k=0, numerically k=extremely low value); II) to assign nutSpalartAllmarasWallFunction means to calculate the u_tau (friction velocity) with Spalding's law of the wall, which is strictly valid only in equilibrium zero-pressure gradient boundary layers (thus ignoring k-omega's sensitivity to pressure gradients); III) to assign the logarithmic omega value in an y+= 1 (or less) node means to heavily underestimate the real value in this region of the boundary layer.
4) Using nutUSpaldingWallFunction or another 'continuous' WF simply also a nu_{t} to be calculated 'artificially' all the way from the wall through the buffer layer into the log region using a wall law to 'make' the hi-Re version of the SST model 'look' or 'work' as a low Re model. I dont think this is the best way to go, since low-Re models have been developed which should allow the damped k-omega equations to be used natively, and nu_{t} to be calculated directly from the k and omega values calculated all the way to the walls without fudging them using a wall function.

if we implement the proper low Re model, we should be able to use 'proper' low Re turbulence model BC's (i.e. with a mesh from y+ = ~1) including:

1) k=0 (or very small no. at wall)
2) omega = Menter's BC or omegaWallFunction (which is actually the correct asymptotic BC for omega)
3) nut = lowReWallFunction (sets nu_t =0 at wall so it can be calculated directly from k / omega through the full BL). ALso also access to y+ calc.

and then we can use the official OF kOmegaSST implementation as it should be (and as is written) - as a hi Re model (i.e. with a mesh from y+ > 30) with:

1) k = kqRWallFunction (or zeroGradient basically)
2) omega = omegaWallFunction
3) nut = nutkWallFunction / nutUWallFunction etc

Quote:
why after this discussion has been made on the 1.7.x release we are at the 2.1.0 one and still no modification has been introduced in SST's model implementation?
5) - No idea - as Henry says, its pretty simple to add the damping functions so i dont know exactly why they just didnt do it - but i guess there are many other part of OF which have been worked on and this wasnt a priority!

Quote:
Ok, I've done my own tests and this is what I've found:

-test case: external aerodynamics, incompressible, steady-state (simpleFoam solver)
-mesh: about 7 milions of elements, with prismatic layers near the solid surfaces and tetras elsewhere
-schemes: limited 0.5 on laplacian, Gamma(V) or linearUpwind(V) on the convection terms

Well, the good news are that the SST model CAN actually be employed to resolve boundary layers with y+<1 (as it is supposed to), both with the omegaWallFunction BC as well as with directly imposing Menter's BC for the viscous sublayer. The only real problem is that it seems to be very sensitive to the mesh quality and to the initial conditions, so in steady-state solution approaches it tends to easily diverge in the very early stage of the iteration procedure. My remedy to this was simply to use as initial pressure and velocity conditions the converged fields from a simulation with another turbulence model (but probably initializing the p and U fields with potentialFoam would also have been beneficial, maybe lowering a bit the URF values for p, k and omega).
6) Yes, I have been using SST with the OF 'fix' (nutUSpaldingWallFunction) and you can see what looks like all the right behaviour, but essentially, i dont think this is the best approach - if you want to use the proper Menter low Re k-omega SST formulation, i would rather then code it up and go from there. At least you know what theory you are starting from - i.e. what basis is there to mixing Spalding's Law of the Wall with Menter's model?

I have also found OF very sensitive to initial conditions - so i always use potentialFoam to generate IC's for my simulations.

Quote:
since my last post, I have discovered and, to some small extent, tested the low-Re version of the Wilcox k-omega model, which has some viscous damping functions implemented in order to recover some kind of transitional behaviour in boundary layers. I don't know if these are the functions you were talking about, but, in general, I have found very little benefits in considering them: the transitional behaviour is indeed recovered, but it happens generally too early and it is highly dependent on inlet/freestream conditions (those findings are more or less confirmed in the original Wilcox reference about this low-Re implementation).
7) Are you talking about transition from laminar sublayer to fully turbulent log layer behaviour or conventional transition from a fully laminar BL to turbulent BL.

The damping functions should only affect 'transition' between laminar sublayer to buffer to turbulent sublayer of a fully turbulent boundary layer, not 'classical' BL transistion (for which you need a transistional version of k-omega etc eg. k-kl-omega model etc).

Also, did you test this model in OF - ie has someone already implemented the damping functions on the forum??

Best regards
Jonathan
caio.df and jbjb like this.
Jonathan is offline   Reply With Quote

Old   July 8, 2013, 09:58
Default
  #11
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Quote:
Originally Posted by Jonathan View Post
1) So i did not understand this initially, since as you say, all omega models should integrate to the wall, but the issue is that this does not mean the model is in fact a 'low Re' model - it just means you can integrate / solve to the wall. There are additional damping terms which are added to the production of k, \omega and nu_{t} equations which model the damping out of turbulence adjacent to the walls. And they are additional to the blending functions implicit in the k-omegaSST model to transform between k-epsilon and k-omega.
Jonathan
We have to clarify this point, by distinguishing the local and global low-Reynolds number concept. The wall-issue, i. e. turbulence suppression by viscous (and also non-viscous) damping is a local feature of the flow; the turbulent nature of a fully developed boundary layer, with a viscous sub-layer, a buffer layer and a logarithmic layer is a global feature of the flow. In terms of recovering the correct wall asymptotic behaviour of a fully turbulent boundary layer, which means correctly describing the viscous sub-layer (where the local turbulent Reynolds number is very low), all the k-omega type models are perfectly able to do it on a sufficiently fine mesh (at least 4-5 nodes below y+=5) and provided the correct BC (sufficiently high omega value at the wall), without any damping functions (which is not the case, for instance, for the standard k-epsilon model): it is clearly verified and demonstrated in Wilcox's standard k-omega original paper (1988), it applies to the SST model as well, I have verified it with the standard OF implementation of the k-omega and k-omega SST models, you can also verify it by your own (just run a flat plate BL case, with k_wall=very low value and omega_wall=very high value, for instance 1e-12 and 1e+7 respectively, nut_wall should be "calculated"). Wilcox itself says this is most likely due to mathematical behaviour of the omega differential equation rather than the physical "soundness" of the model as a whole, but the practical consequence is there: it just works.
The "high-Re" terminology used for the standard k-omega and SST k-omega implementations in OF refers (quite ambiguously, and this is exactly my main concern and the reason why I've started the tread) to the fact that without any further modification, these models can only recover a fully turbulent boundary layer flow, without any transition-like behaviour (which should be of practical interest in a GLOBALLY low-Re flow configuration, where the laminar and transitional portions of boundary layers are not negligible). The only ways to obtain this behaviour are: 1) to play heavily with the inlet BCs, but it is a purely numerical "trick", there is no way to control the expected result and it doesn't work every time...;2) to add some functions or sub-models to the baseline formulation: this is what I'm talking about mentioning the damping functions added by Wilcox to the standard k-omega form (see the original reference here: http://shaqfehpc06.stanford.edu/data...ilcox_1994.pdf)
I hope that this clarifies also some of your next points.


Quote:
Originally Posted by Jonathan View Post
6) Yes, I have been using SST with the OF 'fix' (nutUSpaldingWallFunction) and you can see what looks like all the right behaviour, but essentially, i dont think this is the best approach - if you want to use the proper Menter low Re k-omega SST formulation, i would rather then code it up and go from there. At least you know what theory you are starting from - i.e. what basis is there to mixing Spalding's Law of the Wall with Menter's model?
No basis: this is just one of the available ways to bypass the turbulence model in the first of-wall fluid node. Spalding's law is based on a fully developed turbulent BL profile, without pressure gradient effects, so this is what it would be applied in terms of wall shear stress bc. The reason of chosing it and not, for instance, the standard WF approach, is that Spalding's law covers all the y+ range of the BL, including the buffer layer, so at intermediate y+ values (e.g. 10 to 30) it shuld be more accurate (provided that the zero-pressure-gradient hypothesis is sufficiently realistic for the case in question).


Quote:
Originally Posted by Jonathan View Post
The damping functions should only affect 'transition' between laminar sublayer to buffer to turbulent sublayer of a fully turbulent boundary layer, not 'classical' BL transistion (for which you need a transistional version of k-omega etc eg. k-kl-omega model etc).
See above.


Quote:
Originally Posted by Jonathan View Post
Also, did you test this model in OF - ie has someone already implemented the damping functions on the forum??
I did, but results are nothing special (just quite similar to the 1994 reference posted above): I think that there are many more "practical" ways to deal with transition (e.g. the k-kl-omega model already implemented in OF).


Regards

V.
vkrastev is offline   Reply With Quote

Old   July 8, 2013, 11:01
Default hi
  #12
Senior Member
 
Join Date: Mar 2010
Posts: 181
Rep Power: 17
Jonathan is on a distinguished road
hi Vesselin

Quote:
We have to clarify this point, by distinguishing the local and global low-Reynolds number concept. The wall-issue, i. e. turbulence suppression by viscous (and also non-viscous) damping is a local feature of the flow; the turbulent nature of a fully developed boundary layer, with a viscous sub-layer, a buffer layer and a logarithmic layer is a global feature of the flow. In terms of recovering the correct wall asymptotic behaviour of a fully turbulent boundary layer, which means correctly describing the viscous sub-layer (where the local turbulent Reynolds number is very low), all the k-omega type models are perfectly able to do it on a sufficiently fine mesh (at least 4-5 nodes below y+=5) and provided the correct BC (sufficiently high omega value at the wall), without any damping functions (which is not the case, for instance, for the standard k-epsilon model) it is clearly verified and demonstrated in Wilcox's standard k-omega original paper (1988), it applies to the SST model as well, I have verified it with the standard OF implementation of the k-omega and k-omega SST models, you can also verify it by your own (just run a flat plate BL case, with k_wall=very low value and omega_wall=very high value, for instance 1e-12 and 1e+7 respectively, nut_wall should be "calculated"). Wilcox itself says this is most likely due to mathematical behaviour of the omega differential equation rather than the physical "soundness" of the model as a whole, but the practical consequence is there: it just works.
1) I did not know this - thanks for pointing that out.

Quote:
The "high-Re" terminology used for the standard k-omega and SST k-omega implementations in OF refers (quite ambiguously, and this is exactly my main concern and the reason why I've started the tread) to the fact that without any further modification, these models can only recover a fully turbulent boundary layer flow, without any transition-like behaviour (which should be of practical interest in a GLOBALLY low-Re flow configuration, where the laminar and transitional portions of boundary layers are not negligible). The only ways to obtain this behaviour are: 1) to play heavily with the inlet BCs, but it is a purely numerical "trick", there is no way to control the expected result and it doesn't work every time...;2) to add some functions or sub-models to the baseline formulation: this is what I'm talking about mentioning the damping functions added by Wilcox to the standard k-omega form (see the original reference here: http://shaqfehpc06.stanford.edu/data...ilcox_1994.pdf)
I hope that this clarifies also some of your next points.
2) ok, i see - i had thought that the terminology high / low Re model was referring to wallfunction / non-wallfunction approaches, not actual laminar to turbulent transition of the BL. (or do i still misunderstand you!)

Quote:
see above
3) ok

4) So basically then, the additions i was thinking of adding to the OF implementation for kOmegaSST, were the following:

Code:
adding the \alpha^{*} term to the nu_t definition;
and the various other amendments to the co-efficients which are now Re-independent in the OF kOmegaSST model at the moment.

In the fluent documentation, these modifications are referred to as low Re Number corrections, which in the spirit of the rest of the documentation, seems to refer to whether the laminar sublayer is resolved directly, or whether wall functions are used.

Thanks for the link to the 94 paper - i need to read that tonight.

All your comments / advice much appreciated, esp whether you think there is any value in modifying the model as per above.

best
jonathan
Jonathan is offline   Reply With Quote

Old   July 9, 2013, 07:05
Default
  #13
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Quote:
Originally Posted by Jonathan View Post
2) ok, i see - i had thought that the terminology high / low Re model was referring to wallfunction / non-wallfunction approaches, not actual laminar to turbulent transition of the BL. (or do i still misunderstand you!)
Well, in my opinion the high-Re/low-Re terminology, when dealing with turbulence modeling in wall-bounded flows, should be applied only to distinguish models which can resolve the viscous sub-layer from models which cannot (and so need wall functions or something similar, exactly as you were thinking), while transition of BL should be another issue, called for what it is (transitional flow modeling). In that sense, the high-Re/low-Re distinction in OpenFOAM is totally wrong, because it seems that k-omega models always need wall functions and that they cannot resolve the viscous sub-layer properly, even with a correctly spaced mesh and with the correct BCs. In that sense, it is also wrong to call the damping functions added to the k-omega models as "low-Re corrections", because the were put there in the 1994 paper for the simulation of transitional flows and so they are "transitional flow corrections".


Quote:
Originally Posted by Jonathan View Post
All your comments / advice much appreciated, esp whether you think there is any value in modifying the model as per above.
If you need these modifications for the simulation of transitional flows, I think that you should go for some more specific solutions, such as the k-kl-omega or transitional corrections explicitly derived for the SST model (I know that there is some recent work about this in the literature, but haven't read it yet). If you just want to analyse the modified SST model behaviour on fine meshes, compared to the standard SST implementation, it could be interesting (maybe the damping functions can improve stability), given also the ease of implementation. In my tests of the 1994 k-omega transitional implementation, I was not impressed (because I wanted to simulate transition), but for you and the SST it could be different. It's your choice.

Regards

V.
davibarreira and stingph like this.
vkrastev is offline   Reply With Quote

Old   July 11, 2013, 12:13
Default
  #14
New Member
 
Marcus
Join Date: May 2013
Posts: 15
Rep Power: 13
marcus85 is on a distinguished road
Hello Vesselin,

i've found this thread today and think: oh my Goodness

I have opened some threads, but unfortunately nobody answer my Questions. Perhaps I'm to new in this Forum???I don't know...And that is why I want to ask you, because you are in trouble with the same issue like me (only with another solver).

I'm in Trouble with the rhoSimpleFoam solver for the last four months using the k-omega-SST Model. Can you say me perhaps: how this solver works better? For very turbulent Cases my Models don't converge and sometimes there are results that aren't understandable, with a too great or to small pressure Gradient between 2 slices.

I tried many things to solve the Problem. For example I run lowRe Cases with ca. 5-6 Layer in the viscous sublayer or i run Cases with all wallFunction in alphat, mut, k and omega are on. Can it be that i've problems with my BC's, because for some Cases the Results are good with the same Mesh and sometimes they are bad.

Can it be that I've to adept my omegaWallFunctionFvPatchScalarField how you described above or not?

However i Think there are many thinks to do to run Cases with this turbulence model correctly...Is it right?

What are my other capabilities for this because i really despairs about this issue and think perhaps i've to use the k-epsilon model, but i don't have any ideas, how the boundary conditions for such cases work.

I hope you understand my bad Englisch...Sorry about this issue...

Thx
marcus85 is offline   Reply With Quote

Old   July 11, 2013, 13:58
Default
  #15
Senior Member
 
Join Date: Mar 2010
Posts: 181
Rep Power: 17
Jonathan is on a distinguished road
Hi V,

Ok, I have done all the homework on this and thought perhaps i should jot them down for anyone else wanting to know this stuff

1) Regarding the implicit "low Re" nature of the k-omega models + variants - yes, you are spot on. I knew they were able to be integrated to the wall w/out any modifications, but thought that damping functions were needed for the production terms etc and to extract the proper / full low Re behaviour. So - as you said, they are not and seems they were added specifically by Wilcox for trying to model laminar-to-turbulent BL transition (Wilcox 1994), so even the Fluent terminology is misleading on this.

One point of interest thought, Menter 1994 says "one criticism of the k-omega model [is that it] ... does not correctly predict the asymptotic behaviour of the turbulence as it approaches the wall. However ... even if the turbulence model is not asymptotically consistent, the mean flow profile and the wall skin friction are still predicted correctly. A second point [is that] ... the k-omega model does not accurately represent the k and epsilon distribution in agreement with DNS data ... In cases where the agreement with DNS data is considered important, the damping functions developed by Wilcox can be applied to the present [k-omega SST] model."
Menter, F 1994 "Two-equation eddy-viscosity turbulence models for engineering applications", AIAA Journal, 32(8) 1994.

However, as per Menter's comments, I think this is a relatively 'minor' detail unless you are actually wanting the turbulence profiles exactly from your simulation.

2) Correct BC's - As you say, the correct BC's for the k-omega model are:
i)k=0 or some small value
ii)omega=omegaWallFunction or Menter's omega BC
iii)nut=calculated

3) Regarding adding the damping functions - I am still deciding whether this will be worthwhile, but I’ll put the model up if i do. I think it might be a nice addition to have anyway ...

Again, thanks for the discussion,
best regards
jonathan

PS) Finally, I was just wondering whether you could explain what you think EXACTLY Henry was trying to do but suggesting the use of nutUSpaldingWallFunction for nut in the 'fix' for kOmegaSST. The nut values are calculated from the value of the turbulence properties - what exactly would using nutUSpaldingWallFunction do - override the way in which nut was calculated at the walls? or something else. I am a little lost as to exactly the point of specifying nut (for any of the t-models i guess), apart from an initial guess for the first solver iteration.
lev and saeed jamshidi like this.
Jonathan is offline   Reply With Quote

Old   July 12, 2013, 05:53
Default
  #16
New Member
 
Marcus
Join Date: May 2013
Posts: 15
Rep Power: 13
marcus85 is on a distinguished road
Hello to all,

do I need the nut Files for correct solving the rhoSimpleFoam Cases?
I thought this is only necessary for incompressible Cases!?

So and now I'm really confused about this topic...

If I use the k-omega SST model, i've to use it with wallFunctions for k and omega with the initial conditios for k on the wall very small and for omega a reasonable high value on the wall.

How can I solve k-Omega standard models and what are the right label for this in RASProperties? I hope it works with lowRe Cases, or works it not?

Thx to all and to Vesselin, who open this thread...

Best Regards

Marcus
marcus85 is offline   Reply With Quote

Old   July 12, 2013, 07:05
Default
  #17
New Member
 
Marcus
Join Date: May 2013
Posts: 15
Rep Power: 13
marcus85 is on a distinguished road
What i also want to say, that i've Cases where my solution converged and there are halfway good results in my simulation, without this adaptations on the omegaWallFunctionFvPatchScalarField, but i don't have any idea what is the reason for convergence.

I want also to say that i run cases with and without all wallFunctions for alphat, mut, k and omega...But i will also adept this file and will run other Cases.

Best Regards
marcus85 is offline   Reply With Quote

Old   July 16, 2013, 18:27
Default
  #18
Senior Member
 
Joachim
Join Date: Mar 2012
Location: Paris, France
Posts: 145
Rep Power: 15
Joachim is on a distinguished road
Hi everyone!

Really interesting topic! I am currently implementing an hybrid RANS / LES model into OpenFOAM, that would be based on the SST model.

I checked the implementation, and it seemed to match perfectly the version revised by Menter in 2003. I had a look at the wall functions too. It seems to be implemented as suggested in the papers, from what I saw (I might have overlooked something still!). There was one part that was pretty confusing though. When estimating the specific dissipation rate, the friction velocity is simply obtained from the square root of the turbulent kinetic energy...Is that how one is supposed to do?

Regarding your boundary conditions for omega and nut, I agree. However, shouldn't the appropriate BC for the turbulent kinetic energy be a zero gradient? (see "The SST Turbulence Model with Improved Wall Treatment for Heat Transfer predictions in Gas Turbines" [Menter - IGTC 2003]). In the kqRWallFunction.H file, you can also see that the BC is directly derived from the zeroGradient boundary condition.

I wanted to check the impact of theses different BC on the results, so I ran a few simulations on a turbulent channel flow at Retau = 395. The mesh is pretty fine (y+ ~0.5) with a cell to cell ratio of 1.05. The results are compared to the DNS data of Kim & al. (1987). No matter the approach, the results are surprisingly bad actually! Is the turbulent channel flow supposed to be challenging for RANS models?? Maybe I simply missed something...

Have a great day!

Joachim
Attached Images
File Type: jpg SSTchannel.jpg (45.0 KB, 399 views)
Joachim is offline   Reply With Quote

Old   July 17, 2013, 06:52
Default
  #19
Senior Member
 
Join Date: Mar 2010
Posts: 181
Rep Power: 17
Jonathan is on a distinguished road
hi Joachim,

I haven't used or spent much time looking at wall function approaches, as most of my CFD doesn't fit the equilibrium / zero pressure gradient assumption - so i can't really comment on the calculation of the friction velocity - but if i get time and you put up the details to the code, i will have a look and cross reference with the papers i have.

However, i am very certain that when using the low reynolds approach, you should use k=0 or numerical zero at the wall. zeroGradient (kqRWallFunction) is not correct for k when resolving the laminar sublayer.

Regarding your results, i cant see the bulk of the results - are they 'hidden' by the DNS data plot? If so, the results actually would be good. The worst result seems clearly to be the final (yellow i think) plot, which corresponds to k=zeroGradient at the wall, which would make sense to me.

Having done a ton of research on this, i am pretty confident for low Re k-omega type models, the correct BC's are:

k=1e-12
omega=Menter / omegaWallFunction
nut=calculated

thanks for the post, found it v. interesting as well.

cheers
jonathan

Quote:
Originally Posted by Joachim View Post
Hi everyone!

Really interesting topic! I am currently implementing an hybrid RANS / LES model into OpenFOAM, that would be based on the SST model.

I checked the implementation, and it seemed to match perfectly the version revised by Menter in 2003. I had a look at the wall functions too. It seems to be implemented as suggested in the papers, from what I saw (I might have overlooked something still!). There was one part that was pretty confusing though. When estimating the specific dissipation rate, the friction velocity is simply obtained from the square root of the turbulent kinetic energy...Is that how one is supposed to do?

Regarding your boundary conditions for omega and nut, I agree. However, shouldn't the appropriate BC for the turbulent kinetic energy be a zero gradient? (see "The SST Turbulence Model with Improved Wall Treatment for Heat Transfer predictions in Gas Turbines" [Menter - IGTC 2003]). In the kqRWallFunction.H file, you can also see that the BC is directly derived from the zeroGradient boundary condition.

I wanted to check the impact of theses different BC on the results, so I ran a few simulations on a turbulent channel flow at Retau = 395. The mesh is pretty fine (y+ ~0.5) with a cell to cell ratio of 1.05. The results are compared to the DNS data of Kim & al. (1987). No matter the approach, the results are surprisingly bad actually! Is the turbulent channel flow supposed to be challenging for RANS models?? Maybe I simply missed something...

Have a great day!

Joachim
PS if the other plots for the various BC combinations are not on the graphic, would you mind adding them - i think it would be very useful for other users to look at as a reference! cheers Jon
Jonathan is offline   Reply With Quote

Old   July 17, 2013, 07:08
Default
  #20
Senior Member
 
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 20
vkrastev is on a distinguished road
Quote:
Originally Posted by Joachim View Post
Hi everyone!

Really interesting topic! I am currently implementing an hybrid RANS / LES model into OpenFOAM, that would be based on the SST model.

I checked the implementation, and it seemed to match perfectly the version revised by Menter in 2003. I had a look at the wall functions too. It seems to be implemented as suggested in the papers, from what I saw (I might have overlooked something still!). There was one part that was pretty confusing though. When estimating the specific dissipation rate, the friction velocity is simply obtained from the square root of the turbulent kinetic energy...Is that how one is supposed to do?

Regarding your boundary conditions for omega and nut, I agree. However, shouldn't the appropriate BC for the turbulent kinetic energy be a zero gradient? (see "The SST Turbulence Model with Improved Wall Treatment for Heat Transfer predictions in Gas Turbines" [Menter - IGTC 2003]). In the kqRWallFunction.H file, you can also see that the BC is directly derived from the zeroGradient boundary condition.

I wanted to check the impact of theses different BC on the results, so I ran a few simulations on a turbulent channel flow at Retau = 395. The mesh is pretty fine (y+ ~0.5) with a cell to cell ratio of 1.05. The results are compared to the DNS data of Kim & al. (1987). No matter the approach, the results are surprisingly bad actually! Is the turbulent channel flow supposed to be challenging for RANS models?? Maybe I simply missed something...

Have a great day!

Joachim
Hi Joachim,

I actually don't know why your results are so bad, a simple channel should not be any challenge for well tuned RANS models (it is usually one of the standard simplified cases used to drive and develop such models: if a RANS model fails even the zero-pressure-gradient turbulent channel, then there is very little hope it will become a useful model...). Attached you can find my findings on a similar case, though obtained with a relatively old OpenFOAM version (1.7.1, but I'm pretty sure no significant changes have been done on the SST implementation since then): SST results are compared with a Retau=590 DNS database (Moser et al, 1999), BC's for the OpenFOAM run are omega=omegaWallFunction, nut=calculated and k=very low value (1e-12). As you can see, agreement is quite good, just as expected fur such kind of model.
About the k BC, I must admit I haven't read Menter's 2003 paper, but to my knowledge the correct value at the wall for a truly low-Re mesh computation should be zero (numerically speaking, a very small value), though it appears that in some cases the zeroGradient condition should do the job too. About the omegaWallFunction implementation, it is all standard theory stuff: in a few words, there is a blending (geometric mean) between an energy equilibrium driven expression (the one containing turbulent quantities, which is strictly valid only in the logarithmic part of equilibrium-type turbulent boundary layers) and the viscous sub-layer expression for omega, derived firstly by Wilcox in his standard k-omega model an then extended by Menter for the SST.

Hope this helps

Regards

V.
Attached Images
File Type: jpg logLayer.jpg (24.0 KB, 396 views)
randolph likes this.
vkrastev 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
CFX-11 vs CFX-13 SST Model Zigainer CFX 10 December 2, 2011 05:40
Low Reynolds k-epsilon model YJZ ANSYS 1 August 20, 2010 14:57
Understanding k-omega SST model source code tmhonka OpenFOAM Programming & Development 1 September 8, 2009 08:33
multi fluid mixture model issue rystokes CFX 3 August 9, 2009 20:13
Convergence issue in SST for Porous model Raj CFX 0 May 2, 2008 03:43


All times are GMT -4. The time now is 10:02.