diff --git a/propulsion_design/src/engine_design/rubber/turbofan.cpp b/propulsion_design/src/engine_design/rubber/turbofan.cpp index 25aaa82b8ff0fd9e83e88cffd4839cbe4018e340..d09ccdfa6c2cc1685ca455f624bdf7f3e3e8976d 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)});