Skip to content

SST turbulence model with sustaining terms - #765

Merged
vdweide merged 9 commits into
developfrom
feature_SST_SUST
Aug 25, 2019
Merged

vdweide merged 9 commits into
developfrom
feature_SST_SUST

Conversation

@vdweide

@vdweide vdweide commented Aug 22, 2019

Copy link
Copy Markdown
Contributor

Proposed Changes

This small PR introduces the SST turbulence model with sustaining terms, such that the model is free-stream preserving. Especially for external flows, where the farfield boundary is far away from the body, the turbulent intensity decays from the prescribed free stream values. This is not too much an issue when the model is run in fully turbulent mode, but it becomes important when it is combined with a transition model. It is the intention to add the transition model later on.

Related Work

N/A.

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • [X ] I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with the '-Wall -Wextra -Wno-unused-parameter -Wno-empty-body' compiler flags).
  • My contribution is commented and consistent with SU2 style.
  • I have added a test case that demonstrates my contribution, if necessary.

@talbring

talbring commented Aug 22, 2019

Copy link
Copy Markdown
Member

@vdweide All looks good here! Thanks! Would it maybe make sense to always have this additional term included?

intensity. ---*/

if ( sustaining_terms ) {
const su2double sust_k = beta_star*Density_i*kAmb*omegaAmb;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are so slight I missed them while scrolling to get to the meat of the feature.

Why not simply add a config option for USE_SST_SUSTAINING_TERMS instead of through a new turb solver type? (which forces you to change lots of booleans in the code)
Or maybe use the turb solver option but in the config post processing set a different boolean to indicate sustaining_terms and reset KindTurbSolver to SST.

@jayantmukho

Copy link
Copy Markdown
Contributor

The PR looks good but more to @talbring 's point, do we want to conserve a vanilla SST implementation for validation purposes?

I thought about this when I was trying to incorporate some improvements to the SST model that were published in a 2003 paper by Menter et al. These are small changes in the coefficients but I wasn't sure if I should make the changes to the base SST model or make a new one.

@economon

Copy link
Copy Markdown
Member

Since most of the magic of turbulence models can be found in the source, you could adopt what we have done for the SA variants and make a new source term only in CNumerics for each new variant (or maybe have it inherit somehow from the existing one and add just an additional term without duplicating). That way, the bools can be left as SST everywhere and only one line is needed to instantiate the correct source term.

The checks on SA and SST throughout are mostly because they have 1 and 2 equations, respectively, so all of their variants can still be lumped under checks for just SA and SST type, I think.

@vdweide

vdweide commented Aug 22, 2019

Copy link
Copy Markdown
Contributor Author

Guys,

Thanks for your feedback.

@pcarruscag, the reason why I made a different enum rather than a boolean USE_SST_SUSTAINING_TERMS is that all different SA versions also have a different enum. So I thought this was more consistent. But if there is a strong preference for an additional boolean, I'm fine with that as well. What we can do is to keep the enum and set the boolean USE_SST_SUSTAINING_TERMS internally and overwrite SST_SUST to SST.

@talbring, @jayantmukho, I am in favor of keeping the original version of SST. Although the difference between the models is rather small, basically the addition of one term, the difference in results can be quite significant, especially for relatively low Reynolds numbers and large value of the turbulent intensity.

@economon, you are right that a lot of the checks for SST are actually more general checks for a two equation model. So I think that most, if not all, checks for SST can be replaced be a check for the number of turbulent equations. That is more general as well, in case we want to add additional turbulence models in the future, assuming that an equation is present for the turbulent kinetic energy if the number of turbulence equations is two or bigger.

@talbring

Copy link
Copy Markdown
Member

Some of the things are essentially similar to the Kind_Solver/Kind_Regime discussion in #756. We have to find a proper solution for that at some point.

@pcarruscag pcarruscag left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe keep the checks for now then, I will open an issue so we can start proposing solutions for these booleans.

@vdweide
vdweide merged commit 956540c into develop Aug 25, 2019
@vdweide
vdweide deleted the feature_SST_SUST branch August 25, 2019 18:22
@talbring talbring changed the title Feature sst sust SST turbulence model with sustaining terms Nov 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants