@@ -911,7 +911,8 @@ void CConfig::SetPointersNull(void) {
911911 ActDisk_ReverseMassFlow = nullptr ; Surface_MassFlow = nullptr ; Surface_Mach = nullptr ;
912912 Surface_Temperature = nullptr ; Surface_Pressure = nullptr ; Surface_Density = nullptr ; Surface_Enthalpy = nullptr ;
913913 Surface_NormalVelocity = nullptr ; Surface_TotalTemperature = nullptr ; Surface_TotalPressure = nullptr ; Surface_PressureDrop = nullptr ;
914- Surface_DC60 = nullptr ; Surface_IDC = nullptr ;
914+ Surface_DC60 = nullptr ; Surface_IDC = nullptr ;
915+ Surface_Species_Variance = nullptr ; Surface_Species_0 = nullptr ;
915916
916917 Outlet_MassFlow = nullptr ; Outlet_Density = nullptr ; Outlet_Area = nullptr ;
917918
@@ -3563,14 +3564,17 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
35633564 case SURFACE_MOM_DISTORTION:
35643565 case SURFACE_SECOND_OVER_UNIFORM:
35653566 case SURFACE_PRESSURE_DROP:
3567+ case SURFACE_SPECIES_0:
3568+ case SURFACE_SPECIES_VARIANCE:
35663569 case CUSTOM_OBJFUNC:
35673570 if (Kind_ObjFunc[iObj] != Obj_0) {
35683571 SU2_MPI::Error (string (" The following objectives can only be used for the first surface in a multi-objective \n " )+
35693572 string (" problem or as a single objective applied to multiple monitoring markers:\n " )+
35703573 string (" INVERSE_DESIGN_PRESSURE, INVERSE_DESIGN_HEATFLUX, THRUST_COEFFICIENT, TORQUE_COEFFICIENT\n " )+
35713574 string (" FIGURE_OF_MERIT, SURFACE_TOTAL_PRESSURE, SURFACE_STATIC_PRESSURE, SURFACE_MASSFLOW\n " )+
35723575 string (" SURFACE_UNIFORMITY, SURFACE_SECONDARY, SURFACE_MOM_DISTORTION, SURFACE_SECOND_OVER_UNIFORM\n " )+
3573- string (" SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, CUSTOM_OBJFUNC.\n " ), CURRENT_FUNCTION);
3576+ string (" SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, SURFACE_SPECIES_0\n " )+
3577+ string (" SURFACE_SPECIES_VARIANCE, CUSTOM_OBJFUNC.\n " ), CURRENT_FUNCTION);
35743578 }
35753579 break ;
35763580 default :
@@ -5171,13 +5175,12 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
51715175 else {monoatomic = false ;}
51725176
51735177 /* --- Set number of Turbulence Variables. ---*/
5174- switch ( Kind_Turb_Model) {
5175- case TURB_MODEL ::NONE:
5178+ switch ( TurbModelFamily ( Kind_Turb_Model) ) {
5179+ case TURB_FAMILY ::NONE:
51765180 nTurbVar = 0 ; break ;
5177- case TURB_MODEL::SA: case TURB_MODEL::SA_COMP: case TURB_MODEL::SA_E_COMP: case TURB_MODEL::SA_E:
5178- case TURB_MODEL::SA_NEG:
5181+ case TURB_FAMILY::SA:
51795182 nTurbVar = 1 ; break ;
5180- case TURB_MODEL::SST: case TURB_MODEL::SST_SUST :
5183+ case TURB_FAMILY::KW :
51815184 nTurbVar = 2 ; break ;
51825185 }
51835186
@@ -5193,6 +5196,15 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
51935196 Kind_Solver != MAIN_SOLVER::DISC_ADJ_RANS)
51945197 SU2_MPI::Error (" Species transport currently only avaialble for compressible and incompressible flow." , CURRENT_FUNCTION);
51955198
5199+ /* --- Species specific OF currently can only handle one entry in Marker_Analyze. ---*/
5200+ for (unsigned short iObj = 0 ; iObj < nObj; iObj++) {
5201+ if ((Kind_ObjFunc[iObj] == SURFACE_SPECIES_0 ||
5202+ Kind_ObjFunc[iObj] == SURFACE_SPECIES_VARIANCE) &&
5203+ nMarker_Analyze > 1 ) {
5204+ SU2_MPI::Error (" SURFACE_SPECIES_0 and SURFACE_SPECIES_VARIANCE currently can only handle one entry to MARKER_ANALYZE." , CURRENT_FUNCTION);
5205+ }
5206+ }
5207+
51965208 // For now, do not allow axisymmetric simulations
51975209 if (Axisymmetric) SU2_MPI::Error (" Species transport currently not possible with axissymmetric flow." , CURRENT_FUNCTION);
51985210
@@ -5370,6 +5382,8 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) {
53705382 Surface_TotalTemperature = new su2double[nMarker_Analyze] ();
53715383 Surface_TotalPressure = new su2double[nMarker_Analyze] ();
53725384 Surface_PressureDrop = new su2double[nMarker_Analyze] ();
5385+ Surface_Species_0 = new su2double[nMarker_Analyze] ();
5386+ Surface_Species_Variance = new su2double[nMarker_Analyze] ();
53735387 Surface_DC60 = new su2double[nMarker_Analyze] ();
53745388 Surface_IDC = new su2double[nMarker_Analyze] ();
53755389 Surface_IDC_Mach = new su2double[nMarker_Analyze] ();
@@ -5905,7 +5919,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
59055919 break ;
59065920 case MAIN_SOLVER::MULTIPHYSICS:
59075921 cout << " Multiphysics solver" << endl;
5908- break ;
5922+ break ;
59095923 default :
59105924 SU2_MPI::Error (" No valid solver was chosen" , CURRENT_FUNCTION);
59115925
@@ -7940,6 +7954,8 @@ CConfig::~CConfig(void) {
79407954 delete[] Surface_TotalTemperature;
79417955 delete[] Surface_TotalPressure;
79427956 delete[] Surface_PressureDrop;
7957+ delete[] Surface_Species_0;
7958+ delete[] Surface_Species_Variance;
79437959 delete[] Surface_DC60;
79447960 delete[] Surface_IDC;
79457961 delete[] Surface_IDC_Mach;
@@ -8286,6 +8302,8 @@ string CConfig::GetObjFunc_Extension(string val_filename) const {
82868302 case SURFACE_MOM_DISTORTION: AdjExt = " _distort" ; break ;
82878303 case SURFACE_SECOND_OVER_UNIFORM: AdjExt = " _sou" ; break ;
82888304 case SURFACE_PRESSURE_DROP: AdjExt = " _dp" ; break ;
8305+ case SURFACE_SPECIES_0: AdjExt = " _avgspec0" ; break ;
8306+ case SURFACE_SPECIES_VARIANCE: AdjExt = " _specvar" ; break ;
82898307 case SURFACE_MACH: AdjExt = " _mach" ; break ;
82908308 case CUSTOM_OBJFUNC: AdjExt = " _custom" ; break ;
82918309 case KINETIC_ENERGY_LOSS: AdjExt = " _ke" ; break ;
@@ -8515,7 +8533,7 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
85158533 break ;
85168534
85178535 default :
8518- break ;
8536+ break ;
85198537 }
85208538}
85218539
0 commit comments