From bbc8c3c505119eb180230d10e70dc7a1f7f3b568 Mon Sep 17 00:00:00 2001
From: Marcodagostino2 <mcdago25@gmail.com>
Date: Sun, 11 May 2025 11:41:15 +0200
Subject: [PATCH] [to-struct-updates] Modified parachutes parameter to be
 compatible with the new unified class Para

---
 common                                           |  2 +-
 .../src/stochParameters/initParameter.m          | 16 ++++++++--------
 .../src/stochParameters/updateData.m             | 16 ++++++++--------
 simulator/mainSimulator.m                        |  2 +-
 simulator/src/stdPlots.m                         |  6 +++---
 utils/rocketpyData/exportRocketpy.m              | 16 ++++++++--------
 6 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/common b/common
index 59b6c1b0..010cd36b 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 59b6c1b09cbd9b1bc1be07e1aa32f18ced11e1bc
+Subproject commit 010cd36bdf9431d9f56b3041920eaa585bee3550
diff --git a/sensitivityAnalysis/src/stochParameters/initParameter.m b/sensitivityAnalysis/src/stochParameters/initParameter.m
index 2b585c6c..5368797e 100644
--- a/sensitivityAnalysis/src/stochParameters/initParameter.m
+++ b/sensitivityAnalysis/src/stochParameters/initParameter.m
@@ -55,28 +55,28 @@ for i = 1:length(parameters)
             parameters(i).value = rocket.inertia(:, 3);
             parameters(i).udm = 'kg*m^4';
         case 'drogueSurface'
-            parameters(i).value = rocket.parachutes{1, 1}.surface;
+            parameters(i).value = rocket.parachutes(1, 1).surface;
             parameters(i).udm = 'm2';
         case 'drogueMass'
-            parameters(i).value = rocket.parachutes{1, 1}.mass;
+            parameters(i).value = rocket.parachutes(1, 1).mass;
             parameters(i).udm = 'kg';
         case 'drogueCl'
-            parameters(i).value = rocket.parachutes{1, 1}.cl;
+            parameters(i).value = rocket.parachutes(1, 1).cl0;
             parameters(i).udm = '-';
         case 'drogueCd'
-            parameters(i).value = rocket.parachutes{1, 1}.cd;
+            parameters(i).value = rocket.parachutes(1, 1).cd0;
             parameters(i).udm = '-';
         case 'mainSurface'
-            parameters(i).value = rocket.parachutes{2, 1}.surface;
+            parameters(i).value = rocket.parachutes(2, 1).surface;
             parameters(i).udm = 'm2';
         case 'mainMass'
-            parameters(i).value = rocket.parachutes{2, 1}.mass;
+            parameters(i).value = rocket.parachutes(2, 1).mass;
             parameters(i).udm = 'kg';
         case 'mainCl'
-            parameters(i).value = rocket.parachutes{2, 1}.cl;
+            parameters(i).value = rocket.parachutes(2, 1).cl0;
             parameters(i).udm = '-';
         case 'mainCd'
-            parameters(i).value = rocket.parachutes{2, 1}.cd;
+            parameters(i).value = rocket.parachutes(2, 1).cd0;
             parameters(i).udm = '-';
             % rocket geometry --- available with the stability run only
         case 'rocketDiameter'
diff --git a/sensitivityAnalysis/src/stochParameters/updateData.m b/sensitivityAnalysis/src/stochParameters/updateData.m
index 512520f4..c26278f9 100644
--- a/sensitivityAnalysis/src/stochParameters/updateData.m
+++ b/sensitivityAnalysis/src/stochParameters/updateData.m
@@ -64,21 +64,21 @@ for i = 1:length(parameters)
         case 'Izz'
             rocket.inertia(:, 3) = value;
         case 'drogueSurface'
-            rocket.parachutes{1, 1}.surface = value;
+            rocket.parachutes(1, 1).surface = value;
         case 'drogueMass'
-            rocket.parachutes{1, 1}.mass = value;
+            rocket.parachutes(1, 1).mass = value;
         case 'drogueCl'
-            rocket.parachutes{1, 1}.cl = value;
+            rocket.parachutes(1, 1).cl0 = value;
         case 'drogueCd'
-            rocket.parachutes{1, 1}.cd = value;
+            rocket.parachutes(1, 1).cd0 = value;
         case 'mainSurface'
-            rocket.parachutes{2, 1}.surface = value;
+            rocket.parachutes(2, 1).surface = value;
         case 'mainMass'
-            rocket.parachutes{2, 1}.mass = value;
+            rocket.parachutes(2, 1).mass = value;
         case 'mainCl'
-            rocket.parachutes{2, 1}.cl = value;
+            rocket.parachutes(2, 1).cl0 = value;
         case 'mainCd'
-            rocket.parachutes{2, 1}.cd = value;
+            rocket.parachutes(2, 1).cd0 = value;
             % rocket geometry --- available with the stability run only
         case 'rocketDiameter'
             rocket.diameter = value;
diff --git a/simulator/mainSimulator.m b/simulator/mainSimulator.m
index b9ec8978..5a14012e 100644
--- a/simulator/mainSimulator.m
+++ b/simulator/mainSimulator.m
@@ -51,7 +51,7 @@ if isempty(settings), settings = Settings('ode', 'simulator'); end
 Settings.read(settings, options, 'simulator');
 
 %% CHECKS
-if settings.simulator.ballistic && rocket.parachutes{end, 1}.finalAltitude ~= 0
+if settings.simulator.ballistic && rocket.parachutes(end, 1).finalAltitude ~= 0
     error('The landing will be not achived, check the final altitude of the last parachute in config.m')
 end
 if settings.simulator.ballistic && settings.simulator.parafoil
diff --git a/simulator/src/stdPlots.m b/simulator/src/stdPlots.m
index 858be911..340afe87 100644
--- a/simulator/src/stdPlots.m
+++ b/simulator/src/stdPlots.m
@@ -180,7 +180,7 @@ if ~settings.simulator.ballistic
             plots(iPlot) = plot3(xM, yM, zM, 'o',...
                'MarkerSize', 10, 'MarkerFaceColor', colorMarker(:, iMarker) , 'MarkerEdgeColor', 'none');
             
-            labels(iPlot) = strcat("Stage: ", num2str(j), " ", rocket.parachutes{i,j}.name  ," opening");
+            labels(iPlot) = strcat("Stage: ", num2str(j), " ", rocket.parachutes(i,j).name  ," opening");
             iPlot = iPlot + 1;  
             iMarker = iMarker + 1;  
         end
@@ -299,7 +299,7 @@ if ~settings.simulator.ballistic
             subplot(3, 1, 3);
             plots(iPlot) = plot(tDescent, vzDescent);
 
-            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes{i, j}.name , " trajectory" );
+            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes(i, j).name , " trajectory" );
             iPlot = iPlot + 1;
         end
     end
@@ -468,7 +468,7 @@ if ~settings.simulator.ballistic
             subplot(1, 3, 3); 
             plots(iPlot) = plot(yDescent, zDescent); 
             
-            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes{i, j}.name , " trajectory" ); 
+            legends(iPlot) = strcat( "Stage ", num2str(j), ": ", rocket.parachutes(i, j).name , " trajectory" ); 
             iPlot = iPlot + 1; 
         end
      end 
diff --git a/utils/rocketpyData/exportRocketpy.m b/utils/rocketpyData/exportRocketpy.m
index 9c56cb15..d4e4df68 100644
--- a/utils/rocketpyData/exportRocketpy.m
+++ b/utils/rocketpyData/exportRocketpy.m
@@ -146,16 +146,16 @@ fins_position = rocket.lengthCenter - rocket.rear.finsAxialDistance - root_chord
 boat_position = rocket.lengthCenter;
 
 %% parachutes
-booster_drogue_cd_s = rocket.parachutes{1, 1}.surface * rocket.parachutes{1, 1}.cd;
-booster_drogue_opening_delay = rocket.parachutes{1,1}.openingTime;
+booster_drogue_cd_s = rocket.parachutes(1, 1).surface * rocket.parachutes(1, 1).cd0;
+booster_drogue_opening_delay = rocket.parachutes(1,1).openingTime;
 
-booster_main_cd_s = rocket.parachutes{2, 1}.surface * rocket.parachutes{2, 1}.cd;
-booster_main_opening_delay = rocket.parachutes{2,1}.openingTime;
-booster_main_opening_altitude = rocket.parachutes{1, 1}.finalAltitude + environment.z0;
+booster_main_cd_s = rocket.parachutes(2, 1).surface * rocket.parachutes(2, 1).cd0;
+booster_main_opening_delay = rocket.parachutes(2,1).openingTime;
+booster_main_opening_altitude = rocket.parachutes(1, 1).finalAltitude + environment.z0;
 
-payload_drogue_cd_s = rocket.parachutes{1, 2}.surface * rocket.parachutes{1, 2}.cd;
-payload_drogue_opening_delay = rocket.parachutes{1, 2}.openingTime;
-parafoil_opening_altitude = rocket.parachutes{1, 2}.finalAltitude + environment.z0;
+payload_drogue_cd_s = rocket.parachutes(1, 2).surface * rocket.parachutes(1, 2).cd0;
+payload_drogue_opening_delay = rocket.parachutes(1, 2).openingTime;
+parafoil_opening_altitude = rocket.parachutes(1, 2).finalAltitude + environment.z0;
 
 %% launchpad and environment details
 latitude = environment.lat0;
-- 
GitLab