CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   CFX (http://www.cfd-online.com/Forums/cfx/)
-   -   SST eddy-viscosity assumption parameters (http://www.cfd-online.com/Forums/cfx/86451-sst-eddy-viscosity-assumption-parameters.html)

 siw March 23, 2011 05:08

SST eddy-viscosity assumption parameters

Hi,

In the CFX-Solver Theory Guide (eq 2.60) it gives the eddy-viscosity assumption for the SST model:

nu_t = (a_1 * k) / max(a_1 * omega, S * F_2)

sorry, don't know how to properly write equations here.

What is the valve of the constant a_1?

The guide says S is an invariant measure of the strain rate. What is it actually? E.g. is it the magnitude of the strain rate?

I cannot find these answers in either the CFX guide or here on CFD-wiki.

Thanks

 AleDR April 1, 2011 12:01

Hi siw,

I'm actually on the same problem, but from an OpenFOAM perspective.
I'm trying to modify k-omega SST model and in the Turbulence Modeling Resource page at Langley, I found out that this implementation is a modification from 2003 model. The first Menter SST model used vorticity magnitude rather than strain invariant.
Here's what I realized.

OpenFOAM computes this term in turbulent viscosity definition as:

S = mag( symm( grad(U) ) )
which means that is the square root of the double inner product of the mean strain rate tensor S_ij .
[For double inner product I mean: S_ij S_ij . This quantity is related to the second invariant of S_ij, which is: II_S = 1/2 (S_ij S_ij - (S_kk)^2), and to the square of the first invariant, i.e. the square of the trace. So that is the reason why it is called "invariant measure of the strain rate".]

Anyway from the Langley page you can read: S = (2 S_ij S_ij)^0.5.
I don't know the reason for this apparent modification.

Moreover on the FLUENT manual you can read that "S is the strain rate magnitude".

I am a bit confused. On Menter's papers I diddn't find any formula about it.

If you obtain anything, please let me know.

Thanks! :)

 siw April 3, 2011 05:56

I did find the answers to my questions, in case they help others, in reference [1] and not in any paper by Menter:

a_1 = 0.31

S is the magnitude of the vorticity vector

[1] Bardina, J. E., Huang, P. G. and Coakley, T. J. (1997), Turbulence Modeling Validation, Testing, and Development, NASA Technical Memorandum 110446.

 AleDR April 6, 2011 13:22

I don't think so...

In turbulence literature S usually indicates magnitude of strain rate tensor, while magnitude of vorticity tensor is Omega [1].

In the first Menter's SST model [2] turbulent viscosity was calculated using the same expression of your first post, with S replaced with Omega. (So your reference is concerned with this model). As Wilcox points out in [3] this choice resulted in unsatisfactory k-omega behavior in some boundary layers.

The 2003 Menter's SST model [4] changed the turbulent viscosity definition simply by substituting Omega with S (and keeping the same value for a1=0.31). This model offers better perfomances and it is generally preferred over the first. Also Fluent implements this newer version.

For CFX notation (essentially the same) have a look at this pdf!
For general references about different versions of turbulence models have a look at Langley Resource page.

-----------------------------------------------------------------------
[1]. Langtry, Menter, Transition Modeling for General CFD Applications and Aeronautics, AIAA 2005-522.
[2]. Menter, Two-Equation Eddy-Viscosity Turbulence Models for Engineering Applications, AIAA Journal, 32, 1994.
[3]. Wilcox, Formulation of the k-w Turbulence Model Revisited, AIAA Journal, 46, 2008.
[4]. Menter, Kuntz, Langtry, Ten Years of Industrial Experience with the SST Turbulence Model, in "Turbulence, Heat and Mass Transfer 4", eds. Hanjalic, Nagano, Tummers, Begell House Inc., 2003.
(...all are freely available on the web!)

 Anne Lincke May 3, 2011 08:45

Quote:
 Originally Posted by AleDR (Post 301864) Hi siw, I'm actually on the same problem, but from an OpenFOAM perspective. I'm trying to modify k-omega SST model and in the Turbulence Modeling Resource page at Langley, I found out that this implementation is a modification from 2003 model. The first Menter SST model used vorticity magnitude rather than strain invariant. Here's what I realized. OpenFOAM computes this term in turbulent viscosity definition as: S = mag( symm( grad(U) ) ) which means that is the square root of the double inner product of the mean strain rate tensor S_ij . [For double inner product I mean: S_ij S_ij . This quantity is related to the second invariant of S_ij, which is: II_S = 1/2 (S_ij S_ij - (S_kk)^2), and to the square of the first invariant, i.e. the square of the trace. So that is the reason why it is called "invariant measure of the strain rate".] Anyway from the Langley page you can read: S = (2 S_ij S_ij)^0.5. I don't know the reason for this apparent modification. Moreover on the FLUENT manual you can read that "S is the strain rate magnitude". I am a bit confused. On Menter's papers I diddn't find any formula about it. If you obtain anything, please let me know. Thanks! :)
Hey Alessandro,
I am currently investigating the same issue as you.
Have you read the threads concerning this issue that claim that the modification is a bug?
Here are the most important links:

http://www.cfd-online.com/Forums/ope...nce-model.html

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

In the OpenFOAM1.7.x Version this "bug" is fixed, i.e. there is an additional factor of \sqrt(2) added. I "fixed" the bug in my version but it seemed that my results got worse after "fixing the bug".
Now I am investigating if this is really a bug....therefore I read the paper from Menter about his modified SST version from the year 2003.
( Menter, Kuntz, Langtry, Ten Years of Industrial Experience with the SST Turbulence Model, in "Turbulence, Heat and Mass Transfer 4", eds. Hanjalic, Nagano, Tummers, Begell House Inc., 2003.)
He mentioned the " invariant measure of the strain rate" without giving any formula. So thank you for answering this question.

I will keep you up to date if I get more informations. Hope this helped a bit.

 AleDR May 3, 2011 10:49

Hi Anne,

lately I went on this subject further and now I can give you an answer.

First of all, have a look at the Turbulence Modeling Resource page by Langley team. It is a very useful resource for this kind of problems, where you can find standard and modified versions for many turbulence models, with associated references. There are some test cases if you want to check the results of your implementation. You can find many answers there! (S = sqrt(2 * S_ij * S_ij) for sure!)

About this and other questions related to turbulence production terms approximations in SST k-omega, please note that the paper "Ten Years of Industrial Experience with the SST Turbulence Model" has a correction about the P_omega term:

alpha * rho * S ^2 ---> alpha / nut * min( P_k , 10* betaStar * rho *k * omega )

The main differences between the NASA official SST model and the simplified model of the paper are the production terms, without the div U term for the incompressible assumption underlying (and never specified) and without the 2/3*k*delta_ij term for the "low speed" assumption (not so nice for my taste, but useful for solving turbulence equation in a staggered fashion).

About the bug in the OpenFOAM implementation, please note that there are two bugs to fix in the kOmegaSST.C file:

1. line nut_ = a1_*k_/max(a1_*(omega_ + omegaSmall_), F2()*mag(symm(fvc::grad(U_)));
should be replaced by
nut_ = a1_*k_/max(a1_*(omega_ + omegaSmall_), F2()*sqrt(scalar(2))*mag(symm(fvc::grad(U_)));
2. line nut_ = a1_*k_/max(a1_*omega_, F2()*sqrt(S2));
should be changed to
nut_ = a1_*k_/max(a1_*omega_, F2()*sqrt(scalar(2)*S2));

...and nothing else for that mismatch on S ! In this way the implementationis is the same as in FLUENT.
If you want, you can edit the P_omega as should be in the correction above. Please note that this correction is relevant for stagnation regions, where you can overestimate turbulence production if you use a quadratic dependecy on the strain rate invariant. (This was the starting point for the Kato-Launder modification, now rarely used).

I changed the lines, recompiled the files and the model showed better performances in term of nut profile (lower over the recirculation zone) and convergence on the pitzDaily case.

So I am pretty sure that the correction must be done on the kOmegaSST file! :)

Another question is about the divDevReff computation.
one shoul write -fvm::laplacian(nuEff(), U) - fvc::div(nuEff()*dev2(fvc::grad(U)().T()))
because divDevReff = T_ij - 2/3*tr(T_ij)*delta_ij and dev operator subtracts only 1/3 of the trace!
I know that anyway it is essentially zero, because we're on the incompressible case, but... it is not correct from a mathematical view of the code!

So thank you for your indications and if you need any paper I'll sent you by email!

Hope that suffices! :rolleyes:

 Anne Lincke May 5, 2011 03:16

Alessandro,
I had already changed the lines that you mentioned, but my results seem to get worse with this change.
But it might be that something else is wrong in my case.
I have one question left: Which OpenFOAM version do you use?

 AleDR May 5, 2011 04:22

Anne,

I'm using 1.7.1 version, but I'm currently installing the 1.7.x on another machine.

Anyway if you want to check your SST implementation you can try the 2D Zero Pressure Gradient Flat Plate Verification Case at Turbulence Modeling Resource page or other test cases! (Would be a nice way to find out if the P_omega modification as any impact...)

.A.

 Anne Lincke May 5, 2011 04:24

Thank you, Alessandro. I will check this out soon.

 All times are GMT -4. The time now is 12:38.