@@ -1029,7 +1029,6 @@ void COutput::SetHistoryFile_Output(const CConfig *config) {
10291029 unsigned short iField_Output = 0 ,
10301030 iReqField = 0 ,
10311031 iMarker = 0 ;
1032- stringstream out;
10331032
10341033 for (iField_Output = 0 ; iField_Output < historyOutput_List.size (); iField_Output++){
10351034 const string &fieldIdentifier = historyOutput_List[iField_Output];
@@ -1069,44 +1068,48 @@ void COutput::SetScreen_Header(const CConfig *config) {
10691068
10701069void COutput::SetScreen_Output (const CConfig *config) {
10711070
1072- string RequestedField;
1073-
1074- for (unsigned short iReqField = 0 ; iReqField < nRequestedScreenFields; iReqField++){
1075- stringstream out;
1076- RequestedField = requestedScreenFields[iReqField];
1077- if (historyOutput_Map.count (RequestedField) > 0 ){
1078- switch (historyOutput_Map.at (RequestedField).screenFormat ) {
1071+ for (const auto & RequestedField : requestedScreenFields) {
1072+ const auto it1 = historyOutput_Map.find (RequestedField);
1073+ if (it1 != historyOutput_Map.end ()) {
1074+ const auto & field = it1->second ;
1075+ stringstream out;
1076+ switch (field.screenFormat ) {
10791077 case ScreenOutputFormat::INTEGER:
1080- PrintingToolbox::PrintScreenInteger (out, SU2_TYPE::Int (historyOutput_Map. at (RequestedField) .value ), fieldWidth);
1078+ PrintingToolbox::PrintScreenInteger (out, SU2_TYPE::Int (field .value ), fieldWidth);
10811079 break ;
10821080 case ScreenOutputFormat::FIXED:
1083- PrintingToolbox::PrintScreenFixed (out, historyOutput_Map. at (RequestedField) .value , fieldWidth);
1081+ PrintingToolbox::PrintScreenFixed (out, field .value , fieldWidth);
10841082 break ;
10851083 case ScreenOutputFormat::SCIENTIFIC:
1086- PrintingToolbox::PrintScreenScientific (out, historyOutput_Map. at (RequestedField) .value , fieldWidth);
1084+ PrintingToolbox::PrintScreenScientific (out, field .value , fieldWidth);
10871085 break ;
10881086 case ScreenOutputFormat::PERCENT:
1089- PrintingToolbox::PrintScreenPercent (out, historyOutput_Map[RequestedField] .value , fieldWidth);
1087+ PrintingToolbox::PrintScreenPercent (out, field .value , fieldWidth);
10901088 break ;
10911089 }
1092- }
1093- if (historyOutputPerSurface_Map.count (RequestedField) > 0 ){
1094- switch (historyOutputPerSurface_Map.at (RequestedField)[0 ].screenFormat ) {
1095- case ScreenOutputFormat::INTEGER:
1096- PrintingToolbox::PrintScreenInteger (out, SU2_TYPE::Int (historyOutputPerSurface_Map.at (RequestedField)[0 ].value ), fieldWidth);
1097- break ;
1098- case ScreenOutputFormat::FIXED:
1099- PrintingToolbox::PrintScreenFixed (out, historyOutputPerSurface_Map.at (RequestedField)[0 ].value , fieldWidth);
1100- break ;
1101- case ScreenOutputFormat::SCIENTIFIC:
1102- PrintingToolbox::PrintScreenScientific (out, historyOutputPerSurface_Map.at (RequestedField)[0 ].value , fieldWidth);
1103- break ;
1104- case ScreenOutputFormat::PERCENT:
1105- PrintingToolbox::PrintScreenPercent (out, historyOutputPerSurface_Map[RequestedField][0 ].value , fieldWidth);
1106- break ;
1090+ (*convergenceTable) << out.str ();
1091+ }
1092+ const auto it2 = historyOutputPerSurface_Map.find (RequestedField);
1093+ if (it2 != historyOutputPerSurface_Map.end ()) {
1094+ for (const auto & field : it2->second ) {
1095+ stringstream out;
1096+ switch (field.screenFormat ) {
1097+ case ScreenOutputFormat::INTEGER:
1098+ PrintingToolbox::PrintScreenInteger (out, SU2_TYPE::Int (field.value ), fieldWidth);
1099+ break ;
1100+ case ScreenOutputFormat::FIXED:
1101+ PrintingToolbox::PrintScreenFixed (out, field.value , fieldWidth);
1102+ break ;
1103+ case ScreenOutputFormat::SCIENTIFIC:
1104+ PrintingToolbox::PrintScreenScientific (out, field.value , fieldWidth);
1105+ break ;
1106+ case ScreenOutputFormat::PERCENT:
1107+ PrintingToolbox::PrintScreenPercent (out, field.value , fieldWidth);
1108+ break ;
1109+ }
1110+ (*convergenceTable) << out.str ();
11071111 }
11081112 }
1109- (*convergenceTable) << out.str ();
11101113 }
11111114 SetAdditionalScreenOutput (config);
11121115}
@@ -1209,7 +1212,7 @@ void COutput::PrepareHistoryFile(CConfig *config){
12091212
12101213 /* --- Open the history file ---*/
12111214
1212- histFile.open (historyFilename. c_str () , ios::out);
1215+ histFile.open (historyFilename, ios::out);
12131216
12141217 /* --- Create and format the history file table ---*/
12151218
@@ -1225,23 +1228,26 @@ void COutput::PrepareHistoryFile(CConfig *config){
12251228
12261229}
12271230
1228- void COutput::CheckHistoryOutput (){
1229-
1231+ void COutput::CheckHistoryOutput () {
12301232
12311233 /* --- Set screen convergence output header and remove unavailable fields ---*/
12321234
1233- string requestedField;
12341235 vector<string> FieldsToRemove;
12351236 vector<bool > FoundField (nRequestedHistoryFields, false );
12361237
1237- for (unsigned short iReqField = 0 ; iReqField < nRequestedScreenFields; iReqField++){
1238- requestedField = requestedScreenFields[iReqField];
1239- if (historyOutput_Map.count (requestedField) > 0 ){
1240- convergenceTable->AddColumn (historyOutput_Map.at (requestedField).fieldName , fieldWidth);
1238+ for (unsigned short iReqField = 0 ; iReqField < nRequestedScreenFields; iReqField++) {
1239+ const auto & requestedField = requestedScreenFields[iReqField];
1240+ const auto it1 = historyOutput_Map.find (requestedField);
1241+ if (it1 != historyOutput_Map.end ()) {
1242+ convergenceTable->AddColumn (it1->second .fieldName , fieldWidth);
1243+ }
1244+ const auto it2 = historyOutputPerSurface_Map.find (requestedField);
1245+ if (it2 != historyOutputPerSurface_Map.end ()) {
1246+ for (const auto & field : it2->second ) {
1247+ convergenceTable->AddColumn (field.fieldName , fieldWidth);
1248+ }
12411249 }
1242- else if (historyOutputPerSurface_Map.count (requestedField) > 0 ){
1243- convergenceTable->AddColumn (historyOutputPerSurface_Map.at (requestedField)[0 ].fieldName , fieldWidth);
1244- }else {
1250+ if (it1 == historyOutput_Map.end () && it2 == historyOutputPerSurface_Map.end ()) {
12451251 FieldsToRemove.push_back (requestedField);
12461252 }
12471253 }
@@ -1253,8 +1259,9 @@ void COutput::CheckHistoryOutput(){
12531259 if (iReqField == 0 ){
12541260 cout << " Info: Ignoring the following screen output fields:" << endl;
12551261 cout << " " ;
1256- } cout << FieldsToRemove[iReqField];
1257- if (iReqField != FieldsToRemove.size ()-1 ){
1262+ }
1263+ cout << FieldsToRemove[iReqField];
1264+ if (iReqField != FieldsToRemove.size ()-1 ) {
12581265 cout << " , " ;
12591266 } else {
12601267 cout << endl;
@@ -1269,7 +1276,6 @@ void COutput::CheckHistoryOutput(){
12691276 if (rank == MASTER_NODE){
12701277 cout <<" Screen output fields: " ;
12711278 for (unsigned short iReqField = 0 ; iReqField < nRequestedScreenFields; iReqField++){
1272- requestedField = requestedScreenFields[iReqField];
12731279 cout << requestedScreenFields[iReqField];
12741280 if (iReqField != nRequestedScreenFields - 1 ) cout << " , " ;
12751281 }
@@ -1286,7 +1292,7 @@ void COutput::CheckHistoryOutput(){
12861292 if (historyOutput_Map.count (fieldReference) > 0 ){
12871293 const HistoryOutputField &field = historyOutput_Map.at (fieldReference);
12881294 for (unsigned short iReqField = 0 ; iReqField < nRequestedHistoryFields; iReqField++){
1289- requestedField = requestedHistoryFields[iReqField];
1295+ const auto & requestedField = requestedHistoryFields[iReqField];
12901296 if (requestedField == field.outputGroup ){
12911297 FoundField[iReqField] = true ;
12921298 }
@@ -1296,11 +1302,10 @@ void COutput::CheckHistoryOutput(){
12961302
12971303 for (unsigned short iField_Output = 0 ; iField_Output < historyOutputPerSurface_List.size (); iField_Output++){
12981304 const string &fieldReference = historyOutputPerSurface_List[iField_Output];
1299- if (historyOutputPerSurface_Map.count (fieldReference) > 0 ){
1300- for (unsigned short iMarker = 0 ; iMarker < historyOutputPerSurface_Map.at (fieldReference).size (); iMarker++){
1301- const HistoryOutputField &Field = historyOutputPerSurface_Map.at (fieldReference)[iMarker];
1305+ if (historyOutputPerSurface_Map.count (fieldReference) > 0 ) {
1306+ for (const auto &Field : historyOutputPerSurface_Map.at (fieldReference)) {
13021307 for (unsigned short iReqField = 0 ; iReqField < nRequestedHistoryFields; iReqField++){
1303- requestedField = requestedHistoryFields[iReqField];
1308+ const auto & requestedField = requestedHistoryFields[iReqField];
13041309 if (requestedField == Field.outputGroup ){
13051310 FoundField[iReqField] = true ;
13061311 }
@@ -1322,7 +1327,8 @@ void COutput::CheckHistoryOutput(){
13221327 if (iReqField == 0 ){
13231328 cout << " Info: Ignoring the following history output groups:" << endl;
13241329 cout << " " ;
1325- } cout << FieldsToRemove[iReqField];
1330+ }
1331+ cout << FieldsToRemove[iReqField];
13261332 if (iReqField != FieldsToRemove.size ()-1 ){
13271333 cout << " , " ;
13281334 } else {
@@ -1338,7 +1344,6 @@ void COutput::CheckHistoryOutput(){
13381344 if (rank == MASTER_NODE){
13391345 cout <<" History output group(s): " ;
13401346 for (unsigned short iReqField = 0 ; iReqField < nRequestedHistoryFields; iReqField++){
1341- requestedField = requestedHistoryFields[iReqField];
13421347 cout << requestedHistoryFields[iReqField];
13431348 if (iReqField != nRequestedHistoryFields - 1 ) cout << " , " ;
13441349 }
0 commit comments