CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   k-Omega SST with curvature correction (https://www.cfd-online.com/Forums/openfoam-solving/124296-k-omega-sst-curvature-correction.html)

LM4112 October 1, 2013 12:24

k-Omega SST with curvature correction
 
Dear all,

Does anybody know how to enable the curvature correction in the k Omega SST model? I am using OpenFOAM 2.1. Thank you

best regards
Luca

LM4112 October 2, 2013 16:15

Bump...does anybody know?

cosimobianchini October 3, 2013 06:06

I'm not aware of any rotation or curvature sensitized kOmegaSST in OpenFOAM.
Very glad to discover I'm wrong :)
Can you please provide more details on what you actually mean?

LM4112 October 3, 2013 06:18

Quote:

Originally Posted by cosimobianchini (Post 454838)
I'm not aware of any rotation or curvature sensitized kOmegaSST in OpenFOAM.
Very glad to discover I'm wrong :)
Can you please provide more details on what you actually mean?

I am investigating a flow that is characterised by highly curved streamlines. The k-Omega SST is based on the Boussinesq appox then the Re stress tensor is forced to be aligned to the mean strain rate tensor. I have tried to use a RSTM turbulence model as it solves directly the Re stress tensor (then it avoids this problem) but it much more computational expensive. For this reason I would like to use a curvature correction in a 2-eq model. This correction term is described in this paper: " Shur, M. L., Strelets, M. K., Travin, A. K., Spalart, P. R., "Turbulence Modeling in Rotating and Curved Channels: Assessing the Spalart-Shur Correction," AIAA Journal Vol. 38, No. 5, 2000, pp. 784-792."

Surfing internet I have found out that someone has already developed a modified k-Omega SST library with the curvature correction term:

https://github.com/Unsupported-Contr...x/pull/7/files (however now it seems that the website is down).

cfdivan October 3, 2013 16:49

Hi LM4112,

"https://github.com/Unsupported-Contr...x/pull/7/files (however now it seems that the website is down)". What u mean?

I tried the website and works fine. I guess you can find the code that you are looking for there.

Regards,

LM4112 October 4, 2013 03:27

Quote:

Originally Posted by cfdivan (Post 454945)
Hi LM4112,

"https://github.com/Unsupported-Contr...x/pull/7/files (however now it seems that the website is down)". What u mean?

I tried the website and works fine. I guess you can find the code that you are looking for there.

Regards,

Now it is working, yesterday when I wrote the post it wasn't :).

nash November 9, 2013 20:16

hi Luca,

have you tried the kOmegaSST with rotation correction? How was it?

ancolli August 8, 2018 16:35

Any news about the implemented version of the kOmegaSST with curvature correction?

syavash August 13, 2018 03:57

It looks that the web address of the code is down! Any one here to share the code?

ancolli August 13, 2018 08:07

I have updated the previous version (https://github.com/cvillescas/TkOmegaSSTCC) valid for OF 2 to the new template based formulation.
I have tested it in OF 5

https://github.com/ancolli/kOmegaSSTCC

MazenDraw September 9, 2020 10:13

Quote:

Originally Posted by ancolli (Post 702452)
I have updated the previous version (https://github.com/cvillescas/TkOmegaSSTCC) valid for OF 2 to the new template based formulation.
I have tested it in OF 5

https://github.com/ancolli/kOmegaSSTCC


Dear Ancolli,


I know this is sort of an old thread, but I have some confusion reading your code that I hope you would help me clearify.


In the beginning, you define the strain rate tensor S and vorticity tensor \Omega as tSymm and tSkew, respectively:


Code:

tmp<volTensorField> tgradU = fvc::grad(U);
tmp<volSymmTensorField> tSymm = symm(tgradU());
tmp<volTensorField> tSkew = skew(tgradU());

Then you define S^2 and \Omega^2 as:
Code:



volScalarField symInnerProduct(2.0*tSymm() && tSymm());
volScalarField asymInnerProduct
(
    max(2.0*tSkew() && tSkew(),dimensionedScalar("0", dimensionSet(0, 0, -2, 0, 0), 0.0))
);

So now my first question is that: have you not included the rotation rate tensor from the rotating reference frame \Omega^{rot} that is included in the vorticity tensor in (Smirnov and Menter 2009)?


Then you continue with:
Code:

volScalarField w
(
    atan(dimensionedScalar("4",dimensionSet(0,0,2,0,0),1.0e02)*asymInnerProduct)*2.0
    /(constant::mathematical::pi)*(asymInnerProduct-symInnerProduct)
  + symInnerProduct
 );



volScalarField rStar
(
    sqrt(symInnerProduct/max(w, dimensionedScalar("minw", w.dimensions(), SMALL)))
);

And now I am confused as what exactly is w? and why is rStar definded as \sqrt(S^2/w) and not as it is defined in the paper?


The same occurs later with rTilda as you defined it based on w2, which is also an unknown variable to me, and not how it is defined in the paper based on \Omega.

I would appreciate it very much if you take the time to clearify this to me! Thanks in advance!



Regards,
Mazen

ancolli September 9, 2020 10:27

Quote:

Originally Posted by MazenDraw (Post 782402)
Dear Ancolli,


I know this is sort of an old thread, but I have some confusion reading your code that I hope you would help me clearify.


In the beginning, you define the strain rate tensor S and vorticity tensor \Omega as tSymm and tSkew, respectively:


Code:

tmp<volTensorField> tgradU = fvc::grad(U);
tmp<volSymmTensorField> tSymm = symm(tgradU());
tmp<volTensorField> tSkew = skew(tgradU());

Then you define S^2 and \Omega^2 as:
Code:



volScalarField symInnerProduct(2.0*tSymm() && tSymm());
volScalarField asymInnerProduct
(
    max(2.0*tSkew() && tSkew(),dimensionedScalar("0", dimensionSet(0, 0, -2, 0, 0), 0.0))
);

So now my first question is that: have you not included the rotation rate tensor from the rotating reference frame \Omega^{rot} that is included in the vorticity tensor in (Smirnov and Menter 2009)?


Then you continue with:
Code:

volScalarField w
(
    atan(dimensionedScalar("4",dimensionSet(0,0,2,0,0),1.0e02)*asymInnerProduct)*2.0
    /(constant::mathematical::pi)*(asymInnerProduct-symInnerProduct)
  + symInnerProduct
 );



volScalarField rStar
(
    sqrt(symInnerProduct/max(w, dimensionedScalar("minw", w.dimensions(), SMALL)))
);

And now I am confused as what exactly is w? and why is rStar definded as \sqrt(S^2/w) and not as it is defined in the paper?


The same occurs later with rTilda as you defined it based on w2, which is also an unknown variable to me, and not how it is defined in the paper based on \Omega.

I would appreciate it very much if you take the time to clearify this to me! Thanks in advance!



Regards,
Mazen

Hi Mazen,
I do not really remember the details. But, with regards to your first question. Effectively, I have used the code for a non rotating reference frame. Thus, in your case u should include it.*With regards to w and the definition of rstar. I only updated the old code (https://github.com/cvillescas/TkOmegaSSTCC) to newer versions of OpenFOAM.
U must contact the original developers.
Regards


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