su2code/SU2

SST(m) implementation is inconsistent with literature

pcarruscag opened this issue · 5 comments

TLDR:
There is SST and SSTm, the latter drops the tke term from the viscous stress tensor AND from the production term. Currently we do the former (because it was found beneficial here #797) but not the latter, which leaves the implementation in some kind of limbo state.

Discussed in #1483

Originally posted by sun5k January 10, 2022
Question about Menter's SST model on SU2

Hello! This post is my first Q&A for SU2; happy new Year everyone.
I have two questions about the SST model for the SU2.

The abbreviation is referred from the SST Turbulence model of NASA TMR, Compressible RANS of NASA TMR , and Running cases with CFD of NASA TMR.

Briefly

  1. In SU2, The production term of the SST model uses incompressible assumptions. Is there some special reason?

  2. Always ignore the turbulence kinetic energy to compute the stress tensor for the momentum and energy equation, is it a bug?

Here is the detail!

The Boussinesq relation of RANS is

image

Form Running cases with CFD of NASA TMR: "In the equation above, theimage term is sometimes ignored for non-supersonic speed flows, and the second term in parentheses is identically zero for incompressible flows."

The production term of SST model is :

image

Rewrite the first term of the above equation :

image

image

Finally, the production term becomes :

image

This term( image ) becomes zero in incompressible flow(from continuity equation image ), but the compressible flow is not zero.

In the SU2 source code( line 849 in SU2_CFD/src/numerics/turbulent/turb_sources.cpp), the production term of SU2's SST model is
"pk = Eddy_Viscosity_iStrainMag_iStrainMag_i - 2.0/3.0Density_iScalarVar_i[0]*diverg;"

Rewrite above code to equation :
image

The omit of image term is a bug, or has some special reason?

image term is not an issue in incompressible flow like low Mach number simulation. But, in a high Mach number simulation, it may make a noticeable difference.

Q.2)

The stress tensor in RANS simulation is following :

image

From Running cases with CFD of NASA TMR : "In the equation above, theimage term is sometimes ignored for non-supersonic speed flows, and the second term in parentheses is identically zero for incompressible flows." And, from SST Turbulence model of NASA TMR : "When the image term is ignored in image in the momentum and energy equations and the production term is approximated by image, a modified naming convention should be employed : SSTm"

In the SU2 source code( line 142 in SU2_CFD/src/numerics/flow/flow_diffusion.cpp), The turbulence kinetic energy of the stress tensor is always calculated as 0. I don't know who, someone comments as
"// TODO why ignore turb_ke?"
This comment existed until SU2 v.7.1.0 to SU2 v.7.2.1(I'm not sure the same about the bellow SU2 v710).

I guess the SST model of SU2 is 'SST' not 'SSTm'. Then, it should be used image in the stress tensor of the momentum and energy equations.

The code always ignores the turbulence kinetic energy to compute the stress tensor for the momentum and energy equation.
Is it under maintenance?

Extra question) Someone working to implement for other kinds of SST(like SST-V, SST-Vm, SST-2003, SST-2003m, ... )?

Thank you for reading.

I'm not active in development anymore, but I do remember some of the history. Some of these decisions came from #797 . @economon specifically said (in that issue):

I removed the term involving the TKE from the viscous stress tensor in the mean flow equations, as this is often ignored in codes (and omitting it gives better results, including the pressure field). I also fixed a bug in the definition of the eddy viscosity, where strain magnitude was being used when it should be the vorticity magnitude.

You can see the motivation, regression testing, and explanations on that issue page.

The "Why ignore turb_ke?" comment originated in the refactoring effort of #1127 .

For a consistent implementation with SSTm (no tke in stress tensor) the production term should be P = mu_t S^2.
Our production term is in no man's land, I'm suggesting we should complete the SST -> SSTm transition.

I also suggest to move to the 2003 version, where rate of strain is used in the eddy viscosity instead of vorticity.

And a few other changes in constants. I am absolutely fine with that but I do not have bandwidth to update all the regression tests, re-run validation tests, etc.