From 7966b2d95d00b660c5f01a460a58d27da44208a4 Mon Sep 17 00:00:00 2001
From: tobi <tobias.weckenmann@tum.de>
Date: Tue, 3 Dec 2024 13:46:23 +0100
Subject: [PATCH] Adjusts the scaling factor calculation - scaling of rubber
 engines - to use deck values instead of the engine xml

---
 .../src/engine_design/rubber/turbofan.cpp      | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/propulsion_design/src/engine_design/rubber/turbofan.cpp b/propulsion_design/src/engine_design/rubber/turbofan.cpp
index 25aaa82b..d09ccdfa 100644
--- a/propulsion_design/src/engine_design/rubber/turbofan.cpp
+++ b/propulsion_design/src/engine_design/rubber/turbofan.cpp
@@ -55,12 +55,22 @@ namespace design
                                 {this->engine_directory(), this->engine_database()});
 
         /* Scale the engine */
-        /** @todo How and which thrust do we need here? */
+
+        /* Load the unscaled engine */
+        auto engine_unscaled = io::load_engine_scaled(
+            engine.model(),
+            1,
+            {this->engine_directory(),
+             this->engine_database()});
+
+        /* Get the unscaled SLST value from the deck values as the highest N1 at SLS */
+        engine_unscaled.calculate_N1_with_penalties(0 , 0, this->flight_condition().ambiance, 1.0, "takeoff", 0, 0);
+
+        /* Scale the engine */
         engine.set_scale(
-            engine.required_thrust() > 0.0 ? engine.required_thrust() / engine_data.SLST() : 1.0);
+            engine.required_thrust() > 0.0 ? engine.required_thrust() / engine_unscaled.get_thrust() : 1.0); // engine_unscaled.get_thrust()
 
-        /* Set and sale the parameters */
-        /** @todo Where does the scaling of the length come from ?*/
+        /* Set and sale the parameters according to Ray12 p. 285 */
         engine.set_dimension({engine_data.dimensions().height * std::pow(engine.scale(), 0.5),
                               engine_data.dimensions().width * std::pow(engine.scale(), 0.5),
                               engine_data.dimensions().length * std::pow(engine.scale(), 0.4)});
-- 
GitLab