From d180e07836ff48a3a0956319a9aeaa57ea3c3c59 Mon Sep 17 00:00:00 2001
From: Mauco03 <marco.gaibotti@skywarder.eu>
Date: Wed, 26 Mar 2025 21:53:17 +0100
Subject: [PATCH] [handle-value-conversion] Removed externalUpdaters and
 adapted apogeeAnalysis

---
 aerodynamicsOptimization/src/OptimizationGA.m        |  4 ----
 apogeeAnalysis/mainApogeeAnalysis.m                  | 10 ++++------
 apogeeAnalysis/src/engineCutApogee.m                 |  1 -
 apogeeAnalysis/src/plotApogeeAnalysis.m              |  4 ++--
 apogeeAnalysis/src/standardApogee.m                  |  2 +-
 caAnalysis/src/initCaAnalysis.m                      |  1 -
 sensitivityAnalysis/sensitivityConfig.m              |  2 +-
 sensitivityAnalysis/src/sensitivityStochRun.m        |  6 +++---
 sensitivityAnalysis/src/stochParameters/updateData.m |  4 ----
 9 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/aerodynamicsOptimization/src/OptimizationGA.m b/aerodynamicsOptimization/src/OptimizationGA.m
index 77f02f20..9e7a828e 100644
--- a/aerodynamicsOptimization/src/OptimizationGA.m
+++ b/aerodynamicsOptimization/src/OptimizationGA.m
@@ -67,7 +67,6 @@ azCase = (360)*pi/180;
 
 wind.magnitudeParameters = ones(2,2).*magCase;
 wind.azimuthParameters = ones(2,2).*azCase;
-wind.updateAll();
 
 apogee1 = quickApogeeOnly(rocket, environment, wind, settings, wrapper);
 
@@ -76,7 +75,6 @@ azCase = (180)*pi/180;
 
 wind.magnitudeParameters = ones(2,2).*magCase;
 wind.azimuthParameters = ones(2,2).*azCase;
-wind.updateAll();
 
 apogee2 = quickApogeeOnly(rocket, environment, wind, settings, wrapper);
 
@@ -86,7 +84,6 @@ azCase = (360)*pi/180;
 
 wind.magnitudeParameters = ones(2,2).*magCase;
 wind.azimuthParameters = ones(2,2).*azCase;
-wind.updateAll();
 
 apogee3 = quickApogeeOnly(rocket, environment, wind, settings, wrapper);
 
@@ -95,7 +92,6 @@ azCase = (180)*pi/180;
 
 wind.magnitudeParameters = ones(2,2).*magCase;
 wind.azimuthParameters = ones(2,2).*azCase;
-wind.updateAll();
 
 apogee4 = quickApogeeOnly(rocket, environment, wind, settings, wrapper);
 
diff --git a/apogeeAnalysis/mainApogeeAnalysis.m b/apogeeAnalysis/mainApogeeAnalysis.m
index 49485729..8fba1605 100644
--- a/apogeeAnalysis/mainApogeeAnalysis.m
+++ b/apogeeAnalysis/mainApogeeAnalysis.m
@@ -52,14 +52,12 @@ winds(1).magnitudeDistribution = "u";
 winds(1).azimuthDistribution   = "u";
 winds(1).magnitudeParameters   = settings.cases(1).wind.magVec * ones(2, 1);
 winds(1).azimuthParameters     = settings.cases(1).wind.azVec * ones(2, 1);
-winds(1).updateAll;
 
 winds(2).altitudes = settings.cases(2).wind.altitudes;
 winds(2).magnitudeDistribution = "u";
 winds(2).azimuthDistribution   = "u";
 winds(2).magnitudeParameters   = settings.cases(2).wind.magVec * ones(2, 1);
 winds(2).azimuthParameters     = settings.cases(2).wind.azVec * ones(2, 1);
-winds(2).updateAll;
 
 % Environments
 environments = [Environment(mission, rocket.motor); Environment(mission, rocket.motor)];
@@ -70,7 +68,7 @@ environments(2).omega = settings.cases(2).omega;
 environments(2).phi   = settings.cases(2).phi;
 
 % Airbrakes
-airbrakes = [Airbrakes(mission, rocket.motor); Airbrakes(mission, rocket.motor)];
+airbrakes = [Airbrakes(mission); Airbrakes(mission)];
 airbrakes(1).enabled   = settings.cases(1).airbrakes.enabled;
 airbrakes(1).extension = settings.cases(1).airbrakes.extension;
 airbrakes(1).deltaTime = settings.cases(1).airbrakes.deltaTime;
@@ -80,7 +78,7 @@ airbrakes(2).extension = settings.cases(2).airbrakes.extension;
 airbrakes(2).deltaTime = settings.cases(2).airbrakes.deltaTime;
 
 %% MOTORS SELECTION
-if settings.analysis.isEngineCut && ~(rocket.motor.isHRE)
+if settings.analysis.isEngineCut && rocket.motor.type ~= MotorType.Hybrid
     msg="The Engine Cut Analysis can be used for HRE motors only";
     error(msg)
 end
@@ -105,8 +103,8 @@ if isempty(settings.selection.motorName)
     for i=1:size(motors, 1)
         if (motors(i).Itot > settings.selection.totalImpulseRange(1) && motors(i).Itot < settings.selection.totalImpulseRange(2) ...
                 &&  any(strcmp(motors(i).producer, settings.selection.producer)) ...
-                && ( (rocket.motor.isHRE == false) || (motors(i).ODfus == rocket.diameter) ) ...
-                && ( (rocket.motor.isHRE == false) || ((settings.selection.transient == 2) || ...
+                && ( (rocket.motor.type ~= MotorType.Hybrid) || (motors(i).ODfus == rocket.diameter) ) ...
+                && ( (rocket.motor.type ~= MotorType.Hybrid) || ((settings.selection.transient == 2) || ...
                 (settings.selection.transient == motors(i).transientFlag))))
             selectedMotors(j) = motors(i);
             j = j + 1;
diff --git a/apogeeAnalysis/src/engineCutApogee.m b/apogeeAnalysis/src/engineCutApogee.m
index 1321e849..41c24000 100644
--- a/apogeeAnalysis/src/engineCutApogee.m
+++ b/apogeeAnalysis/src/engineCutApogee.m
@@ -63,7 +63,6 @@ for i = 1:2 % highest and lowest apogee cases
 
         for l = 1:nCutOffTime
             rocket.motor.cutoffTime = timeEngineCutVect(l);
-            rocket.updateAll;
             rocket.coefficients.state.xcgTime = linspace(0, rocket.motor.cutoffTime, ...
                 length(rocket.coefficients.state.xcgTime));
             % Apogee
diff --git a/apogeeAnalysis/src/plotApogeeAnalysis.m b/apogeeAnalysis/src/plotApogeeAnalysis.m
index f0bf990a..be61a386 100644
--- a/apogeeAnalysis/src/plotApogeeAnalysis.m
+++ b/apogeeAnalysis/src/plotApogeeAnalysis.m
@@ -120,12 +120,12 @@ for i = 1:2
         % green rectangle below the target line
         if delta(1) > 0
             rectangle('Position', [xGridMin minApo (xGridMax-xGridMin) delta(1)], ...
-                'FaceColor', [0 1 0 0.1], 'Linestyle', 'none');
+                'FaceColor', [0 1 0 0.1], 'Linestyle', 'none', 'FaceAlpha', 0.3);
         end
     else
         % green rectangle over the target line
         rectangle('Position', [xGridMin settings.plots.targetApogee (xGridMax-xGridMin) delta(2)], ...
-            'FaceColor', [0 1 0 0.1], 'Linestyle', 'none');
+            'FaceColor', [0 1 0 0.1], 'Linestyle', 'none', 'FaceAlpha', 0.3);
     end
 
     plotApogee.XLim = [xGridMin-margin, xGridMax+margin];
diff --git a/apogeeAnalysis/src/standardApogee.m b/apogeeAnalysis/src/standardApogee.m
index ec3da7a9..efd81950 100644
--- a/apogeeAnalysis/src/standardApogee.m
+++ b/apogeeAnalysis/src/standardApogee.m
@@ -48,8 +48,8 @@ for i = 1:2 % highest and lowest apogee cases
     
     for k = 1:nMotors
         tempMotor.name = selectedMotors(k).MotorName;
+        rocket.mass = []; % Disables any ovverrides
         rocket.motor = tempMotor;
-        rocket.updateAll;
         rocket.coefficients.state.xcgTime = linspace(0, tempMotor.cutoffTime, ...
             length(rocket.coefficients.state.xcgTime));
         rocket.motor.thrust = rocket.motor.thrust * ...
diff --git a/caAnalysis/src/initCaAnalysis.m b/caAnalysis/src/initCaAnalysis.m
index b4803e25..b61d5bf9 100644
--- a/caAnalysis/src/initCaAnalysis.m
+++ b/caAnalysis/src/initCaAnalysis.m
@@ -52,5 +52,4 @@ wind.magnitudeParameters = [0; 0];
 
 wind.azimuthDistribution = 'u';
 wind.azimuthParameters = [0; 0];
-wind.updateAll();
 end
\ No newline at end of file
diff --git a/sensitivityAnalysis/sensitivityConfig.m b/sensitivityAnalysis/sensitivityConfig.m
index a7d713ff..7653b39f 100644
--- a/sensitivityAnalysis/sensitivityConfig.m
+++ b/sensitivityAnalysis/sensitivityConfig.m
@@ -13,7 +13,7 @@
 % SPDX-License-Identifier: GPL-3.0-or-later
 
 %% SIMULATION PARAMETERS
-sensitivity.n = 2000;                                                     % Number of cases
+sensitivity.n = 100;                                                     % Number of cases
 sensitivity.type = 4;
 % Simulation type: 
 %   1-apogee only    
diff --git a/sensitivityAnalysis/src/sensitivityStochRun.m b/sensitivityAnalysis/src/sensitivityStochRun.m
index 155ec703..ca0cbc1b 100644
--- a/sensitivityAnalysis/src/sensitivityStochRun.m
+++ b/sensitivityAnalysis/src/sensitivityStochRun.m
@@ -102,10 +102,10 @@ if stabFlag
     stability(1, n) = stability;
 end
 
-parfor i = 1:n
+for i = 1:n
     ascentSol = [];
-    rocket = copy(rocketRef);
-    env = copy(envRef);
+    rocket = rocketRef;
+    env = envRef;
     uncertanty = struct();
     updateData(rocket, env, wind, parameters, i);
 
diff --git a/sensitivityAnalysis/src/stochParameters/updateData.m b/sensitivityAnalysis/src/stochParameters/updateData.m
index 6c1c26c8..1360c7bc 100644
--- a/sensitivityAnalysis/src/stochParameters/updateData.m
+++ b/sensitivityAnalysis/src/stochParameters/updateData.m
@@ -102,9 +102,5 @@ for i = 1:length(parameters)
             error(strcat('Parameter: <', parameters(i).name ,'> not known'));
     end
 end
-
-rocket.updateAll();
-env.updateAllExcetpG0();
-wind.updateAll();
 end
 
-- 
GitLab