@@ -910,7 +910,8 @@ void CConfig::SetPointersNull(void) {
910910 ActDisk_ReverseMassFlow = nullptr ; Surface_MassFlow = nullptr ; Surface_Mach = nullptr ;
911911 Surface_Temperature = nullptr ; Surface_Pressure = nullptr ; Surface_Density = nullptr ; Surface_Enthalpy = nullptr ;
912912 Surface_NormalVelocity = nullptr ; Surface_TotalTemperature = nullptr ; Surface_TotalPressure = nullptr ; Surface_PressureDrop = nullptr ;
913- Surface_DC60 = nullptr ; Surface_IDC = nullptr ;
913+ Surface_DC60 = nullptr ; Surface_IDC = nullptr ;
914+ Surface_Species_Variance = nullptr ; Surface_Species_0 = nullptr ;
914915
915916 Outlet_MassFlow = nullptr ; Outlet_Density = nullptr ; Outlet_Area = nullptr ;
916917
@@ -3530,14 +3531,17 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
35303531 case SURFACE_MOM_DISTORTION:
35313532 case SURFACE_SECOND_OVER_UNIFORM:
35323533 case SURFACE_PRESSURE_DROP:
3534+ case SURFACE_SPECIES_0:
3535+ case SURFACE_SPECIES_VARIANCE:
35333536 case CUSTOM_OBJFUNC:
35343537 if (Kind_ObjFunc[iObj] != Obj_0) {
35353538 SU2_MPI::Error (string (" The following objectives can only be used for the first surface in a multi-objective \n " )+
35363539 string (" problem or as a single objective applied to multiple monitoring markers:\n " )+
35373540 string (" INVERSE_DESIGN_PRESSURE, INVERSE_DESIGN_HEATFLUX, THRUST_COEFFICIENT, TORQUE_COEFFICIENT\n " )+
35383541 string (" FIGURE_OF_MERIT, SURFACE_TOTAL_PRESSURE, SURFACE_STATIC_PRESSURE, SURFACE_MASSFLOW\n " )+
35393542 string (" SURFACE_UNIFORMITY, SURFACE_SECONDARY, SURFACE_MOM_DISTORTION, SURFACE_SECOND_OVER_UNIFORM\n " )+
3540- string (" SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, CUSTOM_OBJFUNC.\n " ), CURRENT_FUNCTION);
3543+ string (" SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, SURFACE_SPECIES_0\n " )+
3544+ string (" SURFACE_SPECIES_VARIANCE, CUSTOM_OBJFUNC.\n " ), CURRENT_FUNCTION);
35413545 }
35423546 break ;
35433547 default :
@@ -5138,13 +5142,12 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
51385142 else {monoatomic = false ;}
51395143
51405144 /* --- Set number of Turbulence Variables. ---*/
5141- switch ( Kind_Turb_Model) {
5142- case TURB_MODEL ::NONE:
5145+ switch ( TurbModelFamily ( Kind_Turb_Model) ) {
5146+ case TURB_FAMILY ::NONE:
51435147 nTurbVar = 0 ; break ;
5144- case TURB_MODEL::SA: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP: case TURB_MODEL::SA_E:
5145- case TURB_MODEL::SA_NEG:
5148+ case TURB_FAMILY::SA:
51465149 nTurbVar = 1 ; break ;
5147- case TURB_MODEL::SST: case TURB_MODEL::SST_SUST :
5150+ case TURB_FAMILY::KW :
51485151 nTurbVar = 2 ; break ;
51495152 }
51505153
@@ -5160,6 +5163,15 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
51605163 Kind_Solver != MAIN_SOLVER::DISC_ADJ_RANS)
51615164 SU2_MPI::Error (" Species transport currently only avaialble for compressible and incompressible flow." , CURRENT_FUNCTION);
51625165
5166+ /* --- Species specific OF currently can only handle one entry in Marker_Analyze. ---*/
5167+ for (unsigned short iObj = 0 ; iObj < nObj; iObj++) {
5168+ if ((Kind_ObjFunc[iObj] == SURFACE_SPECIES_0 ||
5169+ Kind_ObjFunc[iObj] == SURFACE_SPECIES_VARIANCE) &&
5170+ nMarker_Analyze > 1 ) {
5171+ SU2_MPI::Error (" SURFACE_SPECIES_0 and SURFACE_SPECIES_VARIANCE currently can only handle one entry to MARKER_ANALYZE." , CURRENT_FUNCTION);
5172+ }
5173+ }
5174+
51635175 // For now, do not allow axisymmetric simulations
51645176 if (Axisymmetric) SU2_MPI::Error (" Species transport currently not possible with axissymmetric flow." , CURRENT_FUNCTION);
51655177
@@ -5335,6 +5347,8 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) {
53355347 Surface_TotalTemperature = new su2double[nMarker_Analyze] ();
53365348 Surface_TotalPressure = new su2double[nMarker_Analyze] ();
53375349 Surface_PressureDrop = new su2double[nMarker_Analyze] ();
5350+ Surface_Species_0 = new su2double[nMarker_Analyze] ();
5351+ Surface_Species_Variance = new su2double[nMarker_Analyze] ();
53385352 Surface_DC60 = new su2double[nMarker_Analyze] ();
53395353 Surface_IDC = new su2double[nMarker_Analyze] ();
53405354 Surface_IDC_Mach = new su2double[nMarker_Analyze] ();
@@ -5862,7 +5876,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
58625876 break ;
58635877 case MAIN_SOLVER::MULTIPHYSICS:
58645878 cout << " Multiphysics solver" << endl;
5865- break ;
5879+ break ;
58665880 default :
58675881 SU2_MPI::Error (" No valid solver was chosen" , CURRENT_FUNCTION);
58685882
@@ -7877,6 +7891,8 @@ CConfig::~CConfig(void) {
78777891 delete[] Surface_TotalTemperature;
78787892 delete[] Surface_TotalPressure;
78797893 delete[] Surface_PressureDrop;
7894+ delete[] Surface_Species_0;
7895+ delete[] Surface_Species_Variance;
78807896 delete[] Surface_DC60;
78817897 delete[] Surface_IDC;
78827898 delete[] Surface_IDC_Mach;
@@ -8223,6 +8239,8 @@ string CConfig::GetObjFunc_Extension(string val_filename) const {
82238239 case SURFACE_MOM_DISTORTION: AdjExt = " _distort" ; break ;
82248240 case SURFACE_SECOND_OVER_UNIFORM: AdjExt = " _sou" ; break ;
82258241 case SURFACE_PRESSURE_DROP: AdjExt = " _dp" ; break ;
8242+ case SURFACE_SPECIES_0: AdjExt = " _avgspec0" ; break ;
8243+ case SURFACE_SPECIES_VARIANCE: AdjExt = " _specvar" ; break ;
82268244 case SURFACE_MACH: AdjExt = " _mach" ; break ;
82278245 case CUSTOM_OBJFUNC: AdjExt = " _custom" ; break ;
82288246 case KINETIC_ENERGY_LOSS: AdjExt = " _ke" ; break ;
@@ -8452,7 +8470,7 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
84528470 break ;
84538471
84548472 default :
8455- break ;
8473+ break ;
84568474 }
84578475}
84588476
0 commit comments