@@ -1076,7 +1076,7 @@ void CConfig::SetConfig_Options() {
10761076 /* !\brief MATH_PROBLEM \n DESCRIPTION: Mathematical problem \n Options: DIRECT, ADJOINT \ingroup Config*/
10771077 addMathProblemOption (" MATH_PROBLEM" , ContinuousAdjoint, false , DiscreteAdjoint, discAdjDefault, Restart_Flow, discAdjDefault);
10781078 /* !\brief KIND_TURB_MODEL \n DESCRIPTION: Specify turbulence model \n Options: see \link Turb_Model_Map \endlink \n DEFAULT: NO_TURB_MODEL \ingroup Config*/
1079- addEnumOption (" KIND_TURB_MODEL" , Kind_Turb_Model, Turb_Model_Map, NO_TURB_MODEL );
1079+ addEnumOption (" KIND_TURB_MODEL" , Kind_Turb_Model, Turb_Model_Map, TURB_MODEL::NONE );
10801080 /* !\brief KIND_TRANS_MODEL \n DESCRIPTION: Specify transition model OPTIONS: see \link Trans_Model_Map \endlink \n DEFAULT: NO_TRANS_MODEL \ingroup Config*/
10811081 addEnumOption (" KIND_TRANS_MODEL" , Kind_Trans_Model, Trans_Model_Map, NO_TRANS_MODEL);
10821082
@@ -1223,10 +1223,20 @@ void CConfig::SetConfig_Options() {
12231223 addDoubleOption (" PRANDTL_LAM" , Prandtl_Lam, 0.72 );
12241224 /* !\brief PRANDTL_TURB \n DESCRIPTION: Turbulent Prandtl number (0.9 (air), only for compressible flows) \n DEFAULT 0.90 \ingroup Config*/
12251225 addDoubleOption (" PRANDTL_TURB" , Prandtl_Turb, 0.90 );
1226- /* !\brief WALLMODELKAPPA \n DESCRIPTION: von Karman constant used for the wall model \n DEFAULT 0.41 \ingroup Config*/
1227- addDoubleOption (" WALLMODELKAPPA" , wallModelKappa, 0.41 );
1228- /* !\brief WALLMODELB \n DESCRIPTION: constant B used for the wall model \n DEFAULT 5.0 \ingroup Config*/
1229- addDoubleOption (" WALLMODELB" , wallModelB, 5.5 );
1226+
1227+ /* --- Options related to wall models. ---*/
1228+
1229+ /* !\brief WALLMODEL_KAPPA \n DESCRIPTION: von Karman constant used for the wall model \n DEFAULT 0.41 \ingroup Config*/
1230+ addDoubleOption (" WALLMODEL_KAPPA" , wallModel_Kappa, 0.41 );
1231+ /* !\brief WALLMODEL_MAXITER \n DESCRIPTION: Max iterations used for the wall model \n DEFAULT 200 \ingroup Config*/
1232+ addUnsignedShortOption (" WALLMODEL_MAXITER" , wallModel_MaxIter, 200 );
1233+ /* !\brief WALLMODEL_RELFAC \n DESCRIPTION: Relaxation factor used for the wall model \n DEFAULT 0.5 \ingroup Config*/
1234+ addDoubleOption (" WALLMODEL_RELFAC" , wallModel_RelFac, 0.5 );
1235+ /* !\brief WALLMODEL_MINYPLUS \n DESCRIPTION: lower limit for Y+ used for the wall model \n DEFAULT 5.0 \ingroup Config*/
1236+ addDoubleOption (" WALLMODEL_MINYPLUS" , wallModel_MinYplus, 5.0 );
1237+ /* !\brief WALLMODEL_B \n DESCRIPTION: constant B used for the wall model \n DEFAULT 5.5 \ingroup Config*/
1238+ addDoubleOption (" WALLMODEL_B" , wallModel_B, 5.5 );
1239+
12301240 /* !\brief BULK_MODULUS \n DESCRIPTION: Value of the Bulk Modulus \n DEFAULT 1.42E5 \ingroup Config*/
12311241 addDoubleOption (" BULK_MODULUS" , Bulk_Modulus, 1.42E5 );
12321242 /* DESCRIPTION: Epsilon^2 multipier in Beta calculation for incompressible preconditioner. */
@@ -3273,16 +3283,16 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
32733283 }
32743284 }
32753285
3276- if (Kind_Solver == NAVIER_STOKES && Kind_Turb_Model != NONE){
3286+ if (Kind_Solver == NAVIER_STOKES && Kind_Turb_Model != TURB_MODEL:: NONE){
32773287 SU2_MPI::Error (" KIND_TURB_MODEL must be NONE if SOLVER= NAVIER_STOKES" , CURRENT_FUNCTION);
32783288 }
3279- if (Kind_Solver == INC_NAVIER_STOKES && Kind_Turb_Model != NONE){
3289+ if (Kind_Solver == INC_NAVIER_STOKES && Kind_Turb_Model != TURB_MODEL:: NONE){
32803290 SU2_MPI::Error (" KIND_TURB_MODEL must be NONE if SOLVER= INC_NAVIER_STOKES" , CURRENT_FUNCTION);
32813291 }
3282- if (Kind_Solver == RANS && Kind_Turb_Model == NONE){
3292+ if (Kind_Solver == RANS && Kind_Turb_Model == TURB_MODEL:: NONE){
32833293 SU2_MPI::Error (" A turbulence model must be specified with KIND_TURB_MODEL if SOLVER= RANS" , CURRENT_FUNCTION);
32843294 }
3285- if (Kind_Solver == INC_RANS && Kind_Turb_Model == NONE){
3295+ if (Kind_Solver == INC_RANS && Kind_Turb_Model == TURB_MODEL:: NONE){
32863296 SU2_MPI::Error (" A turbulence model must be specified with KIND_TURB_MODEL if SOLVER= INC_RANS" , CURRENT_FUNCTION);
32873297 }
32883298
@@ -3295,11 +3305,18 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
32953305 if (Kind_WallFunctions[iMarker] != WALL_FUNCTIONS::NONE)
32963306 Wall_Functions = true ;
32973307
3298- if ((Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::ADAPTIVE_FUNCTION) || (Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::SCALABLE_FUNCTION)
3299- || (Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::NONEQUILIBRIUM_MODEL))
3300-
3308+ if ((Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::ADAPTIVE_FUNCTION) ||
3309+ (Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::SCALABLE_FUNCTION) ||
3310+ (Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::NONEQUILIBRIUM_MODEL))
33013311 SU2_MPI::Error (string (" For RANS problems, use NONE, STANDARD_WALL_FUNCTION or EQUILIBRIUM_WALL_MODEL.\n " ), CURRENT_FUNCTION);
33023312
3313+ if (Kind_WallFunctions[iMarker] == WALL_FUNCTIONS::STANDARD_FUNCTION) {
3314+ if (!((Kind_Solver == RANS) || (Kind_Solver == INC_RANS)))
3315+ SU2_MPI::Error (string (" Wall model STANDARD_FUNCTION only available for RANS or INC_RANS.\n " ), CURRENT_FUNCTION);
3316+ if (nRough_Wall != 0 )
3317+ SU2_MPI::Error (string (" Wall model STANDARD_FUNCTION and WALL_ROUGHNESS migh not be compatible. Checking required!\n " ), CURRENT_FUNCTION);
3318+ }
3319+
33033320 }
33043321 }
33053322
@@ -4043,18 +4060,18 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
40434060 if (MGCycle == FULLMG_CYCLE) FinestMesh = nMGLevels;
40444061
40454062 if ((Kind_Solver == NAVIER_STOKES) &&
4046- (Kind_Turb_Model != NONE))
4063+ (Kind_Turb_Model != TURB_MODEL:: NONE))
40474064 Kind_Solver = RANS;
40484065
40494066 if ((Kind_Solver == INC_NAVIER_STOKES) &&
4050- (Kind_Turb_Model != NONE))
4067+ (Kind_Turb_Model != TURB_MODEL:: NONE))
40514068 Kind_Solver = INC_RANS;
40524069
40534070 if (Kind_Solver == EULER ||
40544071 Kind_Solver == INC_EULER ||
40554072 Kind_Solver == NEMO_EULER ||
40564073 Kind_Solver == FEM_EULER)
4057- Kind_Turb_Model = NONE;
4074+ Kind_Turb_Model = TURB_MODEL:: NONE;
40584075
40594076 Kappa_2nd_Flow = jst_coeff[0 ];
40604077 Kappa_4th_Flow = jst_coeff[1 ];
@@ -4435,7 +4452,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
44354452 for (int i=0 ; i<7 ; ++i) eng_cyl[i] /= 12.0 ;
44364453 }
44374454
4438- if ((Kind_Turb_Model != SA) && (Kind_Trans_Model == BC)){
4455+ if ((Kind_Turb_Model != TURB_MODEL:: SA) && (Kind_Trans_Model == BC)){
44394456 SU2_MPI::Error (" BC transition model currently only available in combination with SA turbulence model!" , CURRENT_FUNCTION);
44404457 }
44414458
@@ -4533,7 +4550,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
45334550
45344551 /* --- Throw error if UQ used for any turbulence model other that SST --- */
45354552
4536- if (Kind_Solver == RANS && Kind_Turb_Model != SST && Kind_Turb_Model != SST_SUST && using_uq){
4553+ if (Kind_Solver == RANS && Kind_Turb_Model != TURB_MODEL:: SST && Kind_Turb_Model != TURB_MODEL:: SST_SUST && using_uq){
45374554 SU2_MPI::Error (" UQ capabilities only implemented for NAVIER_STOKES solver SST turbulence model" , CURRENT_FUNCTION);
45384555 }
45394556
@@ -5620,13 +5637,14 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
56205637 if (Kind_Regime == ENUM_REGIME::INCOMPRESSIBLE) cout << " Incompressible RANS equations." << endl;
56215638 cout << " Turbulence model: " ;
56225639 switch (Kind_Turb_Model) {
5623- case SA: cout << " Spalart Allmaras" << endl; break ;
5624- case SA_NEG: cout << " Negative Spalart Allmaras" << endl; break ;
5625- case SA_E: cout << " Edwards Spalart Allmaras" << endl; break ;
5626- case SA_COMP: cout << " Compressibility Correction Spalart Allmaras" << endl; break ;
5627- case SA_E_COMP: cout << " Compressibility Correction Edwards Spalart Allmaras" << endl; break ;
5628- case SST: cout << " Menter's SST" << endl; break ;
5629- case SST_SUST: cout << " Menter's SST with sustaining terms" << endl; break ;
5640+ case TURB_MODEL::NONE: break ;
5641+ case TURB_MODEL::SA: cout << " Spalart Allmaras" << endl; break ;
5642+ case TURB_MODEL::SA_NEG: cout << " Negative Spalart Allmaras" << endl; break ;
5643+ case TURB_MODEL::SA_E: cout << " Edwards Spalart Allmaras" << endl; break ;
5644+ case TURB_MODEL::SA_COMP: cout << " Compressibility Correction Spalart Allmaras" << endl; break ;
5645+ case TURB_MODEL::SA_E_COMP: cout << " Compressibility Correction Edwards Spalart Allmaras" << endl; break ;
5646+ case TURB_MODEL::SST: cout << " Menter's SST" << endl; break ;
5647+ case TURB_MODEL::SST_SUST: cout << " Menter's SST with sustaining terms" << endl; break ;
56305648 }
56315649 if (QCR) cout << " Using Quadratic Constitutive Relation, 2000 version (QCR2000)" << endl;
56325650 if (Kind_Trans_Model == BC) cout << " Using the revised BC transition model (2020)" << endl;
@@ -6456,8 +6474,8 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
64566474 break ;
64576475 case EULER_IMPLICIT:
64586476 cout << " Euler implicit method for the flow equations." << endl;
6459- if ((Kind_Solver == NEMO_EULER) || (Kind_Solver == NEMO_NAVIER_STOKES) )
6460- SU2_MPI::Error (" Implicit time scheme is not working with NEMO. Use EULER_EXPLICIT." , CURRENT_FUNCTION);
6477+ if (Kind_Solver == NEMO_NAVIER_STOKES)
6478+ SU2_MPI::Error (" Implicit time scheme is not working with NEMO for viscous problems . Use EULER_EXPLICIT." , CURRENT_FUNCTION);
64616479 switch (Kind_Linear_Solver) {
64626480 case BCGSTAB:
64636481 case FGMRES:
0 commit comments