diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferIOData.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferIOData.cpp index 3cec06f6b0de33ca9820d2b9989241b059be4afd..8b9412eb6785eb55252de23139a8216c427e4db7 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferIOData.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferIOData.cpp @@ -172,13 +172,17 @@ void SchaeferIOData::get_masses(std::shared_ptr<RuntimeIO> rtIO) { /* Fuel masses */ double gravimetric_energy_density = EnergyCarrier("kerosene", rtIO->get_fuel_density(0)).gravimetric_energy_density; - tripfuel_design = EndnodeReadOnly<double>("analysis/mission/design_mission/trip_energy").read(rtIO->acxml).value()/gravimetric_energy_density;; + tripfuel_design = EndnodeReadOnly<double>("analysis/mission/design_mission/trip_energy").read(rtIO->acxml).value()/gravimetric_energy_density; LTO_fuel_design = (EndnodeReadOnly<double>("analysis/mission/design_mission/takeoff_energy").read(rtIO->acxml).value() + EndnodeReadOnly<double>("analysis/mission/design_mission/landing_energy").read(rtIO->acxml).value())/gravimetric_energy_density; - taxi_fuel_design = EndnodeReadOnly<double>("analysis/mission/design_mission/taxi_energy").read(rtIO->acxml).value()/gravimetric_energy_density;; + taxi_fuel_design = (EndnodeReadOnly<double>("analysis/mission/design_mission/taxi_energy/taxi_out_energy").read(rtIO->acxml).value() + + EndnodeReadOnly<double>("analysis/mission/design_mission/taxi_energy/taxi_in_energy").read(rtIO->acxml).value()) + /gravimetric_energy_density; blockfuel_design = taxi_fuel_design + tripfuel_design; - taxi_fuel_study = EndnodeReadOnly<double>("analysis/mission/study_mission/taxi_energy").read(rtIO->acxml).value()/gravimetric_energy_density;; - tripfuel_study = EndnodeReadOnly<double>("analysis/mission/study_mission/trip_energy").read(rtIO->acxml).value()/gravimetric_energy_density;; + taxi_fuel_study = (EndnodeReadOnly<double>("analysis/mission/study_mission/taxi_energy/taxi_out_energy").read(rtIO->acxml).value() + + EndnodeReadOnly<double>("analysis/mission/study_mission/taxi_energy/taxi_in_energy").read(rtIO->acxml).value()) + /gravimetric_energy_density; + tripfuel_study = EndnodeReadOnly<double>("analysis/mission/study_mission/trip_energy").read(rtIO->acxml).value()/gravimetric_energy_density; blockfuel_study = tripfuel_study + taxi_fuel_study; } diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.cpp index 2c84329b4c87c5044bf96474d7e2029c7c875de0..32940cd230b2f2131d08daa37b6b40bb3e55dacb 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.cpp @@ -413,11 +413,13 @@ void Mission::get_mission_segment_data() { /* Calculate Fuel and distance lengths for different phases */ /* Taxi (T/O and Landing)*/ if (mission_type == "design") { - fuel_mass_taxi = EndnodeReadOnly<double>("analysis/mission/design_mission/taxi_energy").read(rtIOPt->acxml).value() - /EnergyCarrier(rtIOPt->get_fuel_type(0), rtIOPt->get_fuel_density(0)).gravimetric_energy_density; + fuel_mass_taxi = (EndnodeReadOnly<double>("analysis/mission/design_mission/taxi_energy/taxi_out_energy").read(rtIOPt->acxml).value() + + EndnodeReadOnly<double>("analysis/mission/design_mission/taxi_energy/taxi_in_energy").read(rtIOPt->acxml).value()) + /EnergyCarrier(rtIOPt->get_fuel_type(0), rtIOPt->get_fuel_density(0)).gravimetric_energy_density; } else { - fuel_mass_taxi = EndnodeReadOnly<double>("analysis/mission/study_mission/taxi_energy").read(rtIOPt->acxml).value() - /EnergyCarrier(rtIOPt->get_fuel_type(0), rtIOPt->get_fuel_density(0)).gravimetric_energy_density; + fuel_mass_taxi = (EndnodeReadOnly<double>("analysis/mission/study_mission/taxi_energy/taxi_out_energy").read(rtIOPt->acxml).value() + + EndnodeReadOnly<double>("analysis/mission/study_mission/taxi_energy/taxi_in_energy").read(rtIOPt->acxml).value()) + /EnergyCarrier(rtIOPt->get_fuel_type(0), rtIOPt->get_fuel_density(0)).gravimetric_energy_density; } unsigned int tmp_line = 1;//Line 0 would be first line with description of columns, therefore start at 1 diff --git a/weight_and_balance_analysis/CMakeLists.txt b/weight_and_balance_analysis/CMakeLists.txt index bac3e2da7e6b8f387d46051bad14465b8e493c30..e4de7ca5c8bfd78f8f7bf82e7ab2b1df743c52dd 100644 --- a/weight_and_balance_analysis/CMakeLists.txt +++ b/weight_and_balance_analysis/CMakeLists.txt @@ -64,51 +64,6 @@ else() add_custom_target(${MODULE_NAME} ALL) endif() -# Check if pipenv is available -if( NOT PIPENV ) - MESSAGE(WARNING "-> pipenv not found, ${MODULE_NAME} will not be available!") - return() -endif() - -# Set the pyinstaller options -set(PYINSTALLER_OPTIONS - --noconfirm - --onefile - --distpath ${CMAKE_CURRENT_LIST_DIR} - --specpath ${CMAKE_CURRENT_LIST_DIR} - --name ${MODULE_NAME} - --paths ${CMAKE_CURRENT_LIST_DIR}/src -) - -# Determine the data separator based on the platform -if (WIN32) - set(DATA_SEP "\\;") -else() - set(DATA_SEP ":") -endif() - -# Add the --add-data option with the correct separator and escaped semicolon -list(APPEND PYINSTALLER_OPTIONS "--add-data=${CMAKE_CURRENT_LIST_DIR}/src${DATA_SEP}src") -# Include other packages -list(APPEND PYINSTALLER_OPTIONS "--collect-all=termcolor") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=matplotlib") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=yattag") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=bs4") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=pandas") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=pyaircraftgeometry2") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=pyunitconversion") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=pyaixml") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=pycoordinatesystemconversion") -list(APPEND PYINSTALLER_OPTIONS "--collect-all=pyenergycarriers") - -# Add the target which compiles the executable using pyinstaller -add_custom_target(${MODULE_NAME} ALL - COMMAND ${PIPENV} run pyinstaller ${PYINSTALLER_OPTIONS} ${CMAKE_CURRENT_LIST_DIR}/${MODULE_SCRIPT} - BYPRODUCTS ${CMAKE_CURRENT_LIST_DIR}/${MODULE_EXECUTABLE} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} # Execute in the top level source directory - COMMENT "Building ${MODULE_NAME} with pyinstaller" -) - # Add install rules install( FILES 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 386054b1eb18c16fee2e526eff5f42db364d4519..edf7281d66a2277c1df130ca83268497b9e3595e 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 @@ -104,14 +104,18 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi passengers_boarding_mode = dict_mod_config["passengers_boarding_mode"] # Read further components and mission data - mission_information = { - "trip_fuel_mass": determine_trip_fuel(dict_ac_exchange), - "mission_fuel_mass": determine_mission_fuel(dict_ac_exchange), - "taxi_out_fuel_mass": determine_taxi_out_fuel(dict_ac_exchange), - "taxi_in_fuel_mass": determine_taxi_in_fuel(dict_ac_exchange), - "takeoff_fuel_mass": determine_takeoff_fuel(dict_ac_exchange, runtime_output), - "landing_fuel_mass": determine_landing_fuel(dict_ac_exchange, runtime_output) - } + if dict_ac_exchange["loaded_mission_energy"]["loaded_mission_energy_ID0"]: + mission_information = { + "trip_fuel_mass": determine_trip_fuel(dict_ac_exchange), + "mission_fuel_mass": determine_mission_fuel(dict_ac_exchange), + "taxi_out_fuel_mass": determine_taxi_out_fuel(dict_ac_exchange), + "taxi_in_fuel_mass": determine_taxi_in_fuel(dict_ac_exchange), + "takeoff_fuel_mass": determine_takeoff_fuel(dict_ac_exchange, runtime_output), + "landing_fuel_mass": determine_landing_fuel(dict_ac_exchange, runtime_output) + } + else: + mission_information = None + transport_task_data = read_transport_task(ac_exchange_file) main_components_mass_properties = read_main_components( ac_exchange_file, dict_ac_exchange, runtime_output) @@ -1481,7 +1485,7 @@ 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_takeoff, design_fuel_mass_takeoff_per_tank = calculate_fuel_mass_properties( - tanks, design_fuel_mass_takeoff) + tanks, design_fuel_mass_takeoff, routing_dict, dict_ac_exchange) design_fuel_mass_midflight, _ = calculate_fuel_mass_properties( tanks, design_fuel_mass_midflight, routing_dict, dict_ac_exchange) design_fuel_mass_landing_minimum, _ = calculate_fuel_mass_properties(