From b7b526e67fad61e147663d7aecba5943be1900b7 Mon Sep 17 00:00:00 2001
From: tobi <tobias.weckenmann@tum.de>
Date: Thu, 6 Feb 2025 12:52:47 +0100
Subject: [PATCH] Some updates for the docu

---
 .../sizing/propulsion_design/changelog.md     |   5 +-
 .../engineering_principles.md                 |  79 +++---
 .../propulsion_design/getting_started.md      | 248 ++++++++++++++++++
 .../sizing/propulsion_design/index.md         |  14 +-
 .../software_architecture.md                  |   7 +-
 5 files changed, 295 insertions(+), 58 deletions(-)
 create mode 100644 docs/documentation/sizing/propulsion_design/getting_started.md

diff --git a/docs/documentation/sizing/propulsion_design/changelog.md b/docs/documentation/sizing/propulsion_design/changelog.md
index d6f5738..7403ff4 100644
--- a/docs/documentation/sizing/propulsion_design/changelog.md
+++ b/docs/documentation/sizing/propulsion_design/changelog.md
@@ -14,12 +14,11 @@ The following changes are introduced:
 ### Bugfixes
 During the development of this release the following bugs were found and fixed:
 
-- When designing a *rubber* engine, the engine length was scaled incorrectly. The correct formula with ${scale_{engine}}^{0.4} $ is now implemented.
+- When designing a *rubber* engine, the engine length was scaled incorrectly. The correct formula with \f${scale_{engine}}^{0.4} \f$ is now implemented.
 
 ### Changes in the CSR designs
 The implemented changes and bugfixes lead to the following changes in the results of the CSR designs.
-!!! note 
-    Only changes which exceed a 10 % change are listed.
+@note Only changes which exceed a 10 % change are listed.
 
 #### CSR-02
 |Parameter|Changed introduced by|Old Value|New Value|Unit|
diff --git a/docs/documentation/sizing/propulsion_design/engineering_principles.md b/docs/documentation/sizing/propulsion_design/engineering_principles.md
index 0a8220b..4368d58 100644
--- a/docs/documentation/sizing/propulsion_design/engineering_principles.md
+++ b/docs/documentation/sizing/propulsion_design/engineering_principles.md
@@ -2,12 +2,11 @@
 # Engineering principles {#engineeringprinciples}
 
 Designing the propulsion with this tool includes different engineering disciplines. Here a brief explanation (more information in their respective sections):
-
-- [Engine designer](#enginedesigner): calculates the performance of one individual engine based on the required thrust.
-- [Propulsor integrator](#propulsionintegrator): places the engine acc. to the user's settings.
-- [Nacelle designer](#nacelledesigner): calculates the nacelle geometry.
-- [Pylon designer](#pylondesigner): calculates the pylon geometry.
-- [Mass analyzer](#massanalyzer): calculates the mass properties (center of gravity, mass, and inertia) of engine, nacelle, and pylon.
+- [Engine designer](#enginedesigner): Calculates the performance of one individual engine based on the required thrust.
+- [Propulsor integrator](#propulsionintegrator): Places the engine acc. to the user's settings.
+- [Nacelle designer](#nacelledesigner): Calculates the nacelle geometry.
+- [Pylon designer](#pylondesigner): Calculates the pylon geometry.
+- [Mass analyzer](#massanalyzer): Calculates the mass properties (center of gravity, mass, and inertia) of engine, nacelle, and pylon.
 
 For these five disciplines, you can choose different **methods** (or fidelities) of calculating their output. Here is an overview of the current implemented methods (details see sections):
 | Discipline          | Methods                                                           |
@@ -32,49 +31,49 @@ The **engine designer** bases its principle on the common modelling practice usi
 - an _engine deck_ (operating point dependent)
 - a _scale factor_
 
-The _dataset_ (also called _EngineXML_) includes parameter which are independent of the flight condition such as outer engine dimensions.
+The _dataset_ (also called _EngineXML_) includes parameter which are independent of the flight condition such as outer engine dimensions or the mass of the unscaled engine.
+
+The three-dimensional _engine deck_ contain engine performance data for different values of altitude \f$h\f$, Mach number \f$Ma\f$ and low-pressure engine spool speed \f$N1\f$. The most important performance parameter are thrust and fuel/energy flow. In UNICADO, the deck is split into multiple CSV files. The figure shows an example with values for thrust in kilo newton. The first block contains data for \f$N1=1\f$ for \f$Ma=0...0.9\f$ and \f$h=0...14000\f$. The second block below is for \f$N1=0.95\f$.
+![](img/deck_example_thrust.svg)
 
-The three-dimensional _engine deck_ contain engine performance data for different values of altitude $h$, Mach number $Ma$ and low-pressure engine spool speed $N1$. The most important performance parameter are thrust and fuel/energy flow. In UNICADO, the deck is split into multiple CSV files. The figure shows an example with values for thrust in kilo newton. The first block contains data for $N1=1$ for $Ma=0...0.9$ and $h=0...14000$. The second block below is for $N1=0.95$.
-![](figures/deck_example_thrust.svg)
+@note Detailed information on required dataset and deck data will be updated in near future. 
 
-!!! note 
-    Detailed information on required dataset and deck data will be updated in near future. 
+The _scale factor_ is necessary for the rubber method because we use the concept of a so-called _rubber engine_. That means that (depending on the method, see later) we create or assume an engine deck and provide one _scale factor_ to obtain all engine data acc. to the required thrust the engine shall provide. The figure visualized the concept:
+![](img/scale_factor.svg)
 
-The _scale factor_ is necessary because (as conceptual aircraft designer), we use the concept of a so-called _rubber engine_. That means that (depending on the method, see later) we create or assume an engine deck and provide one _scale factor_ to obtain all engine data acc. to the required thrust the engine shall provide. The figure visualized the concept:
-![](figures/scale_factor.svg)
+@attention &rarr; **As mentioned and highlighted in the figure**, there is ONE _scale factor_ **BUT** multiple exponents which differ depending on which property you want to use. E.g. for the diameter, the exponent is \f$0.5\f$ and for the mass its \f$0.4\f$. **So important to remember** that whenever you want to use engine data, you need to access it via the `engine` library. In the following, a brief explanation of the scaling concept will be given - however details are given in the library documentation.
 
-@attention &rarr; **As mentioned and highlighted in the figure**, there is ONE _scale factor_ **BUT** multiple exponents which differ depending on which property you want to use. E.g. for the diameter, the exponent is $0.5$ and for the mass its $0.4$. **So important to remember** that whenever you want to use engine data, you need to access it via the `engine` library. In the following, a brief explanation of the scaling concept will be given - however details are given in the library documentation.
+So, the scaling is based on continuity principle assuming that the operating of the inner engine is constant (commonly known station numbering; assuming no extra pressure drop).
 
-So, the scaling is based on continuity principle assuming that the operating condition is constant (commonly known station numbering; assuming no pressure drop).
+\f$[ 
+    T = \dot m \cdot (V_9 - V_0) 
+]\f$
 
-$ T = \dot m \cdot (V_9 - V_0) $
+Therefore, thrust \f$T\f$ is proportional to the mass flow \f$\dot m\f$, which is linearly related to the cross-sectional area \f$A\f$ of the engine. 
 
-Therefore, thrust $T$ is proportional to the mass flow $\dot m$, which is related to the cross-sectional area $A$ of the engine. 
+\f$ \dot m = \rho \cdot V \cdot A = \rho \cdot V \cdot \pi \frac{d}{2}^2 \f$
 
-$ \dot m = \rho \cdot V \cdot A = \rho \cdot V \cdot \pi \frac{d}{2}^2 $
+Because area \f$A\f$ is proportional to the square of the diameter \f$d\f$ , it follows that the diameter should be proportional to the square root of the scale factor. 
 
-Because area $A$ is proportional to the square of the diameter $d$ , it follows that the diameter should be proportional to the square root of the scale factor. 
+\f$ d_{new} = d_{ref} \cdot ( \frac{T_{new}}{T_{ref}} )^{0.5} \f$
 
-$ d_{new} = d_{ref} \cdot ( \frac{T_{new}}{T_{ref}} )^{0.5} $
+An exemplary simplified calculation (data from the V2527-A5): the current engine provides \f$127.27~kN\f$ as sea level static thrust, but for the design only \f$100~kN\f$ are needed. The scaling factor would be \f$0.7857\f$. Assuming an initial diameter \f$2~m\f$, the new diameter would be \f$1.773~m\f$ with the scaling factor of \f$(0.7857)^{0.5} = 0.8864\f$. 
 
-An exemplary simplified calculation (data from the V2527-A5): the current engine provides $127.27~kN$ as sea level static thrust, but for the design only $100~kN$ are needed. The scaling factor would be $0.7857$. Assuming an initial diameter $2~m$, the new diameter would be $1.773~m$ with the scaling factor of $(0.7857)^{0.5} = 0.8864$. 
+The general scaling is therefore a linear scaling of the thrust. The fuel flow is scaled in the same way leading to a scaling approach with constant TSFC. 
 
-So, again, always access the engine data via the `engine` library to ensure that you have the correctly scaled data 🙂
+So, again, the engine data is always accessed via the `engine` library to ensure that you have the correctly scaled data for every value. This is valid for both the non operating condition dependant variables and the values that are directly read from the deck -csv values. 
 
-!!! note
-    Actually, the sea level static thrust is not at $N1=1$ if you compare the dataset for this engine (for 110.31kN around $N1=0.95$). So the scaling factor will be slightly lower.
+@note Actually, the sea level static thrust is not at \f$N1=1\f$ if you compare the dataset for this engine (for 110.31kN around \f$N1=0.95\f$). So the scaling factor will be slightly lower.
 
 ### Methods description
 The **engine designer** includes different methods which create/use this deck in various ways.
-
-- *empirical*: the initial deck is calculated based on emipirical equations
-- *rubber*: (most common approach) based on an existing deck (usually created with GasTurb), the deck is "rubberized"
+- *empirical*: the initial deck is calculated based on empirical equations.
+- *rubber*: (most common approach) based on an existing deck (usually created with GasTurb), the deck is "rubberized".
 - *propulsionsystem*: with the help of the library `propulsionsystem`, different architecture can be defined and a deck created (for more information see documentation of the library)
 
-!!! note
-    *empirical* and *propulsionsystem* is in preparation - not implemented yet!
+@note *empirical* and *propulsionsystem* is in preparation - not implemented yet!
 
-For all these methods, the approach of using the _scale factor_ is the same (see explaination [here](#generalprinciples)). A deck is either first created or assumed and then data is drawn with the `engine` library with the scaling approach. 
+For all these methods, the approach of using the _scale factor_ is the same (see explanation [here](#generalprinciples)). A deck is either first created or assumed and then data is drawn with the `engine` library with the scaling approach. 
 
 ## Propulsion integrator {#propulsionintegrator}
 Additionally to calculating the engine performance parameter, the engine has to be placed on the aircraft. The **propulsion integrator** uses the user settings from the aircraft exchange file - the following needs to be defined:
@@ -101,7 +100,7 @@ This method includes multiple empirical functions for different propulsion integ
 
 For detailed information, it is referred to the thesis.
 
-!!! note the implementation include currently Turbofan Kerosene only
+@note the implementation include currently Turbofan Kerosene only
 
 ## Nacelle designer {#nacelledesigner}
 After the integration, the nacelle geometry is defined (however its actually independent of the position, so the order could be changed). 
@@ -109,7 +108,6 @@ After the integration, the nacelle geometry is defined (however its actually ind
 ### Methods description 
 
 For the **nacelle designer**, only one method is implemented:
-
  - *default* uses the `aircraftGeometry2` library 
  
 The library uses the `.dat` file defined in the _configXML_ to extrude a polygon in different sections. These sections including the origin, width, height and its profile are saved in the _acXML_. With that, every other tool can "rebuild" the geometry using the same library.
@@ -118,8 +116,7 @@ In the current implemented method, there is no differentiation between short and
 
 Keep in mind that the library defines a surface without a thickness. For more information, it is referred to the library. 
 
-!!!note
-    The implementation include currently Turbofan Kerosene only
+@note the implementation include currently Turbofan Kerosene only
 
 ## Pylon designer {#pylondesigner}
 The pylon is the structural component to connect the engine to the aircraft. 
@@ -127,24 +124,21 @@ The pylon is the structural component to connect the engine to the aircraft.
 ### Methods description
 
 For the **pylon designer**, only one method is implemented:
-
  - *default* uses the `aircraftGeometry2` library 
  
-In the current method, the mounting is attached to the beginning to the nacelle to the leading edge of the wing. The length is the engine length which is extruded to the wing. the profile is, likewise for the nacelle, defined in the _configXML_.
+In the current method, the mounting is attached to the beginning to the nacelle to the leading edge of the wing. The length is the engine length which is extruded to the wing. The profile is, likewise for the nacelle, defined in the _configXML_.
 
-![Engine Mount](figures/engine_mount.svg)
+![Engine Mount](img/engine_mount.svg)
 
 
-!!!note 
-    the implementation include currently Turbofan Kerosene only
+@note the implementation include currently Turbofan Kerosene only
 
 ## Mass analyzer {#massanalyzer}
-Lastly, the mass properties for engine, nacelle and pylon are calculated separate for center of gravity, mass and inertia. 
+Lastly, the mass properties for engine, nacelle and pylon are calculated separately for center of gravity, mass and inertia. 
 
 ### Methods description
 
 Here, only one method is implemented:
-
  - *default* using: 
     - for engine
         - CG: calculating local CG assuming a circular cylinder
@@ -155,6 +149,5 @@ Here, only one method is implemented:
         - mass: empirical estimation
         - inertia: wrt. CG with `aircraftGeometry2`lib
 
-!!!note 
-    the implementation include currently Turbofan Kerosene only
+@note the implementation include currently Turbofan Kerosene only
 
diff --git a/docs/documentation/sizing/propulsion_design/getting_started.md b/docs/documentation/sizing/propulsion_design/getting_started.md
new file mode 100644
index 0000000..64f7b18
--- /dev/null
+++ b/docs/documentation/sizing/propulsion_design/getting_started.md
@@ -0,0 +1,248 @@
+# Getting started {#getting-started}
+This guide will show you the basic usage of **propulsion_design**. Following steps are necessary (if you are new to UNICADO check out the [settings and outputs](#settingsandoutputs) first!)
+
+## Step-by-step
+
+It is assumed that you have the `UNICADO Package` installed including the executables and the engine database. In case you are a developer, you need to build the tool first (see [build instructions on UNICADO website](https://unicado.pages.rwth-aachen.de/unicado.gitlab.io/developer/build/cpp/)).
+
+1. Create a dummy `aircraft_exchange_file` (minimal required input see [here](#acXML))
+2. Fill out the configuration file - change at least:
+    - in `control_settings` 
+        - `aircraft_exchange_file_name` and `aircraft_exchange_file_directory` to your respective settings
+        - `console_output` at least to `mode_1`
+        - `plot_output` to false (or define `inkscape_path` and `gnuplot_path`)
+    - in `program_settings`
+        - `path_engine_database` to your respective settings
+        - `propulsion/nacelle/profile` and `pylon/profile` to `propulsion_design/test/stubs` directory
+3. Open terminal and run **propulsion_design**
+
+Following will happen:
+- you see output in the console window
+- a HTML report is created in the directory of `aircraft_exchange_file_directory`
+- results are saved in the `/aircraft_exchange_file/component_design/propulsion`
+
+@note The dummy does not include geometry data for e.g. fuselage or wing. Therefore the positioning of the engine will not work and warnings are expected in the output.
+
+## Settings and outputs {#settingsandoutputs}
+Generally, we use 2 files to set or configure in UNICADO:
+- the aircraft exchange file (or _acXML_) includes
+    - data related inputs (e.g. thrust-to-weight, offtakes or type of engine)
+    - data related outputs (e.g. engine position)
+- the configuration file `propulsion_design_conf.xml` (also _configXML_) includes
+    - control settings (e.g. enable/disable generating plots)
+    - program settings (e.g. set technology factors or methods)
+
+### Aircraft exchange file
+@note _acXML_ is an exchange file - we agreed on that only data will be saved as output which is needed by another tool!
+
+**Inputs**: 
+Following is needed from the _acXML_:
+1) the total thrust-to-weight-ratio as well as the MTOM, 
+2) the thrust share of the individual engine,
+2) the average system off-takes of the engines,
+3) the user settings of the propulsion architecture.
+
+Naturally, the propulsion need an assumption for thrust or power to be designed. In the first iteration in UNICADO, the requirement is set via the tool _initialSizing_. It is then updated in _constraint_analysis_ in every loop to assure that the thrust that is fitted onto the aircraft assures enough thrust in all required flight stages. For this, **propulsion_design** currently assumes:
+
+The sea level static thrust \f$ T_0 \f$ is given by:
+
+\f$
+T_0 = \frac{T}{W} \cdot MTOM
+\f$
+
+Where:
+- \f$ T_0 \f$ is the sea level static thrust.
+- \f$ \frac{T}{W} \f$  is the thrust-to-weight ratio (specified as `/aircraft_exchange_file/sizing_point/thrust_to_weight`).
+- \f$ MTOM \f$ is the maximum takeoff mass (specified as `/aircraft_exchange_file/analysis/masses_cg_inertia/maximum_takeoff_mass`).
+
+@note This might change with new propulsion architectures!
+
+Not only the ratio of thrust to weight is read, but also the average system off-takes. In the current design of UNICADO, engine provide power for the systems and therefore the thrust specific energy/fuel consumption will increase. To include that, the nodes `average_bleed_air_demand` and `average_bleed_air_demand` in `/aircraft_exchange_file/component_design/systems/specific/`are read to show the influence of these offtakes on the bucket curve (is set to default values if not existing).
+
+Additionally, user settings need to be defined. In the node `/aircraft_exchange_file/requirements_and_specifications/design_specification`, both `energy_carriers` and `propulsion` need to be filled out (for more information on the variables, please read the description in the _acXML_).
+
+```plaintext
+Energy Carriers
+|- Energy Carrier (ID=0)
+|  |- Type
+Propulsion
+|- Propulsor (ID=0)
+|  |- Powertrain
+|  |- Type
+|  |- Position
+|  |  |- Parent Component
+|  |  |- X
+|  |  |- Y
+|  |  |- Z
+|  |- Energy Carrier ID
+|  |- Thrust Share
+```
+Let's assume you want to design an aircraft with 5 engine - 2 on each side of the wing and one in the empennage. Additionally, you want to use 3 energy carrier: hydrogen, kerosene and battery-electric.
+For that, you need to define 3 energy carriers with each a type with \f$ID=[0,1,2]\f$. Then you create 5 propulsor nodes with \f$ID=[0,...,4]\f$ and assign them each an a powertrain, type, ..., and thrust share. E.g. Engine 0 shall be a kerosene-powered turbofan in the empennage with a thrust share of \f$10\%\f$. Then it has the position with `parent_component=empennage`, `x=front`, `y=mid`, `z=in`. If the type of the energy carrier with ID=0 is set to kerosene, you need to assign `energy_carrier_id=0`. Also `powertrain=turbo`, `type=fan`, and `thrust_share=0.1`. Then Engine 1 could be a hydrogen-powered turboprop located under the left front inner wing with a thrust share of \f$25\%\f$. Then it has the position with `parent_component=wing`, `x=front`, `y=left`, `z=under`. If the type of the energy carrier with ID=1 is set to hydrogen, you need to assign `energy_carrier_id=1`. Also `powertrain=turbo`, `type=prop`, and `thrust_share=0.25`. The same procedure needs to be done for the other 3 engine.
+
+**Outputs**: The results are saved in the _acXML_ node `/aircraft_exchange_file/component_design/propulsion`. 
+
+```plaintext
+Propulsion
+|- Position
+|- Mass Properties
+|- Specific
+|  |- Propulsion (ID=0)
+|  |  |- Nacelle (ID=0)
+|  |  |  |- Origin
+|  |  |  |- Normal
+|  |  |  |- Mass Properties
+|  |  |  |- Sections
+|  |  |  |  |- Section (ID=0)
+|  |  |  |  |  |- Origin
+|  |  |  |  |  |- Width
+|  |  |  |  |  |- Height
+|  |  |  |  |  |- Profile
+|  |  |- Pylon
+|  |  |  |- Position
+|  |  |  |- Normal
+|  |  |  |- Mass Properties
+|  |  |  |- Sections
+|  |  |  |  |- Section (ID=0)
+|  |  |  |  |  |- Origin
+|  |  |  |  |  |- Chord Length
+|  |  |  |  |  |- Geometric Twist
+|  |  |  |  |  |- Profile
+|  |  |- Engine
+|  |  |  |- Engine Model
+|  |  |  |- Position
+|  |  |  |- Mass Properties
+|  |  |  |- Scale Factor
+|  |  |  |- Bucket Point
+|  |  |  |  |- Thrust
+|  |  |  |  |- TSFC
+
+```
+To shorten the visualization, the nodes `mass`, `inertia` and `center_of_gravity`in `mass_properties` are excluded. For more information, please read their description.
+
+### Configuration file
+
+The control settings are standardized in UNICADO and will not be described in detail here. The program settings are structured like this (descriptions are in the `propulsion_design_conf.xml`):
+```plaintext
+Program Settings
+|- Method
+|  |- Engine Designer
+|  |- Nacelle Designer
+|  |- Pylon Designer
+|  |- Propulsion Integrator
+|  |- Mass Analyzer
+|- Path Engine Database
+|- Technology Factors
+|  |- Engine Mass
+|  |- Nacelle Mass
+|  |- Pylon Mass
+|  |- Engine Efficiency
+|- Propulsion (ID=Default)
+|  |- Engine
+|  |  |- Empirical
+|  |  |  |- BPR
+|  |  |- Rubber
+|  |  |- GasTurb
+|  |- Nacelle
+|  |  |- Profile
+|  |- Pylon
+|  |  |- Profile
+|  |- Integration
+```
+You can choose the method for each discipline, the path for your engine data base, and different technology factors. To be highlighted, is the `Propulsion ID=Default` node. This is a default for all engines defined in the _acXML_ (see next paragraph). E.g. if you define 3 engines for an aircraft, both will use the same assumptions in the default setting. In case you want that the 3. engine is been calculated with e.g. another method, you can create a new `propulsion` node and assign the same `ID` value as set for the _acXML_ `ID`. 
+
+## Minimal required aircraft exchange file input {#acXML}
+
+```xml
+<aircraft_exchange_file>
+    <requirements_and_specifications>
+        <general description="General aircraft information">
+            <type description="Aircraft type">
+                <value>Test</value>
+            </type>
+            <model description="Model - Version">
+                <value>Test</value>
+            </model>
+        </general>
+        <design_specification description="Design specification">
+            <configuration description="Configuration information">
+                <configuration_type description="aircraft configuration: tube_and_wing / blended_wing_body">
+                    <value>tube_and_wing</value>
+                </configuration_type>
+            </configuration>
+            <energy_carriers description="Energy carriers information">
+                <energy_carrier ID="0" description="One specific energy carrier">
+                    <type description="Energy type: kerosene / liquid_hydrogen / battery / saf (for multifuel engine create new ID)">
+                        <value>kerosene</value>
+                    </type>
+                    <density description="Energy carrier density">
+                        <value>790</value>
+                        <unit>kg/m^3</unit>
+                        <lower_boundary>50</lower_boundary>
+                        <upper_boundary>1000</upper_boundary>
+                    </density>
+                </energy_carrier>
+            </energy_carriers>
+            <propulsion description="Propulsion information">
+                <propulsor ID="0" description="Information for specific propulsor">
+                    <powertrain description="Way the power is generated from the source: turbo, electric, fuel_cell">
+                        <value>turbo</value>
+                    </powertrain>
+                    <type description="Type of main thrust generator: fan or prop">
+                        <value>fan</value>
+                    </type>
+                    <position description="propulsor position (arrangement order acc to ID order)">
+                        <parent_component description="position on component: wing, fuselage, empennage">
+                            <value>wing</value>
+                        </parent_component>
+                        <x description="x-position (aircraft coordinate system): front or back">
+                            <value>front</value>
+                        </x>
+                        <y description="y position (aircraft coordinate system): left or right">
+                            <value>right</value>
+                        </y>
+                        <z description="z position (aircraft coordinate system): over, mid, under, in">
+                            <value>under</value>
+                        </z>
+                    </position>
+                    <energy_carrier_ID description="see energy carrier specification node">
+                        <value>0</value>
+                        <unit>1</unit>
+                        <lower_boundary>0</lower_boundary>
+                        <upper_boundary>5</upper_boundary>
+                    </energy_carrier_ID>
+                    <thrust_share description="Share of this thrust in relation to required aircraft thrust">
+                        <value>1</value>
+                        <unit>0</unit>
+                        <lower_boundary>0.0</lower_boundary>
+                        <upper_boundary>1.0</upper_boundary>
+                    </thrust_share>
+                </propulsor>
+            </propulsion>
+        </design_specification>
+    </requirements_and_specifications>
+    <sizing_point>
+        <thrust_to_weight description="Total thrust (kN) divided by maximum aircraft weight (kN)" tool_level="1">
+            <value>0.33</value>
+            <unit>1</unit>
+            <lower_boundary>0</lower_boundary>
+            <upper_boundary>1</upper_boundary>
+        </thrust_to_weight>
+    </sizing_point>
+    <analysis>
+        <masses_cg_inertia description="masses, cgs, inertias." tool_level="0">
+            <maximum_takeoff_mass description="MTOM">
+                <mass_properties description="maximum takeoff mass properties">
+                    <mass description="mass">
+                        <value>77000</value>
+                        <unit>kg</unit>
+                        <lower_boundary>0</lower_boundary>
+                        <upper_boundary>inf</upper_boundary>
+                    </mass>
+                </mass_properties>
+            </maximum_takeoff_mass>
+        </masses_cg_inertia>
+    </analysis>
+</aircraft_exchange_file>
+```
+The nodes `requirements_and_specifications\general` and `design_specification\configuration` are not needed by **propulsion_design**. However, the library _moduleBasics_ requires them.
\ No newline at end of file
diff --git a/docs/documentation/sizing/propulsion_design/index.md b/docs/documentation/sizing/propulsion_design/index.md
index 9caaff8..113b211 100644
--- a/docs/documentation/sizing/propulsion_design/index.md
+++ b/docs/documentation/sizing/propulsion_design/index.md
@@ -1,14 +1,13 @@
 # Introduction {#mainpage}
-The tool _propulsion_design_ is one of the core design tools in UNICADO. The overall goal is the design the propulsion based on... 
-
+The tool _propulsion_design_ is one of the core design tools in UNICADO. The overall goal is the design the propulsion system based on... 
 - the architecture (e.g. 2 turbofan at rear fuselage, 4 fuel cell prop engine over the front wing) set by the user and,
-- the total required thrust and system off-takes.
-This tool is exciting!🔥 because the propulsion is THE critical component providing the thrust or power, enabling to propel the aircraft forward and move through the skies.🌍
+- the total required thrust and system off-takes calculated within the aircraft design loop.
+This tool is exciting!🔥 because the propulsion is one of the critical components in the aircraft design loop. It provides the thrust or power, enabling powered flight of the aircraft letting it move through the skies.🌍
 
-To give you a general taste, here are a few illustrations of possible concepts.
-![](figures/different_engines.svg)
+There are different propulsion architectures for the aircraft conceptual design process. To give you a general taste, here are a few illustrations of possible concepts.
+![](img/different_engines.svg)
 
-The [getting started](getting_started.md) gives you a first insight in how to execute the tool and how it generally works. To understand how the tools works in detail, the documentation is split into a [engineering principles](engineering_principles.md) and a [software architecture](software_architecture.md) section. 
+The [getting started](getting_started.md) gives you a first insight in how to execute the tool and how it generally works. To understand how the tools works in more detail, the documentation is split into a [engineering principles](engineering_principles.md) and a [software architecture](software_architecture.md) section. 
 
 Prior to that, let's summarize what the tool can currently do and what is planned (terms like _method_ or _strategy_ will be explained in the sections):
 
@@ -22,4 +21,3 @@ Prior to that, let's summarize what the tool can currently do and what is planne
 (*) order: engine designer/ nacelle designer/ pylon designer/ propulsion integrator/ mass analyzer
 
 So let's get started!
-
diff --git a/docs/documentation/sizing/propulsion_design/software_architecture.md b/docs/documentation/sizing/propulsion_design/software_architecture.md
index 294c85b..3fed44e 100644
--- a/docs/documentation/sizing/propulsion_design/software_architecture.md
+++ b/docs/documentation/sizing/propulsion_design/software_architecture.md
@@ -2,7 +2,7 @@
 
 ## Software Architecture Overview
 
-The software architecture is structured into various modules and packages, each handling specific task. Below is a description of the main components (some classes, interfaces etc. are left out to keep it understandable for now - for more information see the [class diagram](figures/class_diagram.png) or the source code):
+The software architecture is structured into various modules and packages, each handling specific task. Below is a description of the main components (some classes, interfaces etc. are left out to keep it understandable for now - for more information see the [class diagram](img/class_diagram.png) or the source code):
 
 - classes:
     - **propulsionDesign** is like the "coordinator" responsible for the overall propulsion system design including _initialize_, _run_, _update_, _report_ and _save_ (inherits from `Module` class from **moduleBasics**). These include e.g. method selection function for each disciplines
@@ -21,9 +21,8 @@ The software architecture is structured into various modules and packages, each
 
 Some additional words on the **propulsionStrategy**:
 
-As you might also see in the [class diagram](figures/class_diagram.png), the core of it is the functor `operator()` for specific engine types to allow the `engine` object to be used as functions. This object is, depending on the user settings, based on the propulsion type classes (e.g. `Turbofan<Kerosene>`). As also shown in @ref propulsion.md, the type is combined with 3 "building blocks"
+As you might also see in the [class diagram](img/class_diagram.png), the core of it is the functor `operator()` for specific engine types to allow the `engine` object to be used as functions. This object is, depending on the user settings, based on the propulsion type classes (e.g. `Turbofan<Kerosene>`). As also shown in @ref propulsion.md, the type is combined with 3 "building blocks"
  - *powertrain*: Way the power is generated from the source: turbo, electric, fuel_cell
- - 
  - *type*: Type of main thrust generator: fan or prop
  - *energy_carrier*: kerosene, liquid_hydrogen, battery (handled over IDs)
 
@@ -32,4 +31,4 @@ So, if you want to use different combinations in UNICADO, you need to make sure
 ## Class Diagram {#classdiagram}
 Here is an overview how the module is structured:
 
-![](figures/class_diagram.png){html: width=1000}
+![](img/class_diagram.png){html: width=1000}
-- 
GitLab