From 68372a1d6a71f434bb5e4ff386c5b5c51aa9b5db Mon Sep 17 00:00:00 2001
From: timeeapacala <“t.pacala@tu-berlin.de”>
Date: Tue, 3 Dec 2024 14:59:00 +0100
Subject: [PATCH 1/3] mtom correction

---
 .../src/tube_and_wing/standard/basic/methodbasic.py          | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
index a1535363..612d4305 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
@@ -175,10 +175,11 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
     ).print("Design mass takeoff")
 
     # Maximum takeoff mass
-    maximum_takeoff_mass = copy.copy(design_mass)
+    maximum_takeoff_mass = copy.copy(design_mass_takeoff)
     maximum_takeoff_mass.path_to_element = "./analysis/masses_cg_inertia/maximum_takeoff_mass"
     maximum_takeoff_mass.cg_mac = (
-        design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
+        design_mass_takeoff.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
+    maximum_takeoff_mass.print("Maximum Takeoff Mass")
 
     # Maximum payload + fuel up to MTOW
     mtow_max_payload_mass = calculate_mtow_max_payload(
-- 
GitLab


From 7fec298037bb8fe732eaae685d03aac17ed310ac Mon Sep 17 00:00:00 2001
From: timeeapacala <“t.pacala@tu-berlin.de”>
Date: Thu, 5 Dec 2024 15:50:27 +0100
Subject: [PATCH 2/3] nothing new

---
 .../src/tube_and_wing/standard/basic/methodbasic.py          | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
index a1535363..43d4a7cc 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
@@ -175,10 +175,11 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
     ).print("Design mass takeoff")
 
     # Maximum takeoff mass
-    maximum_takeoff_mass = copy.copy(design_mass)
+    maximum_takeoff_mass = copy.copy(design_mass_takeoff)
     maximum_takeoff_mass.path_to_element = "./analysis/masses_cg_inertia/maximum_takeoff_mass"
     maximum_takeoff_mass.cg_mac = (
-        design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
+        design_mass_takeoff.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
+    maximum_takeoff_mass.print("Maximum takeoff mass")
 
     # Maximum payload + fuel up to MTOW
     mtow_max_payload_mass = calculate_mtow_max_payload(
-- 
GitLab


From 3e2f4e57f15d7cc99683ee84f0524c6d6c1635c9 Mon Sep 17 00:00:00 2001
From: timeeapacala <“t.pacala@tu-berlin.de”>
Date: Wed, 11 Dec 2024 11:19:25 +0100
Subject: [PATCH 3/3] - added headers - modified the fuel calculation by
 overshooting: the output is still the fuel calculated by mission, even though
 not all fuel was added in the tanks due to the capacity limitation - check
 the report for the different mass descriptions (added more information). The
 difference between the mission masses and the takeoff masses is the fuel for
 the taxi at the origin. - the design mass and the design fuel mass written in
 the acxml correspond to the design_mass_takeoff and design_fuel_mass_takeoff.
 The design mass is the same as MTOM.

---
 weight_and_balance_analysis/main.py           | 26 +++++-
 .../src/datapostprocessing.py                 | 20 +++++
 .../src/datapreprocessing.py                  | 20 +++++
 .../src/readlayertext.py                      | 20 +++++
 .../standard/basic/acommodationIO.py          | 20 +++++
 .../standard/basic/componentMassIO.py         | 20 +++++
 .../standard/basic/massPropertiesIO.py        | 20 +++++
 .../standard/basic/methodbasic.py             | 83 +++++++++++++------
 .../standard/basic/propulsionIO.py            | 20 +++++
 .../tube_and_wing/standard/basic/tankIO.py    | 20 +++++
 .../standard/basic/transportTaskIO.py         | 20 +++++
 .../standard/general/methodhtmlreport.py      | 37 +++++++--
 .../standard/general/methodplot.py            | 24 +++++-
 .../standard/general/methodtexoutput.py       | 20 +++++
 .../standard/general/methodxmlexport.py       | 20 +++++
 .../standard/test_basic/test_IO.py            | 20 +++++
 .../standard/test_basic/test_methodbasic.py   | 20 +++++
 .../standard/usermethoddatapreparation.py     | 22 ++++-
 18 files changed, 412 insertions(+), 40 deletions(-)

diff --git a/weight_and_balance_analysis/main.py b/weight_and_balance_analysis/main.py
index 6e0a4dad..824beb35 100644
--- a/weight_and_balance_analysis/main.py
+++ b/weight_and_balance_analysis/main.py
@@ -1,4 +1,24 @@
-"""Calculation module main file."""
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
+
 # Import standard modules.
 import sys
 import logging
@@ -13,9 +33,9 @@ from src.datapostprocessing import data_postprocessing
 
 
 def main():
-    """Execute the main program for cost estimation.
+    """Execute the main program for weight and balance analysis.
 
-    This function serves as the main entry point for performing the cost estimation.
+    This function serves as the main entry point for performing the weight and balance analysis.
     It goes through the following key steps:
         (1) Preprocessing - Acquire necessary data and paths: Call the 'data_preprocessing' function from
         'datapreprocessing.py' to set up data and routing information.
diff --git a/weight_and_balance_analysis/src/datapostprocessing.py b/weight_and_balance_analysis/src/datapostprocessing.py
index 9767ca87..4f838785 100644
--- a/weight_and_balance_analysis/src/datapostprocessing.py
+++ b/weight_and_balance_analysis/src/datapostprocessing.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing functions for data postprocessing."""
 # Import standard modules.
 
diff --git a/weight_and_balance_analysis/src/datapreprocessing.py b/weight_and_balance_analysis/src/datapreprocessing.py
index 87234f31..d001a0d6 100644
--- a/weight_and_balance_analysis/src/datapreprocessing.py
+++ b/weight_and_balance_analysis/src/datapreprocessing.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing functions for data preprocessing."""
 # Import standard modules.
 import importlib
diff --git a/weight_and_balance_analysis/src/readlayertext.py b/weight_and_balance_analysis/src/readlayertext.py
index 22b307c2..64f43ddc 100644
--- a/weight_and_balance_analysis/src/readlayertext.py
+++ b/weight_and_balance_analysis/src/readlayertext.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """File providing functions to read layer text from aircraft XML file."""
 # Import standard libraries.
 import sys
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py
index 2b3bcb3d..ee85c520 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Acommodation IO"""
 
 import pandas as pd
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py
index 2dfc4473..b0c24713 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """ComponentMass IO"""
 
 import pandas as pd
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py
index d703e179..f0b878b0 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """
   MassProperties IO
 """
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
index 9f77567e..c992f193 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing calculation functions provided by the user."""
 # Import own modules.
 
@@ -128,12 +148,6 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
     operating_mass_empty = calculate_operating_mass_empty(
         main_components_mass_properties, inertia_method, x_leading_edge_mac, mac).print("Operating mass empty")
 
-    # Maximum fuel mass + maximum fuel mass per tank
-    maximum_fuel_mass, maximum_fuel_mass_per_tank, ferry_range_mass = calculate_maximum_fuel_mass(
-        tanks, operating_mass_empty, x_leading_edge_mac, mac, maximum_takeoff_mass, runtime_output)
-    maximum_fuel_mass.print("Maximum fuel mass")
-    ferry_range_mass.print("Ferry range mass")
-
     # Maximum PL mass
     maximum_payload_mass = calculate_maximum_payload_mass(
         dict_ac_exchange["maximum_structural_payload_mass"],
@@ -146,12 +160,15 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
 
     # Design fuel mass
     design_fuel_mass_takeoff, design_fuel_mass_midflight, design_fuel_mass_minimum_landing, \
-        design_fuel_mass_takeoff_per_tank, consumed_fuel, design_fuel_mass, design_fuel_mass_per_tank = \
+        design_fuel_mass_takeoff_per_tank, consumed_fuel, mission_fuel_mass, _ = \
         calculate_design_fuel_mass(
             mission_information, maximum_takeoff_mass, operating_mass_empty, design_payload_mass, tanks,
             routing_dict, dict_ac_exchange)
-    design_fuel_mass.path_to_element = "./analysis/masses_cg_inertia/design_fuel_mass"
-    design_fuel_mass.print("Design fuel mass")
+    mission_fuel_mass.path_to_element = "./analysis/masses_cg_inertia/mission_fuel_mass"
+    mission_fuel_mass.print("Mission fuel mass")
+
+    design_fuel_mass_takeoff.path_to_element = "./analysis/masses_cg_inertia/design_fuel_mass"
+    design_fuel_mass_takeoff.print("Design fuel mass (at takeoff)")
 
     # Maximum zero fuel mass
     maximum_zero_fuel_mass = calculate_maximum_zero_fuel_mass(
@@ -162,17 +179,17 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
     # Design mass
     design_mass = calculate_design_mass(
         [operating_mass_empty, design_payload_mass,
-            design_fuel_mass], inertia_method
-    ).print("Design mass")
-    design_mass.path_to_element = "./analysis/masses_cg_inertia/design_mass"
-    design_mass.cg_mac = (
-        design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
+            mission_fuel_mass], inertia_method
+    ).print("Design mass (mission)")
 
     # Design mass takeoff
     design_mass_takeoff = calculate_design_mass(
         [operating_mass_empty, design_payload_mass,
             design_fuel_mass_takeoff], inertia_method
     ).print("Design mass takeoff")
+    design_mass_takeoff.path_to_element = "./analysis/masses_cg_inertia/design_mass"
+    design_mass_takeoff.cg_mac = (
+        design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
 
     # Maximum takeoff mass
     maximum_takeoff_mass = copy.copy(design_mass_takeoff)
@@ -181,6 +198,12 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
         design_mass_takeoff.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100
     maximum_takeoff_mass.print("Maximum Takeoff Mass")
 
+    # Maximum fuel mass + maximum fuel mass per tank
+    maximum_fuel_mass, maximum_fuel_mass_per_tank, ferry_range_mass = calculate_maximum_fuel_mass(
+        tanks, operating_mass_empty, x_leading_edge_mac, mac, maximum_takeoff_mass, runtime_output)
+    maximum_fuel_mass.print("Maximum fuel mass")
+    ferry_range_mass.print("Ferry range mass")
+
     # Maximum payload + fuel up to MTOW
     mtow_max_payload_mass = calculate_mtow_max_payload(
         operating_mass_empty, maximum_payload_mass, main_components_mass_properties["wing"],
@@ -402,8 +425,8 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
         corresponding_mass_most_aft_CG = total_mass_cargo_back_front[corresponding_index]
     else:
         corresponding_index = cg_positions_over_mac_defueling.index(
-            most_fwd_CG_over_mac)
-        corresponding_mass_most_fwd_CG = total_mass_defueling[corresponding_index]
+            most_aft_CG_over_mac)
+        corresponding_mass_most_aft_CG = total_mass_defueling[corresponding_index]
 
     runtime_output.print(
         f"Corresponding mass most aft CG is of {corresponding_mass_most_aft_CG:.2f} kg.")
@@ -474,10 +497,12 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi
         "mtow_with_max_payload": mtow_max_payload_mass,
         "mtow_with_max_fuel": mtow_max_fuel_mass,
         "design_mass": design_mass,
+        "design_mass_takeoff": design_mass_takeoff,
         "design_payload_mass": design_payload_mass,
         "design_mass_midflight": design_mass_midflight,
-        "design_fuel_mass": design_fuel_mass,
-        "design_fuel_mass_takeoff": design_fuel_mass_takeoff,
+        "mission_fuel_mass": mission_fuel_mass,
+        "design_fuel_mass": design_fuel_mass_takeoff,
+        "design_fuel_takeoff": design_fuel_mass_takeoff,
         "design_fuel_mass_midflight": design_fuel_mass_midflight,
         "design_fuel_mass_minimum_landing": design_fuel_mass_minimum_landing,
         "group_masses": group_masses,
@@ -1411,12 +1436,12 @@ def calculate_design_fuel_mass(mission_information=None, maximum_takeoff_mass=No
         cruise_fuel = mission_information["trip_fuel_mass"] - \
             mission_information["takeoff_fuel_mass"] - \
             mission_information["landing_fuel_mass"]
-        design_fuel_mass = mission_information["mission_fuel_mass"]
-        design_fuel_mass_at_takeoff = mission_information["mission_fuel_mass"] - \
+        design_fuel_mass_ini = mission_information["mission_fuel_mass"]
+        design_fuel_mass_at_takeoff_ini = mission_information["mission_fuel_mass"] - \
             mission_information["taxi_out_fuel_mass"]
-        design_fuel_mass_midflight = design_fuel_mass_at_takeoff - \
+        design_fuel_mass_midflight_ini = design_fuel_mass_at_takeoff_ini - \
             mission_information["takeoff_fuel_mass"] - cruise_fuel / 2
-        design_fuel_mass_landing_minimum = mission_information["mission_fuel_mass"] - \
+        design_fuel_mass_landing_minimum_ini = mission_information["mission_fuel_mass"] - \
             mission_information["trip_fuel_mass"] - \
             mission_information["taxi_out_fuel_mass"]
         consumed_fuel_during_flight = mission_information["trip_fuel_mass"]
@@ -1425,13 +1450,17 @@ def calculate_design_fuel_mass(mission_information=None, maximum_takeoff_mass=No
         # the refueling order is already saved in the sorted tanks
         # = (preparation for the calculation of the refueling-cg-shift)
         design_fuel_mass, design_fuel_mass_per_tank = calculate_fuel_mass_properties(
-            tanks, design_fuel_mass, routing_dict, dict_ac_exchange)
+            tanks, design_fuel_mass_ini, routing_dict, dict_ac_exchange)
+        design_fuel_mass.mass = design_fuel_mass_ini
         design_fuel_mass_takeoff, design_fuel_mass_takeoff_per_tank = calculate_fuel_mass_properties(
-            tanks, design_fuel_mass_at_takeoff, routing_dict, dict_ac_exchange)
+            tanks, design_fuel_mass_at_takeoff_ini, routing_dict, dict_ac_exchange)
+        design_fuel_mass_takeoff.mass = design_fuel_mass_at_takeoff_ini
         design_fuel_mass_midflight, _ = calculate_fuel_mass_properties(
-            tanks, design_fuel_mass_midflight, routing_dict, dict_ac_exchange)
+            tanks, design_fuel_mass_midflight_ini, routing_dict, dict_ac_exchange)
+        design_fuel_mass_midflight.mass = design_fuel_mass_midflight_ini
         design_fuel_mass_landing_minimum, _ = calculate_fuel_mass_properties(
-            tanks, design_fuel_mass_landing_minimum, routing_dict, dict_ac_exchange)
+            tanks, design_fuel_mass_landing_minimum_ini, routing_dict, dict_ac_exchange)
+        design_fuel_mass_landing_minimum.mass = design_fuel_mass_landing_minimum_ini
     else:
         contingency_fuel_factor = 0.05
         alternate_fuel_factor = 0.1
@@ -1454,7 +1483,7 @@ def calculate_design_fuel_mass(mission_information=None, maximum_takeoff_mass=No
             tanks, design_fuel_mass_midflight, routing_dict, dict_ac_exchange)
         design_fuel_mass_landing_minimum, _ = calculate_fuel_mass_properties(
             tanks, design_fuel_mass_landing_minimum, routing_dict, dict_ac_exchange)
-        design_fuel_mass = design_fuel_mass_at_takeoff
+        design_fuel_mass = design_fuel_mass_takeoff
         design_fuel_mass_per_tank = design_fuel_mass_takeoff_per_tank
 
     return (design_fuel_mass_takeoff, design_fuel_mass_midflight, design_fuel_mass_landing_minimum,
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py
index 10605f4d..af2ed424 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """PylonIO
 """
 
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py
index 6e99afca..6f421847 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Tank IO
 """
 from .massPropertiesIO import MassPropertiesIO
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py
index e740580c..4b549579 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Transport task IO"""
 
 
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py
index 0db98037..a6765a90 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing report functionalities for current calculation method."""
 from yattag import Doc
 from bs4 import BeautifulSoup
@@ -34,6 +54,8 @@ def method_html_report(paths_and_names, routing_dict, data_dict, method_specific
          data_dict["operating_mass_empty"].mass),
         ("Maximum Takeoff Mass", "MTOM",
          data_dict["maximum_takeoff_mass"].mass),
+        ("Maximum Landing Mass", "MLM",
+         data_dict["maximum_landing_mass"].mass),
         ("Maximum Zero Fuel Mass", "MZFM",
          data_dict["maximum_zero_fuel_mass"].mass),
         ("Maximum Payload Mass", "-", data_dict["maximum_payload_mass"].mass),
@@ -44,14 +66,15 @@ def method_html_report(paths_and_names, routing_dict, data_dict, method_specific
     ]
 
     aircraft_design_masses = [
-        ("Maximum Takeoff Mass", "MTOM",
-         data_dict["maximum_takeoff_mass"].mass),
-        ("Maximum Landing Mass", "MLM",
-         data_dict["maximum_landing_mass"].mass),
+        ("Design Mass (Mission)", "-",
+         data_dict["design_mass"].mass),
+        ("Design Mass (Takeoff)", "-",
+         data_dict["design_mass_takeoff"].mass),
         ("Design Payload Mass", "-", data_dict["design_payload_mass"].mass),
-        ("Design Fuel Mass", "-", data_dict["design_fuel_mass"].mass),
-        ("Design Fuel Mass Takeoff", "-",
-         data_dict["design_fuel_mass_takeoff"].mass),
+        ("Design Fuel Mass (Mission)", "-",
+         data_dict["mission_fuel_mass"].mass),
+        ("Design Fuel Mass (Takeoff)", "-",
+         data_dict["design_fuel_takeoff"].mass),
         ("Design Fuel Mass Midflight", "-",
          data_dict["design_fuel_mass_midflight"].mass),
         ("Design Fuel Mass Minimum Landing", "-",
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py
index 9247c045..6616338c 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing plotting functionalities for current calculation method."""
 # Import standard libraries.
 import os
@@ -180,8 +200,8 @@ def method_plot(paths_and_names, routing_dict, data_dict, method_specific_output
     plt.plot(data_dict["ferry_range_mass"].cg_mac,
              data_dict["ferry_range_mass"].mass, 'o')
 
-    plt.plot(data_dict["design_mass"].cg_mac,
-             data_dict["design_mass"].mass, 's')
+    plt.plot(data_dict["design_mass_takeoff"].cg_mac,
+             data_dict["design_mass_takeoff"].mass, 's')
 
     # Define legend labels and colors
     legend_labels2 = ['OEM', 'MZFM (max Payload)', 'max Payload + Fuel', 'max Fuel + Payload', 'max Fuel',
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py
index 87a9aa04..a1646acb 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing report functionalities for current calculation method."""
 
 
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py
index c618c2ef..43b00c54 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing export functionalities for current calculation method."""
 # Import standard libraries.
 import xml.etree.ElementTree as ET
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py
index 58c676b0..847a8377 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 import pytest
 
 import xml.etree.ElementTree as ET
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py
index 5db7e91a..6053d2f3 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 import pytest
 
 from basic.methodbasic import calculate_center_of_gravity, calculate_geometric_distance_by_axis, calculate_inertia_by_components
diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py b/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py
index 61e300cf..bd444494 100644
--- a/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py
+++ b/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py
@@ -1,3 +1,23 @@
+# UNICADO - UNIversity Conceptual Aircraft Design and Optimization
+#
+# Copyright (C) 2024 UNICADO consortium
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# Description:
+# This file is part of UNICADO.
+
 """Module providing functions for the preparation of user data."""
 
 
@@ -149,7 +169,7 @@ def user_method_data_output_preparation(data_dict):
     key_output_dict.update(
         data_dict["most_afterward_mass"].user_method_data_generation())
     key_output_dict.update(
-        data_dict["design_mass"].user_method_data_generation())
+        data_dict["design_mass_takeoff"].user_method_data_generation())
     key_output_dict.update(
         data_dict["design_fuel_mass"].user_method_data_generation())
 
-- 
GitLab