Repository navigation
DDES, IDDES and shear-layer-adapted DDES for SST, and fixes to SA EDDES #2150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
388f85a
41cb27e
a6be2cf
d1f4db6
35958b8
09e977f
8c8e89d
71ac9c4
5b5fc30
ef50283
91c742e
6c86a19
48a9f3d
ae33b05
6443070
caf0d41
a584526
0f3a832
710e1dc
e4f28d4
068ac21
cbe79f7
d770fa1
4dda141
84d65bf
5337229
0806d21
0cab1ef
ad86192
dcbacc8
33c6664
a5702d8
ab6bedb
e5080a1
c2fd653
d377903
d037e59
d9f329e
0adcb7e
d50b123
34a0271
04dfcd3
a60fb13
95ccc73
de45d5f
d172607
e5a916c
c723a13
d051f0b
c840256
9b997d7
8f3efae
f716218
28490fd
ff56f36
707afa4
b249f2c
f10c465
37a866f
ac2078c
0c8d49a
86db90b
d4564da
177276a
e260cc4
7e57afe
f193796
c5e1dee
3460d50
e0699cf
973092f
613cf63
19850e5
980f7fb
22af6a0
3733883
e48b9e9
3d39c1e
4e63952
39da3a4
1d4ccca
ce7da87
50e26fa
ad3a6c6
117ed00
e9e8568
552a921
fb4e836
462865c
1fc4d80
72db989
0e4a39c
042022c
54d4358
54068af
246bbcf
8eb863c
1bcd4a7
f2c4946
f7f8582
792044c
e79ca0f
5312d29
929a738
3b8a1cf
698693e
63dddd9
472a960
5e2d117
26b98d0
613f253
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3124,7 +3124,7 @@ void CConfig::SetConfig_Options() { | |
| /* DESCRIPTION: Window (weight) function for the cost-functional in the reverse sweep */ | ||
| addEnumOption("WINDOW_FUNCTION", Kind_WindowFct, Window_Map, WINDOW_FUNCTION::SQUARE); | ||
|
|
||
| /* DESCRIPTION: DES Constant */ | ||
| /* DESCRIPTION: DES Constant of the SA hybrid models. The SST hybrid models blend their own constants with F1. */ | ||
| addDoubleOption("DES_CONST", Const_DES, 0.65); | ||
|
|
||
| /* DESCRIPTION: SBS lengthscale coefficient */ | ||
|
|
@@ -3145,7 +3145,7 @@ void CConfig::SetConfig_Options() { | |
| /* DESCRIPTION: Specify if the Stochastic Backscatter Model must be activated */ | ||
| addBoolOption("STOCHASTIC_BACKSCATTER", SBSParam.StochasticBackscatter, false); | ||
|
|
||
| /* DESCRIPTION: Specify if the LES mode must be enforced */ | ||
| /* DESCRIPTION: Specify if the LES mode must be enforced (SA hybrid models only) */ | ||
| addBoolOption("ENFORCE_LES", enforceLES, false); | ||
|
|
||
| /* DESCRIPTION: Specify if the stochastic source term must be included in the turbulence model equation */ | ||
|
|
@@ -3166,7 +3166,7 @@ void CConfig::SetConfig_Options() { | |
| /* DESCRIPTION: Shielding function lower threshold for application of Stochastic Backscatter Model */ | ||
| addDoubleOption("SBS_FD_LOWER_THRESHOLD", SBSParam.stochFdThreshold, 0.9); | ||
|
|
||
| /* DESCRIPTION: Filter width for LES (if negative, it is computed based on the local cell size) */ | ||
| /* DESCRIPTION: Filter width for LES (if negative, it is computed based on the local cell size, SA hybrid models only) */ | ||
| addDoubleOption("LES_FILTER_WIDTH", LES_FilterWidth, -1.0); | ||
|
|
||
| /* DESCRIPTION: Roe with low dissipation for unsteady flows */ | ||
|
|
@@ -4149,6 +4149,52 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i | |
| "TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER or DUAL_TIME_STEPPING-2ND_ORDER", CURRENT_FUNCTION); | ||
| } | ||
|
|
||
| if (Kind_HybridRANSLES != NO_HYBRIDRANSLES && !Time_Domain) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This now also applies to the SA hybrids, which is a behaviour change. Please mention it in the PR description. The
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The SA time-domain requirement is now in the PR description. The SST hybrid model check is also shared between the configuration checks and output. |
||
| SU2_MPI::Error("Hybrid RANS/LES models (HYBRID_RANSLES) require an unsteady simulation, set TIME_DOMAIN= YES.", | ||
| CURRENT_FUNCTION); | ||
| } | ||
|
|
||
| /*--- The SA_* hybrid models are built on the SA model and the SST_* ones on the SST model. ---*/ | ||
| const bool hybridSA = Kind_HybridRANSLES == SA_DES || Kind_HybridRANSLES == SA_DDES || | ||
| Kind_HybridRANSLES == SA_ZDES || Kind_HybridRANSLES == SA_EDDES; | ||
| const bool hybridSST = IsHybridSST(); | ||
| if ((hybridSA && Kind_Turb_Model != TURB_MODEL::SA) || (hybridSST && Kind_Turb_Model != TURB_MODEL::SST)) { | ||
| SU2_MPI::Error(string("The hybrid RANS/LES model (HYBRID_RANSLES) must match the turbulence model (KIND_TURB_MODEL): ") + | ||
| "SA_* options require SA, SST_* options require SST.", CURRENT_FUNCTION); | ||
| } | ||
|
|
||
| /*--- The stochastic backscatter model adds the Langevin equations to the SA model (turbulence variables 1 to 3). ---*/ | ||
| if (SBSParam.StochasticBackscatter && hybridSST) { | ||
| SU2_MPI::Error(string("The stochastic backscatter model (STOCHASTIC_BACKSCATTER= YES) is only available with the SA ") + | ||
| "hybrid RANS/LES models (HYBRID_RANSLES= SA_DES, SA_DDES, SA_ZDES or SA_EDDES).", CURRENT_FUNCTION); | ||
| } | ||
|
|
||
| /*--- How the SST compressibility corrections should act in the LES region of the hybrid models is not validated yet | ||
| (e.g. Forsythe et al. 2002 keep them only in the RANS length scale). Stop rather than give unvalidated results. ---*/ | ||
| if (hybridSST && (sstParsedOptions.compWilcox || sstParsedOptions.compSarkar)) { | ||
| SU2_MPI::Error(string("The SST compressibility corrections (COMPRESSIBILITY-WILCOX, COMPRESSIBILITY-SARKAR) are not ") + | ||
| "supported yet with the SST hybrid RANS/LES models (HYBRID_RANSLES= SST_*).", CURRENT_FUNCTION); | ||
| } | ||
|
|
||
| /*--- The SST hybrid models compute their length scale from the grid with the constant C_DES = 0.78 F1 + 0.61 (1 - F1) | ||
| (Gritskevich et al. 2012), they do not use these options of the SA hybrid models. ---*/ | ||
| if (hybridSST) { | ||
| if (enforceLES) { | ||
| SU2_MPI::Error("ENFORCE_LES= YES is only available with the SA hybrid RANS/LES models (HYBRID_RANSLES= SA_*).", | ||
| CURRENT_FUNCTION); | ||
| } | ||
| if (LES_FilterWidth > 0.0) { | ||
| SU2_MPI::Error(string("A user-specified LES_FILTER_WIDTH is only available with the SA hybrid RANS/LES models ") + | ||
| "(HYBRID_RANSLES= SA_*). The SST hybrid models compute the filter width from the grid.", CURRENT_FUNCTION); | ||
| } | ||
| if (OptionIsSet("DES_CONST")) { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Making this a hard error is strict:
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Changed DES_CONST to a warning for SST, and the NTS sensor now uses the local F1-blended constant. |
||
| if (rank == MASTER_NODE) { | ||
| cout << "WARNING: DES_CONST is ignored by SST hybrid RANS/LES models, which use " | ||
| "C_DES = 0.78 F1 + 0.61 (1 - F1)." << endl; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| if (Time_Domain){ | ||
| Delta_UnstTime = Time_Step; | ||
|
|
||
|
|
@@ -6847,13 +6893,21 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) { | |
| cout << "Hybrid RANS/LES: "; | ||
| switch (Kind_HybridRANSLES) { | ||
| case NO_HYBRIDRANSLES: cout << "No Hybrid RANS/LES" << endl; break; | ||
| case SA_DES: cout << "Detached Eddy Simulation (DES97) " << endl; break; | ||
| case SA_DDES: cout << "Delayed Detached Eddy Simulation (DDES) with Standard SGS" << endl; break; | ||
| case SA_ZDES: cout << "Delayed Detached Eddy Simulation (DDES) with Vorticity-based SGS" << endl; break; | ||
| case SA_EDDES: cout << "Delayed Detached Eddy Simulation (DDES) with Shear-layer Adapted SGS" << endl; break; | ||
| case SA_DES: cout << "Detached Eddy Simulation (DES97) " << endl; break; | ||
| case SA_DDES: cout << "Delayed Detached Eddy Simulation (DDES) with Standard SGS" << endl; break; | ||
| case SA_ZDES: cout << "Delayed Detached Eddy Simulation (DDES) with Vorticity-based SGS" << endl; break; | ||
| case SA_EDDES: cout << "Delayed Detached Eddy Simulation (DDES) with Shear-layer Adapted SGS" << endl; break; | ||
| case SST_DDES: cout << "Delayed Detached Eddy Simulation (DDES)" << endl; break; | ||
| case SST_IDDES: cout << "Improved Delayed Detached Eddy Simulation (IDDES)" << endl; break; | ||
| case SST_SIDDES: cout << "Simplified Improved Delayed Detached Eddy Simulation (SIDDES)" << endl; break; | ||
| case SST_EDDES: cout << "Delayed Detached Eddy Simulation (DDES) with Shear-layer Adapted SGS" << endl; break; | ||
| } | ||
| if (Kind_HybridRANSLES != NO_HYBRIDRANSLES) { | ||
| if (LES_FilterWidth > 0.0) cout << "User-specified LES filter width: " << LES_FilterWidth << endl; | ||
| if (IsHybridSST()) | ||
| cout << "DES constant blended with F1: C_DES = 0.78 F1 + 0.61 (1 - F1)." << endl; | ||
| else | ||
| cout << "DES constant: " << Const_DES << endl; | ||
| cout << "Stochastic Backscatter: "; | ||
| if (SBSParam.StochasticBackscatter) { | ||
| cout << "ON" << endl; | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Points at the
feature_SST_IDDESTestcases branch (also lines 287, 337, 382). Revert todevelopbefore merge.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. I am keeping the test branch until TestCases #206 merges; I will switch back to develop before merging this PR.