Skip to content

Commit f0dcb86

Browse files
authored
Merge pull request #1751 from sun5k/develop
Langtry and Menter transition model
2 parents e528e80 + 353b3d2 commit f0dcb86

31 files changed

Lines changed: 1309 additions & 1446 deletions

AUTHORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ Samet Cakmakcioglu
119119
Scott Imlay
120120
Steffen Schotthöfer
121121
Steven Endres
122+
Sunoh Kang
122123
Teus van der Stelt
123124
Thomas D. Economon
124125
Tim Albring

Common/include/CConfig.hpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,7 @@ class CConfig {
848848
Viscosity_FreeStream, /*!< \brief Free-stream viscosity of the fluid. */
849849
Tke_FreeStream, /*!< \brief Total turbulent kinetic energy of the fluid. */
850850
Intermittency_FreeStream, /*!< \brief Freestream intermittency (for sagt transition model) of the fluid. */
851+
ReThetaT_FreeStream, /*!< \brief Freestream Transition Momentum Thickness Reynolds Number (for LM transition model) of the fluid. */
851852
TurbulenceIntensity_FreeStream, /*!< \brief Freestream turbulent intensity (for sagt transition model) of the fluid. */
852853
Turb2LamViscRatio_FreeStream, /*!< \brief Ratio of turbulent to laminar viscosity. */
853854
NuFactor_FreeStream, /*!< \brief Ratio of turbulent to laminar viscosity. */
@@ -1926,6 +1927,12 @@ class CConfig {
19261927
*/
19271928
su2double GetIntermittency_FreeStream(void) const { return Intermittency_FreeStream; }
19281929

1930+
/*!
1931+
* \brief Get the value of the freestream momentum thickness Reynolds number.
1932+
* \return Freestream momentum thickness Reynolds number.
1933+
*/
1934+
su2double GetReThetaT_FreeStream() const { return ReThetaT_FreeStream; }
1935+
19291936
/*!
19301937
* \brief Get the value of the non-dimensionalized freestream turbulence intensity.
19311938
* \return Non-dimensionalized freestream intensity.
@@ -2564,6 +2571,12 @@ class CConfig {
25642571
*/
25652572
void SetOmega_FreeStream(su2double val_omega_freestream) { Omega_FreeStream = val_omega_freestream; }
25662573

2574+
/*!
2575+
* \brief Set the freestream momentum thickness Reynolds number.
2576+
* \param[in] val_ReThetaT_freestream - Value of the freestream momentum thickness Reynolds number.
2577+
*/
2578+
void SetReThetaT_FreeStream(su2double val_ReThetaT_freestream) { ReThetaT_FreeStream = val_ReThetaT_freestream; }
2579+
25672580
/*!
25682581
* \brief Set the non-dimensional freestream energy.
25692582
* \param[in] val_energy_freestreamnd - Value of the non-dimensional freestream energy.

Common/include/option_structure.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ enum RUNTIME_TYPE {
478478
RUNTIME_ADJFEA_SYS = 30, /*!< \brief One-physics case, the code is solving the adjoint FEA equation. */
479479
RUNTIME_HEAT_SYS = 21, /*!< \brief One-physics case, the code is solving the heat equation. */
480480
RUNTIME_ADJHEAT_SYS = 31, /*!< \brief One-physics case, the code is solving the adjoint heat equation. */
481-
RUNTIME_TRANS_SYS = 22, /*!< \brief One-physics case, the code is solving the turbulence model. */
481+
RUNTIME_TRANS_SYS = 22, /*!< \brief One-physics case, the code is solving the transition model. */
482482
RUNTIME_RADIATION_SYS = 23, /*!< \brief One-physics case, the code is solving the radiation model. */
483483
RUNTIME_ADJRAD_SYS = 24, /*!< \brief One-physics case, the code is solving the adjoint radiation model. */
484484
RUNTIME_SPECIES_SYS = 25, /*!< \brief One-physics case, the code is solving the species model. */

Common/src/CConfig.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4729,8 +4729,8 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
47294729
for (int i=0; i<7; ++i) eng_cyl[i] /= 12.0;
47304730
}
47314731

4732-
if (Kind_Trans_Model == TURB_TRANS_MODEL::LM) {
4733-
SU2_MPI::Error("The LM transition model is under maintenance.", CURRENT_FUNCTION);
4732+
if ((Kind_Turb_Model != TURB_MODEL::SST) && Kind_Trans_Model == TURB_TRANS_MODEL::LM) {
4733+
SU2_MPI::Error("LM transition model currently only available in combination with SST turbulence model!", CURRENT_FUNCTION);
47344734
}
47354735

47364736
if(Turb_Fixed_Values && !OptionIsSet("TURB_FIXED_VALUES_DOMAIN")){
@@ -6047,6 +6047,10 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
60476047
}
60486048
cout << "." << endl;
60496049
break;
6050+
}
6051+
switch (Kind_Trans_Model) {
6052+
case TURB_TRANS_MODEL::NONE: break;
6053+
case TURB_TRANS_MODEL::LM: cout << "Transition model: Langtry and Menter's 4 equation model (2009)" << endl; break;
60506054
}
60516055
cout << "Hybrid RANS/LES: ";
60526056
switch (Kind_HybridRANSLES) {

SU2_CFD/include/drivers/CDriver.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,12 @@ class CDriver {
221221
void InstantiateTurbulentNumerics(unsigned short nVar_Turb, int offset, const CConfig *config,
222222
const CSolver* turb_solver, CNumerics ****&numerics) const;
223223

224+
/*!
225+
* \brief Helper to instantiate transition numerics specialized for different flow solvers.
226+
*/
227+
template <class FlowIndices>
228+
void InstantiateTransitionNumerics(unsigned short nVar_Trans, int offset, const CConfig *config,
229+
const CSolver* trans_solver, CNumerics ****&numerics) const;
224230
/*!
225231
* \brief Helper to instantiate species transport numerics specialized for different flow solvers.
226232
*/

SU2_CFD/include/numerics/CNumerics.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ class CNumerics {
8282
turb_ke_i, /*!< \brief Turbulent kinetic energy at point i. */
8383
turb_ke_j; /*!< \brief Turbulent kinetic energy at point j. */
8484
su2double
85+
intermittency_eff_i; /*!< \brief effective intermittency at point i. */
86+
su2double
8587
Pressure_i, /*!< \brief Pressure at point i. */
8688
Pressure_j; /*!< \brief Pressure at point j. */
8789
su2double
@@ -698,6 +700,14 @@ class CNumerics {
698700
*/
699701
virtual void SetCrossDiff(su2double val_CDkw_i) {/* empty */};
700702

703+
/*!
704+
* \brief Set the value of the effective intermittency for the LM model.
705+
* \param[in] intermittency_eff_i - Value of the effective intermittency at point i.
706+
*/
707+
void SetIntermittencyEff(su2double val_intermittency_eff_i) {
708+
intermittency_eff_i = val_intermittency_eff_i;
709+
}
710+
701711
/*!
702712
* \brief Set the gradient of the auxiliary variables.
703713
* \param[in] val_auxvar_grad_i - Gradient of the auxiliary variable at point i.

SU2_CFD/include/numerics/transition.hpp

Lines changed: 0 additions & 252 deletions
This file was deleted.

0 commit comments

Comments
 (0)