From ad2555bc2190aabb6744217f1e39f5934f928838 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?=
 <“katrin.bistreck@tuhh.de”>
Date: Mon, 14 Apr 2025 11:11:18 +0200
Subject: [PATCH 1/3] Interrupt SAR plot loop if max_ma is exceeded

---
 .../src/standard_mission/output/standard_mission_output.cpp  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
index bce9ee4d..da3714a5 100644
--- a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
+++ b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
@@ -1,6 +1,6 @@
 /*
  * UNICADO - UNIversity Conceptual Aircraft Design and Optimization
- * 
+ *
  * Copyright (C) 2025 UNICADO consortium
  *
  * This program is free software: you can redistribute it and/or modify
@@ -287,7 +287,8 @@ void StandardMissionOutput::generate_SAR_plot_data() {
         double acc(10e-5);
         // Temporarily issue exit when CL_max is exceeded
         my_mission_ptr->aero.switchOnReqSwitch();
-        for (double Ma(my_mission_ptr->mission_file->desired_cruise_speed - 0.04); Ma <= (my_mission_ptr->mission_file->desired_cruise_speed + 0.04); Ma += 0.02) {
+        for (double Ma(my_mission_ptr->mission_file->desired_cruise_speed - 0.04); Ma <= my_mission_ptr->mission_file->desired_cruise_speed + 0.04; Ma += 0.02) {
+            if (Ma > my_mission_ptr->max_operating_mach) break; // avoid exceeding max_operating_mach
             SAR_mach.push_back(Ma);
             for (double aircraft_mass(0.5 * my_mission_ptr->MTOM); aircraft_mass <= my_mission_ptr->MTOM; aircraft_mass += 0.5 * my_mission_ptr->MTOM / weightSteps) {
                 if ((Ma - (my_mission_ptr->mission_file->desired_cruise_speed - 0.04)) < acc) {
-- 
GitLab


From 3c6635db44984f2638723a1adb126e0011dbd6a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?=
 <“katrin.bistreck@tuhh.de”>
Date: Mon, 14 Apr 2025 11:24:59 +0200
Subject: [PATCH 2/3] Add brackets again

---
 .../src/standard_mission/output/standard_mission_output.cpp     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
index da3714a5..e59f3356 100644
--- a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
+++ b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
@@ -287,7 +287,7 @@ void StandardMissionOutput::generate_SAR_plot_data() {
         double acc(10e-5);
         // Temporarily issue exit when CL_max is exceeded
         my_mission_ptr->aero.switchOnReqSwitch();
-        for (double Ma(my_mission_ptr->mission_file->desired_cruise_speed - 0.04); Ma <= my_mission_ptr->mission_file->desired_cruise_speed + 0.04; Ma += 0.02) {
+        for (double Ma(my_mission_ptr->mission_file->desired_cruise_speed - 0.04); Ma <= (my_mission_ptr->mission_file->desired_cruise_speed + 0.04); Ma += 0.02) {
             if (Ma > my_mission_ptr->max_operating_mach) break; // avoid exceeding max_operating_mach
             SAR_mach.push_back(Ma);
             for (double aircraft_mass(0.5 * my_mission_ptr->MTOM); aircraft_mass <= my_mission_ptr->MTOM; aircraft_mass += 0.5 * my_mission_ptr->MTOM / weightSteps) {
-- 
GitLab


From 58458fcc014fad9161725742b4944ebd910cf657 Mon Sep 17 00:00:00 2001
From: kbistreck <katrin-bistreck@gmx.de>
Date: Thu, 24 Apr 2025 13:28:26 +0200
Subject: [PATCH 3/3] Apply 2 suggestion(s) to 1 file(s)

Co-authored-by: gPauls-TUHH <gerrit.pauls@tuhh.de>
---
 .../standard_mission/output/standard_mission_output.cpp    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
index e59f3356..715d3adb 100644
--- a/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
+++ b/mission_analysis/src/standard_mission/output/standard_mission_output.cpp
@@ -288,7 +288,11 @@ void StandardMissionOutput::generate_SAR_plot_data() {
         // Temporarily issue exit when CL_max is exceeded
         my_mission_ptr->aero.switchOnReqSwitch();
         for (double Ma(my_mission_ptr->mission_file->desired_cruise_speed - 0.04); Ma <= (my_mission_ptr->mission_file->desired_cruise_speed + 0.04); Ma += 0.02) {
-            if (Ma > my_mission_ptr->max_operating_mach) break; // avoid exceeding max_operating_mach
+            bool loop_breaker(false);
+            if (Ma > my_mission_ptr->max_operating_mach) { // set max_operating_mach when its exceeded or approached
+                Ma = my_mission_ptr->max_operating_mach;
+                loop_breaker = true; // Stop the loop if max_operating_mach is reached
+            }
             SAR_mach.push_back(Ma);
             for (double aircraft_mass(0.5 * my_mission_ptr->MTOM); aircraft_mass <= my_mission_ptr->MTOM; aircraft_mass += 0.5 * my_mission_ptr->MTOM / weightSteps) {
                 if ((Ma - (my_mission_ptr->mission_file->desired_cruise_speed - 0.04)) < acc) {
@@ -313,6 +317,7 @@ void StandardMissionOutput::generate_SAR_plot_data() {
                     specific_air_ranges.push_back(SAR_tmp);
                 }
             }
+        if (loop_breaker) break; // max_operating_mach reached -> break
         }
     }
     plot.close();
-- 
GitLab