From 2c6d176a86e75c6c375107a5314cdf6c48ea4c67 Mon Sep 17 00:00:00 2001
From: Gerrit Pauls <gerrit.pauls@tuhh.de>
Date: Fri, 22 Nov 2024 17:30:27 +0100
Subject: [PATCH] added if condition to catch
 energy_capacity_required_for_mission

---
 libs                                                |  2 +-
 .../multi_engine_propulsion.cpp                     | 13 ++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/libs b/libs
index 09182177..1494d2d5 160000
--- a/libs
+++ b/libs
@@ -1 +1 @@
-Subproject commit 09182177118a6b41e3ae2a097c324541741c9888
+Subproject commit 1494d2d52a4736cca657f4f93d30be2bf1f0b3f8
diff --git a/mission_analysis/src/libs/multi_engine_propulsion/multi_engine_propulsion.cpp b/mission_analysis/src/libs/multi_engine_propulsion/multi_engine_propulsion.cpp
index b72b1609..88e28c21 100644
--- a/mission_analysis/src/libs/multi_engine_propulsion/multi_engine_propulsion.cpp
+++ b/mission_analysis/src/libs/multi_engine_propulsion/multi_engine_propulsion.cpp
@@ -71,11 +71,14 @@ Multi_engine_propulsion::Multi_engine_propulsion(const std::shared_ptr<RuntimeIO
     // Read tank IDs and capacities from the aircraft XML
     std::map<int, double> total_capacity_per_id;
     for (int tank_id(0); tank_id < tank_design.getVector("tank").size(); tank_id++) {
-        int energy_carrier_id(EndnodeReadOnly<int>("energy_carrier_ID").read(tank_definition.at("tank@" + num2Str(tank_id))).value());
-        double tank_capacity(EndnodeReadOnly<double>("maximum_energy_capacity").read(tank_design.at("tank@" + num2Str(tank_id))).value());
-        Tank tmp_tank(tank_id, tank_capacity);
-        this->energy_consumption.at(energy_carrier_id).tanks.push_back(tmp_tank);
-        total_capacity_per_id[energy_carrier_id] += tank_capacity; // sum capacity of this energy carrier
+        //Only take tanks into account that are used for the mission
+        if (EndnodeReadOnly<bool>("energy_capacity_required_for_mission").read(tank_design.at("tank@" + num2Str(tank_id))).value()) {
+            int energy_carrier_id(EndnodeReadOnly<int>("energy_carrier_ID").read(tank_definition.at("tank@" + num2Str(tank_id))).value());
+            double tank_capacity(EndnodeReadOnly<double>("maximum_energy_capacity").read(tank_design.at("tank@" + num2Str(tank_id))).value());
+            Tank tmp_tank(tank_id, tank_capacity);
+            this->energy_consumption.at(energy_carrier_id).tanks.push_back(tmp_tank);
+            total_capacity_per_id[energy_carrier_id] += tank_capacity; // sum capacity of this energy carrier
+        }
     }
     // Get the relative maximum capacity of each tank in comparison to other tanks using the same energy carrier ID
     for (std::pair<const int, Multi_engine_propulsion::Energy_consumption> energy_carrier : this->energy_consumption) {
-- 
GitLab