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 bce9ee4d6e71f1817f57f2046d5aaf455d8dfe52..715d3adbe82c10bf1e48a837d3d9decd4fda1d1c 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 @@ -288,6 +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) { + 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) { @@ -312,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();