From 0977011584e626741e6a734555f22a8165b7311d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Thu, 6 Mar 2025 14:59:15 +0100 Subject: [PATCH 1/6] correct typo + delete wrong conversion factor --- .../LCA_schaefer/development.cpp | 50 +++++++++---------- .../LCA_schaefer/development.h | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp index 6bd34b10..7f746061 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp @@ -90,16 +90,16 @@ void Development::calculate_development_resources(const std::shared_ptr<Schaefer /* calculation unit MJ! (1 kWh = 3.6 MJ) **/ if (data->configuration.development_emission_setting != "mode_0") { /* Calculation of personnel expenses **/ - theEngeneering.engineering_hours = 1.309 * 5.18 * pow(data->ome, 0.777) * pow(convertUnit(METERPERSECOND, KILOMETERPERHOUR, data->max_operating_speed), 0.894) + theEngineering.engineering_hours = 5.18 * pow(data->ome, 0.777) * pow(convertUnit(METERPERSECOND, KILOMETERPERHOUR, data->max_operating_speed), 0.894) * pow(data->configuration.structural_test_aircraft_number + data->configuration.flight_tests_aircraft_number, 0.163); - theEngeneering.engineering_energy_electricity = energy_perSqmYear_dev[0] * F_netFloor_dev / spaceEfficiency_dev * theEngeneering.engineering_hours / t_labourYear_dev + theEngineering.engineering_energy_electricity = energy_perSqmYear_dev[0] * F_netFloor_dev / spaceEfficiency_dev * theEngineering.engineering_hours / t_labourYear_dev * (1 + data->configuration.engine_engineering_factor); - theEngeneering.engineering_energy_heat = energy_perSqmYear_dev[1] * F_netFloor_dev / spaceEfficiency_dev * theEngeneering.engineering_hours / t_labourYear_dev + theEngineering.engineering_energy_heat = energy_perSqmYear_dev[1] * F_netFloor_dev / spaceEfficiency_dev * theEngineering.engineering_hours / t_labourYear_dev * (1 + data->configuration.engine_engineering_factor); - theEngeneering.engineering_energy_total = theEngeneering.engineering_energy_electricity + theEngeneering.engineering_energy_heat; + theEngineering.engineering_energy_total = theEngineering.engineering_energy_electricity + theEngineering.engineering_energy_heat; myRuntimeInfo->info << "F_netFloor_dev " << F_netFloor_dev << std::endl; myRuntimeInfo->info << "spaceEfficiency_dev " << spaceEfficiency_dev << std::endl; - myRuntimeInfo->info << "T_eng " << theEngeneering.engineering_hours << std::endl; + myRuntimeInfo->info << "T_eng " << theEngineering.engineering_hours << std::endl; myRuntimeInfo->info << "t_labourYear_dev " << t_labourYear_dev << std::endl; /* Calculation of Tests (according to SA by Kuno Jandaurek)**/ /* Energy of the wind tunnel test **/ @@ -164,7 +164,7 @@ void Development::calculate_development_resources(const std::shared_ptr<Schaefer testResources.fuel_test_total = testResources.fuel_engine_test_total + testResources.fuel_flight_test; myRuntimeInfo->debug << "testResources.fuel_engine_test_total: " << testResources.fuel_engine_test_total << std::endl; myRuntimeInfo->debug << "testResources.fuel_flight_test: " << testResources.fuel_flight_test << std::endl; - energy_total = theEngeneering.engineering_energy_total + testResources.energy_test_total; + energy_total = theEngineering.engineering_energy_total + testResources.energy_test_total; fuel_total = testResources.fuel_test_total; // TODO(franz#1#): T135 Possible improvement: Fuel consumption for various types of fuel. Determine missisonen (duration); myRuntimeInfo->info << "fuel_flight_test: " << testResources.fuel_flight_test << std::endl; @@ -403,27 +403,27 @@ void Development::calculate_development_emissions(const std::shared_ptr<Schaefer /* Calculation of emissions from personnel expenses in the development phase*/ //electricity - myRuntimeInfo->info << " Test Engineering Electric Energy: " << theEngeneering.engineering_energy_electricity << " MJ" << std::endl; - engineeringElectricity.CO2 = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.CO2; - engineeringElectricity.H2O = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.H2O; - engineeringElectricity.NOx = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.NOx; - engineeringElectricity.SO2 = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.SO2; - engineeringElectricity.CO = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.CO; - engineeringElectricity.CH4 = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.CH4; - engineeringElectricity.PM10 = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.PM10; - engineeringElectricity.CED = theEngeneering.engineering_energy_electricity * myEcoDatabase.elecEmData.specificEnergy; + myRuntimeInfo->info << " Test Engineering Electric Energy: " << theEngineering.engineering_energy_electricity << " MJ" << std::endl; + engineeringElectricity.CO2 = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.CO2; + engineeringElectricity.H2O = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.H2O; + engineeringElectricity.NOx = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.NOx; + engineeringElectricity.SO2 = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.SO2; + engineeringElectricity.CO = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.CO; + engineeringElectricity.CH4 = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.CH4; + engineeringElectricity.PM10 = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.PM10; + engineeringElectricity.CED = theEngineering.engineering_energy_electricity * myEcoDatabase.elecEmData.specificEnergy; //heating - myRuntimeInfo->info << " Test Engineering Heat Energy: " << theEngeneering.engineering_energy_heat << " MJ" << std::endl; - engineeringHeat.CO2 = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.CO2; - engineeringHeat.H2O = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.H2O; - engineeringHeat.NOx = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.NOx; - engineeringHeat.SO2 = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.SO2; - engineeringHeat.CO = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.CO; - engineeringHeat.CH4 = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.CH4; - engineeringHeat.PM10 = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.PM10; - engineeringHeat.CED = theEngeneering.engineering_energy_heat * myEcoDatabase.heatEmData.specificEnergy; + myRuntimeInfo->info << " Test Engineering Heat Energy: " << theEngineering.engineering_energy_heat << " MJ" << std::endl; + engineeringHeat.CO2 = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.CO2; + engineeringHeat.H2O = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.H2O; + engineeringHeat.NOx = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.NOx; + engineeringHeat.SO2 = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.SO2; + engineeringHeat.CO = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.CO; + engineeringHeat.CH4 = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.CH4; + engineeringHeat.PM10 = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.PM10; + engineeringHeat.CED = theEngineering.engineering_energy_heat * myEcoDatabase.heatEmData.specificEnergy; //Total personnel expenses - myRuntimeInfo->info << " Test Engineering Energy Total: " << theEngeneering.engineering_energy_total << " MJ" << std::endl; + myRuntimeInfo->info << " Test Engineering Energy Total: " << theEngineering.engineering_energy_total << " MJ" << std::endl; engineeringTotal.CO2 = engineeringElectricity.CO2 + engineeringHeat.CO2; engineeringTotal.H2O = engineeringElectricity.H2O + engineeringHeat.H2O; engineeringTotal.NOx = engineeringElectricity.NOx + engineeringHeat.NOx; diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.h b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.h index 8a31df80..d444bf9a 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.h +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.h @@ -95,7 +95,7 @@ class Development{ */ virtual ~Engineering(); }; - Engineering theEngeneering; /**< Object of class engineering contains personnel expenses for engineering */ + Engineering theEngineering; /**< Object of class engineering contains personnel expenses for engineering */ double energy_total;/**< Total energy demand for the development phase [MJ] */ double fuel_total;/**< total fuel demand for the development phase [kg] */ -- GitLab From 88001829828a15c49d125d6c5a61b208430a4aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Thu, 27 Mar 2025 11:37:39 +0100 Subject: [PATCH 2/6] correct energy unit in database --- .../emission_calculation/ecoDatabase.cpp | 92 +++++++++---------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/ecoDatabase.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/ecoDatabase.cpp index 7f05c18e..fa9f2846 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/ecoDatabase.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/ecoDatabase.cpp @@ -62,7 +62,7 @@ ecoDatabase::ecoDatabase() { matEmData.at(0).POCP = 2.82 * pow(10, -3); matEmData.at(0).OLDP = 2.46 * pow(10, -9); matEmData.at(0).PMFP = 1.88 * pow(10, -2); - matSpecificEnergy.push_back(45.56 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + matSpecificEnergy.push_back(45.56 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Carbon fiber reinforced plastic // TODO(franz#1#): T133 CF and epoxy resin should be listed separately or determined by config CF content of CFRP user? double rateCF = 0.65; @@ -82,7 +82,7 @@ ecoDatabase::ecoDatabase() { matEmData.at(1).POCP = rateCF * 8.08 * pow(10, -3) + (1 - rateCF) * 1.75 * pow(10, -3); matEmData.at(1).OLDP = rateCF * 3.04 * pow(10, -9) + (1 - rateCF) * 1.56 * pow(10, -10); matEmData.at(1).PMFP = rateCF * 2.48 * pow(10, -2) + (1 - rateCF) * 3.12 * pow(10, -3); //GaBi but not CML2001, rather ReCiPe 1.08 - matSpecificEnergy.push_back((rateCF * 2.36 * pow(10, 2) + (1 - rateCF) * 3.55 * pow(10, 1))*convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + matSpecificEnergy.push_back((rateCF * 2.36 * pow(10, 2) + (1 - rateCF) * 3.55 * pow(10, 1))*convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Steel matEmData.push_back(EmissionsData(std::string("St"))); matEmData.at(2).CO2 = 2.01; @@ -98,7 +98,7 @@ ecoDatabase::ecoDatabase() { matEmData.at(2).POCP = 1.3 * pow(10, -3); matEmData.at(2).OLDP = 6.51 * pow(10, -12); matEmData.at(2).PMFP = 3.41 * pow(10, -3); - matSpecificEnergy.push_back(6.14 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + matSpecificEnergy.push_back(6.14 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Titan matEmData.push_back(EmissionsData(std::string("Ti"))); matEmData.at(3).CO2 = 1.48 * pow(10, 1); @@ -114,7 +114,7 @@ ecoDatabase::ecoDatabase() { matEmData.at(3).POCP = 1.4 * pow(10, -2); matEmData.at(3).OLDP = 1.18 * pow(10, -9); matEmData.at(3).PMFP = 3.45 * pow(10, -2); - matSpecificEnergy.push_back(69.72 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + matSpecificEnergy.push_back(69.72 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); // //Chrom // matEmData.push_back(std::string("Cr")); // matEmData.at(4).CO2 = 6.68; @@ -162,7 +162,7 @@ ecoDatabase::ecoDatabase() { matEmData.at(4).POCP = 1.61 * pow(10, -2); matEmData.at(4).OLDP = 4.6 * pow(10, -10); matEmData.at(4).PMFP = 7.26 * pow(10, -2); - matSpecificEnergy.push_back(43.89 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + matSpecificEnergy.push_back(43.89 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); // //Plastic // matEmData.push_back(std::string("Pl")); // matEmData.at(7).CO2 = 7.91; @@ -182,36 +182,36 @@ ecoDatabase::ecoDatabase() { /* Ecological database of energy supply according to MA Arzdorf p.98 */ /* Factors, resource energy/usable energy */ //electricity data in [kg/MJ] - elecEmData.CO2 = 4.5 * pow(10, -1) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.H2O = 4.01 * pow(10, 0) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.NOx = 7.63 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.SO2 = 1.47 * pow(10, -3) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.CO = 3.14 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.CH4 = 9.11 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.PM10 = 1.1 * pow(10, -5) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); + elecEmData.CO2 = 4.5 * pow(10, -1) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.H2O = 4.01 * pow(10, 0) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.NOx = 7.63 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.SO2 = 1.47 * pow(10, -3) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.CO = 3.14 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.CH4 = 9.11 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.PM10 = 1.1 * pow(10, -5) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); //potential [1/MJ] - elecEmData.GWP100 = 4.75 * pow(10, -1) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.AP = 2.24 * pow(10, -3) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.ADP = 5.81 * pow(10, -8) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.POCP = 1.33 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.OLDP = 3.25 * pow(10, -10) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - elecEmData.PMFP = 5.36 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); + elecEmData.GWP100 = 4.75 * pow(10, -1) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.AP = 2.24 * pow(10, -3) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.ADP = 5.81 * pow(10, -8) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.POCP = 1.33 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.OLDP = 3.25 * pow(10, -10) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + elecEmData.PMFP = 5.36 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); elecEmData.specificEnergy = 2.92;//how much energy is needed to produce 1 kWh (for final consumers)? //heating data in [kg/MJ] - heatEmData.CO2 = 2.28 * pow(10, -1) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.H2O = 2.13 * pow(10, -1) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.NOx = 1.84 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.SO2 = 9.79 * pow(10, -5) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.CO = 7.45 * pow(10, -5) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.CH4 = 6.16 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.PM10 = 5.54 * pow(10, -7) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); + heatEmData.CO2 = 2.28 * pow(10, -1) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.H2O = 2.13 * pow(10, -1) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.NOx = 1.84 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.SO2 = 9.79 * pow(10, -5) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.CO = 7.45 * pow(10, -5) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.CH4 = 6.16 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.PM10 = 5.54 * pow(10, -7) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); //potential [1/MJ] - heatEmData.GWP100 = 2.44 * pow(10, -1) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.AP = 2.14 * pow(10, -4) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.ADP = 8.86 * pow(10, -9) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.POCP = 3.71 * pow(10, -5) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.OLDP = 4.32 * pow(10, -12) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); - heatEmData.PMFP = 6.55 * pow(10, -5) / convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.); + heatEmData.GWP100 = 2.44 * pow(10, -1) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.AP = 2.14 * pow(10, -4) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.ADP = 8.86 * pow(10, -9) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.POCP = 3.71 * pow(10, -5) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.OLDP = 4.32 * pow(10, -12) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); + heatEmData.PMFP = 6.55 * pow(10, -5) / convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.); heatEmData.specificEnergy = 1.23; /* Ecological database of fuel production according to MA Arzdorf p.96 */ /* Factor: Resource energy per kg of produced fuel */ @@ -232,7 +232,7 @@ ecoDatabase::ecoDatabase() { fuelProdEmData.back().POCP = 4.38 * pow(10, -4.); fuelProdEmData.back().OLDP = 9.48 * pow(10, -12.); fuelProdEmData.back().PMFP = 6.70 * pow(10, -4.); - fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 14.89)); + fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, MEGA, JOULE, 14.89)); /*Diesel*/ fuelProdEmData.push_back(EmissionsData(std::string("Diesel"))); fuelProdEmData.back().CO2 = 3.6E-01; @@ -249,7 +249,7 @@ ecoDatabase::ecoDatabase() { fuelProdEmData.back().POCP = 4.63E-04; fuelProdEmData.back().OLDP = 1.68E-11; fuelProdEmData.back().PMFP = 8.68E-04; - fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 15.06)); + fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, MEGA, JOULE, 15.06)); /*Heating oil*/ fuelProdEmData.push_back(EmissionsData(std::string("HeatOil"))); fuelProdEmData.back().CO2 = 3.4E-01; @@ -266,7 +266,7 @@ ecoDatabase::ecoDatabase() { fuelProdEmData.back().POCP = 4.72E-04; fuelProdEmData.back().OLDP = 1.37E-11; fuelProdEmData.back().PMFP = 7.29E-04; - fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 15.14)); + fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, MEGA, JOULE, 15.14)); /*Gasoline*/ fuelProdEmData.push_back(EmissionsData(std::string("Gasoline"))); fuelProdEmData.back().CO2 = 6.34E-01; @@ -283,7 +283,7 @@ ecoDatabase::ecoDatabase() { fuelProdEmData.back().POCP = 6.64E-04; fuelProdEmData.back().OLDP = 2.58E-11; fuelProdEmData.back().PMFP = 1.57E-03; - fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 15.86)); + fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, MEGA, JOULE, 15.86)); /*NaturalGas*/ fuelProdEmData.push_back(EmissionsData(std::string("NaturalGas"))); fuelProdEmData.back().CO2 = 2.9E-01; @@ -300,7 +300,7 @@ ecoDatabase::ecoDatabase() { fuelProdEmData.back().POCP = 3.71E-04; fuelProdEmData.back().OLDP = 5.37E-11; fuelProdEmData.back().PMFP = 3.75E-04; - fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 15.44)); + fuelSpecificEnergy.push_back(convertUnit(KILO, WATTHOUR, MEGA, JOULE, 15.44)); /* Ecological database of transport logistics according to MA Arzdorf p.97 Fig.B.4*/ //DATA in [kg/(1000kg*km)] //Aircraft @@ -508,7 +508,7 @@ ecoDatabase::ecoDatabase() { // incinerationEmData.at(0).POCP = -4.6*pow(10.,-4.); // incinerationEmData.at(0).OLDP = 3.7*pow(10.,-8.); // incinerationEmData.at(0).PMFP = -7.4*pow(10.,-4.); - incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); //no value available, but anyway aluminium will not be burned + incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //no value available, but anyway aluminium will not be burned //carbon fiber // positive values given for Achim, but probably error (see Hedlund), therefore used negatively! incinerationEmData.push_back(EmissionsData(std::string("CFRP"))); @@ -525,7 +525,7 @@ ecoDatabase::ecoDatabase() { // incinerationEmData.at(1).POCP = -5.71*pow(10,-4); // incinerationEmData.at(1).OLDP = -1.39*pow(10,-9); // incinerationEmData.at(1).PMFP = -2.3*pow(10,-3); - incinerationSpecificEnergy.push_back(-6.84 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + incinerationSpecificEnergy.push_back(-6.84 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Steel incinerationEmData.push_back(EmissionsData(std::string("St"))); // incinerationEmData.at(2).CO2 = incinerationEmData.at(0).CO2; @@ -541,7 +541,7 @@ ecoDatabase::ecoDatabase() { // incinerationEmData.at(2).POCP = incinerationEmData.at(0).POCP; // incinerationEmData.at(2).OLDP = incinerationEmData.at(0).OLDP; // incinerationEmData.at(2).PMFP = incinerationEmData.at(0).PMFP; - incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Titan incinerationEmData.push_back(EmissionsData(std::string("Ti"))); // incinerationEmData.at(3).CO2 = incinerationEmData.at(0).CO2; @@ -557,7 +557,7 @@ ecoDatabase::ecoDatabase() { // incinerationEmData.at(3).POCP = incinerationEmData.at(0).POCP; // incinerationEmData.at(3).OLDP = incinerationEmData.at(0).OLDP; // incinerationEmData.at(3).PMFP = incinerationEmData.at(0).PMFP; - incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); // //Chrom // incinerationEmData.push_back(std::string("Cr")); // incinerationEmData.at(4).CO2 = incinerationEmData.at(0).CO2; @@ -603,7 +603,7 @@ ecoDatabase::ecoDatabase() { // incinerationEmData.at(6).POCP = incinerationEmData.at(0).POCP; // incinerationEmData.at(6).OLDP = incinerationEmData.at(0).OLDP; // incinerationEmData.at(6).PMFP = incinerationEmData.at(0).PMFP; - incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + incinerationSpecificEnergy.push_back(0.0 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); // //plastic // incinerationEmData.push_back(std::string("Pl")); // incinerationEmData.at(7).CO2 = 2.38; @@ -636,7 +636,7 @@ ecoDatabase::ecoDatabase() { disposalEmData.at(0).POCP = 8.09 * pow(10, -6); disposalEmData.at(0).OLDP = 1.87 * pow(10, -13); disposalEmData.at(0).PMFP = 2.23 * pow(10, -4); - disposalSpecificEnergy.push_back(0.06 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + disposalSpecificEnergy.push_back(0.06 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Carbon fiber (no data available at Arzdorf), assumption: like plastic-> data of plastic disposalEmData.push_back(EmissionsData(std::string("CFRP"))); disposalEmData.at(1).CO2 = 6.26 * pow(10, -2); @@ -652,7 +652,7 @@ ecoDatabase::ecoDatabase() { disposalEmData.at(1).POCP = 2.77 * pow(10, -5); disposalEmData.at(1).OLDP = 2.79 * pow(10, -12); disposalEmData.at(1).PMFP = 4.27 * pow(10, -4); - disposalSpecificEnergy.push_back(0.34 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + disposalSpecificEnergy.push_back(0.34 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Steel disposalEmData.push_back(EmissionsData(std::string("St"))); disposalEmData.at(2).CO2 = 9.16 * pow(10, -3); @@ -668,7 +668,7 @@ ecoDatabase::ecoDatabase() { disposalEmData.at(2).POCP = 5.69 * pow(10, -6); disposalEmData.at(2).OLDP = 2.99 * pow(10, -13); disposalEmData.at(2).PMFP = 5.66 * pow(10, -5); - disposalSpecificEnergy.push_back(0.05 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + disposalSpecificEnergy.push_back(0.05 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Titan disposalEmData.push_back(EmissionsData(std::string("Ti"))); disposalEmData.at(3).CO2 = disposalEmData.at(2).CO2; @@ -684,7 +684,7 @@ ecoDatabase::ecoDatabase() { disposalEmData.at(3).POCP = disposalEmData.at(2).POCP; disposalEmData.at(3).OLDP = disposalEmData.at(2).OLDP; disposalEmData.at(3).PMFP = disposalEmData.at(2).PMFP; - disposalSpecificEnergy.push_back(0.05 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + disposalSpecificEnergy.push_back(0.05 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); // //Chrom // disposalEmData.push_back(std::string("Cr")); // disposalEmData.at(4).CO2 = disposalEmData.at(2).CO2; @@ -732,7 +732,7 @@ ecoDatabase::ecoDatabase() { disposalEmData.at(4).POCP = disposalEmData.at(2).POCP; disposalEmData.at(4).OLDP = disposalEmData.at(2).OLDP; disposalEmData.at(4).PMFP = disposalEmData.at(2).PMFP; - disposalSpecificEnergy.push_back(0.05 * convertUnit(KILO, WATTHOUR, NOPREFIX, JOULE, 1.)); + disposalSpecificEnergy.push_back(0.05 * convertUnit(KILO, WATTHOUR, MEGA, JOULE, 1.)); //Plastic // disposalEmData.push_back(std::string("Pl")); // disposalEmData.at(7).CO2 = 6.26*pow(10,-2); -- GitLab From cc8c20e883cc1e1347afa9a4ac0250adad1c2f14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Thu, 27 Mar 2025 11:46:34 +0100 Subject: [PATCH 3/6] Delete unused BPR --- .../mission_emissions/flightPath.cpp | 6 ++---- .../mission_emissions/flightPath.h | 5 +---- .../mission_emissions/mission.cpp | 12 +++--------- .../emission_calculation/mission_emissions/mission.h | 1 - 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.cpp index 867d3dfd..295fba05 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.cpp @@ -45,8 +45,7 @@ flightPathPoint::flightPathPoint(double aTime, double aSt3StaticTemperature, double aSt3TotalPressure, double aSt3Mach, - double aSt4FuelAir, - double aBPR) + double aSt4FuelAir) : time(aTime), range(aRange), @@ -64,8 +63,7 @@ flightPathPoint::flightPathPoint(double aTime, St3StaticTemperature(aSt3StaticTemperature), St3TotalPressure(aSt3TotalPressure), St3Mach(aSt3Mach), - St4FuelAir(aSt4FuelAir), - BPR(aBPR) { + St4FuelAir(aSt4FuelAir) { //ctor } diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.h b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.h index 7e978894..ac364fb7 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.h +++ b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/flightPath.h @@ -46,7 +46,6 @@ class flightPathPoint { double St3TotalPressure; /**< Total pressure at last compressor exit, cold side heat exchanger inlet [kPa]*/ double St3Mach; /**< Mach at last compressor exit, cold side heat exchanger inlet [K]*/ double St4FuelAir; /**< Fuel/Air at burner exit [-]*/ - double BPR; /**< By pass ratio [-] */ /** \brief Constructor of class flightPathPoint * \param aTime: Time [s] @@ -66,7 +65,6 @@ class flightPathPoint { * \param aSt3TotalPressure: Total pressure at last compressor exit, cold side heat exchanger inlet [kPa] * \param aSt3Mach: Mach at last compressor exit, cold side heat exchanger inlet [-] * \param aSt4FuelAir: Fuel/Air at burner exit [-] - * \param aBPR: By pass ratio [-] */ flightPathPoint(double aTime, double aRange, @@ -84,8 +82,7 @@ class flightPathPoint { double aSt3StaticTemperature, double aSt3TotalPressure, double aSt3Mach, - double aSt4FuelAir, - double aBPR); + double aSt4FuelAir); /** \brief Destructor of class flightPathPoint */ virtual ~flightPathPoint(); 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 3c3b08be..df0e0ffd 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 @@ -121,8 +121,7 @@ void Mission::calculate_mission(const std::string& missionType, const std::share missionInfo.at(i).St3StaticTemperature, missionInfo.at(i).St3TotalPressure, missionInfo.at(i).St3Mach, - missionInfo.at(i).St4FuelAir, - missionInfo.at(i).BPR)); + missionInfo.at(i).St4FuelAir); } /* Create emissionspath.csv*/ write_emissions_path_csv(); @@ -397,9 +396,6 @@ void Mission::get_mission_data() { tmpMissionData.St3TotalPressure = missionIOData->myEngine.get_physical_properties_stage(StageProperties::TotalPressure, EngineStage::St3); tmpMissionData.St3Mach = missionIOData->myEngine.get_physical_properties_stage(StageProperties::MachNumber, EngineStage::St3); tmpMissionData.St4FuelAir = missionIOData->myEngine.get_physical_properties_stage(StageProperties::FuelToAirRatio, EngineStage::St4); - tmpMissionData.BPR = (missionIOData->myEngine.get_physical_properties_stage(StageProperties::MassFlow, EngineStage::St22) > 0.) ? - missionIOData->myEngine.get_physical_properties_stage(StageProperties::MassFlow, EngineStage::St13) - / missionIOData->myEngine.get_physical_properties_stage(StageProperties::MassFlow, EngineStage::St22) : 0.; missionInfo.push_back(MissionData()); missionInfo.back() = tmpMissionData; } @@ -509,7 +505,7 @@ void Mission::write_emissions_path_csv() { } emissions_csv_stream << "(1) Time [s];(2) Range [m];(3) Altitude [m];(4) TAS m/s];(5) Mach [-];(6) T_amb [K];(7) P_amb [N/m^2];(8) Consumed Fuel [kg];" "(9) Fuel Flow [kg/s];(10) NOx [kg/s];(11) N_1 [-];(12) ST3MassFlow [kg/s];(13) St3TotalTemperature [K];(14) St3StaticTemperature [K];" - "(15) St3TotalPressure [kPa];(16) St3Mach [-];(17) St4FuelAir [-];(18) BPR [-];(19) modeName;"; + "(15) St3TotalPressure [kPa];(16) St3Mach [-];(17) St4FuelAir [-];(18) modeName;"; for (unsigned int i = 0; i < missionInfo.size(); i++) { emissions_csv_stream << std::endl; emissions_csv_stream << std::setprecision(10) << missionInfo.at(i).time << ";"; @@ -529,7 +525,6 @@ void Mission::write_emissions_path_csv() { emissions_csv_stream << std::setprecision(10) << missionInfo.at(i).St3TotalPressure << ";"; emissions_csv_stream << std::setprecision(10) << missionInfo.at(i).St3Mach << ";"; emissions_csv_stream << std::setprecision(10) << missionInfo.at(i).St4FuelAir << ";"; - emissions_csv_stream << std::setprecision(10) << missionInfo.at(i).BPR << ";"; emissions_csv_stream << missionInfo.at(i).modeName << ";"; } emissions_csv_stream.close(); @@ -753,8 +748,7 @@ Mission::MissionData::MissionData() St3StaticTemperature(0.), St3TotalPressure(0.), St3Mach(0.), - St4FuelAir(0.), - BPR(0.) { + St4FuelAir(0.) { //ctor }; diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.h b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.h index 14748747..7518a54a 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.h +++ b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/mission.h @@ -95,7 +95,6 @@ class Mission { double St3TotalPressure; /**< Total pressure at last compressor exit, cold side heat exchanger inlet [kPa]*/ double St3Mach; /**< Mach at last compressor exit, cold side heat exchanger inlet [K]*/ double St4FuelAir; /**< Fuel/Air at last compressor exit, cold side heat exchanger inlet [-]*/ - double BPR; /**< By pass ratio [-] */ /** \brief Constructor of class MissionData */ -- GitLab From 7f626d0502dbb9de86b9a6c8e903a0ce35bf602f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Thu, 27 Mar 2025 13:21:26 +0100 Subject: [PATCH 4/6] Delete unused functions/parameter --- .../LCA_schaefer/calculateEmissions_schaefer.cpp | 4 ++-- .../life_cycle_emissions/LCA_schaefer/operation.cpp | 3 +-- .../life_cycle_emissions/LCA_schaefer/operation.h | 3 +-- .../life_cycle_emissions/LCA_schaefer/production.cpp | 2 +- .../life_cycle_emissions/LCA_schaefer/production.h | 3 +-- .../life_cycle_emissions/LCA_schaefer/schaeferReport.cpp | 3 --- .../mission_emissions/hydrogen_combustion_emissions.cpp | 2 +- .../emission_calculation/mission_emissions/mission.cpp | 2 +- .../air_quality_index_schaefer/AQISchaeferReport.cpp | 3 --- .../src/standard_strategy/standard_strategy.cpp | 3 --- .../src/standard_strategy/standard_strategy.h | 9 --------- 11 files changed, 8 insertions(+), 29 deletions(-) diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/calculateEmissions_schaefer.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/calculateEmissions_schaefer.cpp index 16bcb1e1..97556d7c 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/calculateEmissions_schaefer.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/calculateEmissions_schaefer.cpp @@ -37,12 +37,12 @@ void LifeCycleEmissionsSchaefer::run(const std::shared_ptr<RuntimeIO> &rtIO, std /* Production phase */ myRuntimeInfo->out << " Calculation of production phase..." << std::endl; - theProduction.calculate_production_resources(schaeferIOData, rtIO); + theProduction.calculate_production_resources(schaeferIOData); theProduction.calculate_production_emissions(schaeferIOData); /* Operation phase*/ myRuntimeInfo->out << " Calculation of operation phase..." << std::endl; - theOperation.calculate_operation_resources(schaeferIOData, rtIO, theProduction); + theOperation.calculate_operation_resources(schaeferIOData,theProduction); theOperation.calculate_operation_emissions(schaeferIOData, theProduction); /* End-of-Life Phase */ diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.cpp index 22339ea5..c111a668 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.cpp @@ -41,8 +41,7 @@ Operation::Operation() missions_fuel(0.) { } -void Operation::calculate_operation_resources(const std::shared_ptr<SchaeferIOData>& data, const std::shared_ptr<RuntimeIO>& rtIO, - const Production &theProduction) {//Due to maintenance +void Operation::calculate_operation_resources(const std::shared_ptr<SchaeferIOData>& data, const Production &theProduction) {//Due to maintenance /* Maintenance Spare Parts */ double engineCostRatioMaterial(0.75);//Assumption: Material Engine Maintenance 3 times as high as Labour (see PhD Schaefer) double conversionFactor = convertUnit(SECOND, HOUR, data->flight_time_study) * data->flights_per_year * data->duration_operation; // Used for [$/FH] -> [$/LC] diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.h b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.h index 193279cc..6088a17e 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.h +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/operation.h @@ -105,10 +105,9 @@ class Operation { /** \brief Calculates the energy demand due to maintance during operation phase * \param data Access to IO data - * \param rtIO Access to rtIO * \param theProduction Access to production data */ - void calculate_operation_resources(const std::shared_ptr<SchaeferIOData>& data, const std::shared_ptr<RuntimeIO>& rtIO, const Production &theProduction); + void calculate_operation_resources(const std::shared_ptr<SchaeferIOData>& data, const Production &theProduction); /** \brief Calculates the emissions during operation phase * \param data Access to IO data diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.cpp index b3749904..e8fef8e6 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.cpp @@ -37,7 +37,7 @@ Production::Production() energy_total(0.) { } -void Production::calculate_production_resources(const std::shared_ptr<SchaeferIOData>& data, const std::shared_ptr<RuntimeIO>& rtIO) { +void Production::calculate_production_resources(const std::shared_ptr<SchaeferIOData>& data) { /* Raw material and production */ //Distribution of components double energyRecycling = 0; diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.h b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.h index 2d45190f..80e9afc3 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.h +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/production.h @@ -178,9 +178,8 @@ class Production{ /** \brief Function to calculate the energy demand of the production phase * \param data Access to IO data - * \param rtIO Access to rtIO */ - void calculate_production_resources(const std::shared_ptr<SchaeferIOData>& data, const std::shared_ptr<RuntimeIO>& rtIO); + void calculate_production_resources(const std::shared_ptr<SchaeferIOData>& data); /** \brief Function to calculate the emissions of the production phase * \param data Access to IO data diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp index 9323af58..adc4787a 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp @@ -225,9 +225,6 @@ void StandardStrategy::set_html_body_LCA_schaefer(const std::shared_ptr<RuntimeI } } -void StandardStrategy::set_tex_body_LCA_schaefer(const std::shared_ptr<RuntimeIO> &rtIO) { - // TODO -} diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/hydrogen_combustion_emissions.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/hydrogen_combustion_emissions.cpp index abdd53a2..bf1c7349 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/hydrogen_combustion_emissions.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/mission_emissions/hydrogen_combustion_emissions.cpp @@ -86,7 +86,7 @@ void Mission::hydrogen_combustion_NOx_P3T3() { this->cruise.NOx = hydrogenNOxFactor * this->cruise.NOx; this->LTO_Total.NOx = this->LTO.NOx * flights_per_lifecycle; this->cruiseTotal.NOx = this->cruise.NOx * flights_per_lifecycle; - for (int16_t i(0); i < missionInfo.size(); i++) { + for (size_t i(0); i < missionInfo.size(); i++) { emissionsFlow[i].NOx = missionInfo[i].fuelFlow * hydrogenNOxFactor * EINOxKerosene[i]; } 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 df0e0ffd..254df68b 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 @@ -121,7 +121,7 @@ void Mission::calculate_mission(const std::string& missionType, const std::share missionInfo.at(i).St3StaticTemperature, missionInfo.at(i).St3TotalPressure, missionInfo.at(i).St3Mach, - missionInfo.at(i).St4FuelAir); + missionInfo.at(i).St4FuelAir)); } /* Create emissionspath.csv*/ write_emissions_path_csv(); diff --git a/ecological_assessment/src/standard_strategy/impact_calculation/air_quality_index_schaefer/AQISchaeferReport.cpp b/ecological_assessment/src/standard_strategy/impact_calculation/air_quality_index_schaefer/AQISchaeferReport.cpp index 62f57b49..9ea44393 100644 --- a/ecological_assessment/src/standard_strategy/impact_calculation/air_quality_index_schaefer/AQISchaeferReport.cpp +++ b/ecological_assessment/src/standard_strategy/impact_calculation/air_quality_index_schaefer/AQISchaeferReport.cpp @@ -36,6 +36,3 @@ void StandardStrategy::set_html_body_AQI_schaefer() { << html::table_end; } -void StandardStrategy::set_tex_body_AQI_schaefer(const std::shared_ptr<RuntimeIO> &rtIO) { - // TODO -} diff --git a/ecological_assessment/src/standard_strategy/standard_strategy.cpp b/ecological_assessment/src/standard_strategy/standard_strategy.cpp index 3340c208..2dc51d90 100644 --- a/ecological_assessment/src/standard_strategy/standard_strategy.cpp +++ b/ecological_assessment/src/standard_strategy/standard_strategy.cpp @@ -125,8 +125,6 @@ void StandardStrategy::report() { if (life_cycle_emissions_method == "SCHAEFER" && rtIO->aircraft_energy_carrier_type() == "kerosene" && rtIO->aircraft_configuration_type() == "tube_and_wing") { myRuntimeInfo->out << " Write " << life_cycle_emissions_method << " emissions report body" << std::endl; set_html_body_LCA_schaefer(rtIO); - set_tex_body_LCA_schaefer(rtIO); - generate_life_cycle_emissions_csv_schaefer(); } if (climate_model_method == "DALLARA") { @@ -137,7 +135,6 @@ void StandardStrategy::report() { if (air_quality_method == "SCHAEFER") { myRuntimeInfo->out << " Write " << air_quality_method << " air quality report body" << std::endl; set_html_body_AQI_schaefer(); - set_tex_body_AQI_schaefer(rtIO); } report_->htmlReportStream() << html::div_end; // end html box report_->generateReports(); diff --git a/ecological_assessment/src/standard_strategy/standard_strategy.h b/ecological_assessment/src/standard_strategy/standard_strategy.h index b6c2b020..c12b139d 100644 --- a/ecological_assessment/src/standard_strategy/standard_strategy.h +++ b/ecological_assessment/src/standard_strategy/standard_strategy.h @@ -77,10 +77,6 @@ class StandardStrategy : public Strategy { * \param rtIO Access to runtime IO */ void set_html_body_LCA_schaefer(const std::shared_ptr<RuntimeIO> &rtIO); - /** \brief Define the content of the Tex Report body - * \param rtIO Access to runtime IO - */ - void set_tex_body_LCA_schaefer(const std::shared_ptr<RuntimeIO> &rtIO); /* Plotting functions LCA_Schaefer*/ /** \brief Generates plot of inflight emissions @@ -115,11 +111,6 @@ class StandardStrategy : public Strategy { /** \brief Define the content of the HTML Report body */ void set_html_body_AQI_schaefer(); - /** \brief Define the content of the Tex Report body - * \param rtIO Access to runtime IO - */ - void set_tex_body_AQI_schaefer(const std::shared_ptr<RuntimeIO> &rtIO); - private: -- GitLab From 910a06dc91568c43fe28b9c28af3a98cde1535cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Thu, 27 Mar 2025 13:48:31 +0100 Subject: [PATCH 5/6] Add missing test emissions --- .../life_cycle_emissions/LCA_schaefer/development.cpp | 6 ++++++ .../life_cycle_emissions/LCA_schaefer/schaeferReport.cpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp index 7f746061..88c21804 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/development.cpp @@ -179,34 +179,40 @@ void Development::calculate_development_emissions(const std::shared_ptr<Schaefer /* Wind tunnel Test*/ myRuntimeInfo->info << " Wind tunnel Test Energy: " << testResources.energy_wind_tunnel_test << " MJ" << std::endl; windTunnelTests.CO2 = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.CO2; + windTunnelTests.H2O = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.H2O; windTunnelTests.CH4 = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.CH4; windTunnelTests.N2O = testResources.energy_wind_tunnel_test * myEcoDatabase.elecN2O; windTunnelTests.PFC = testResources.energy_wind_tunnel_test * myEcoDatabase.elecPFC; windTunnelTests.NOx = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.NOx; windTunnelTests.SO2 = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.SO2; windTunnelTests.CO = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.CO; + windTunnelTests.PM10 = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.PM10; windTunnelTests.NMVOC = testResources.energy_wind_tunnel_test * myEcoDatabase.elecNMVOC; windTunnelTests.CED = testResources.energy_wind_tunnel_test * myEcoDatabase.elecEmData.specificEnergy; /* Structure Test*/ myRuntimeInfo->info << " Structure Test Energy (Fatigue Test): " << testResources.energy_fatigue_test << " MJ" << std::endl; structureTests.CO2 = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.CO2; + structureTests.H2O = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.H2O; structureTests.CH4 = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.CH4; structureTests.N2O = testResources.energy_fatigue_test * myEcoDatabase.elecN2O; structureTests.PFC = testResources.energy_fatigue_test * myEcoDatabase.elecPFC; structureTests.NOx = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.NOx; structureTests.SO2 = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.SO2; structureTests.CO = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.CO; + structureTests.PM10 = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.PM10; structureTests.NMVOC = testResources.energy_fatigue_test * myEcoDatabase.elecNMVOC; structureTests.CED = testResources.energy_fatigue_test * myEcoDatabase.elecEmData.specificEnergy; /* System Test*/ myRuntimeInfo->info << " System Test Energy: " << testResources.energy_system_tests << " MJ" << std::endl; systemTests.CO2 = testResources.energy_system_tests * myEcoDatabase.elecEmData.CO2; + systemTests.H2O = testResources.energy_system_tests * myEcoDatabase.elecEmData.H2O; systemTests.CH4 = testResources.energy_system_tests * myEcoDatabase.elecEmData.CH4; systemTests.N2O = testResources.energy_system_tests * myEcoDatabase.elecN2O; systemTests.PFC = testResources.energy_system_tests * myEcoDatabase.elecPFC; systemTests.NOx = testResources.energy_system_tests * myEcoDatabase.elecEmData.NOx; systemTests.SO2 = testResources.energy_system_tests * myEcoDatabase.elecEmData.SO2; systemTests.CO = testResources.energy_system_tests * myEcoDatabase.elecEmData.CO; + systemTests.PM10 = testResources.energy_system_tests * myEcoDatabase.elecEmData.PM10; systemTests.NMVOC = testResources.energy_system_tests * myEcoDatabase.elecNMVOC; systemTests.CED = testResources.energy_system_tests * myEcoDatabase.elecEmData.specificEnergy; /* Ground Test incl. fuel prod.*/ diff --git a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp index adc4787a..40bcaedd 100644 --- a/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp +++ b/ecological_assessment/src/standard_strategy/emission_calculation/life_cycle_emissions/LCA_schaefer/schaeferReport.cpp @@ -241,7 +241,7 @@ void StandardStrategy::generate_life_cycle_emissions_csv_schaefer() { csv << "# all emission data in [kg]; Energy in [MJ], AC Fuel in [kg] (without logistics fuel, only fuel of the investigated AC)" << std::endl; /* Adjust data structure: **/ csv << std::endl << std::endl; - csv << "# Development Phase (NOT for one AC but for total Development phase) " << std::endl; + csv << "# Development Phase (NOT for one AC but for total development phase) " << std::endl; csv << "# (1)EmissionName; (2)CO2; (3)H2O; (4)NOx; (5)CO; (6)SO2; (7)CH4; (8)PM10; (9)N2O; (10)PFC; (11)NMVOC; (12)HC; (13) Energy; (14) AC Fuel; (15) GWP100" << std::endl;//GWP after CML2015, IPCC value csv << "Development_total" << del << theLifeCycleEmissionsSchaefer.theDevelopment.developmentTotal.CO2 -- GitLab From 5ee02f346c0d09e349f2bb2549aea4524c87b4fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKatrinBistreck=E2=80=9D?= <“katrin.bistreck@tuhh.deâ€> Date: Fri, 28 Mar 2025 09:45:23 +0100 Subject: [PATCH 6/6] Correct acXML output --- .../impact_calculation/climate_model_dallara/dallaraIOData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ecological_assessment/src/standard_strategy/impact_calculation/climate_model_dallara/dallaraIOData.cpp b/ecological_assessment/src/standard_strategy/impact_calculation/climate_model_dallara/dallaraIOData.cpp index 71637646..464545b8 100644 --- a/ecological_assessment/src/standard_strategy/impact_calculation/climate_model_dallara/dallaraIOData.cpp +++ b/ecological_assessment/src/standard_strategy/impact_calculation/climate_model_dallara/dallaraIOData.cpp @@ -89,7 +89,7 @@ void DallaraIOData::update_aircraft_xml(std::shared_ptr<RuntimeIO> rtIO) { rtIO->acxml[subpath]; rtIO->acxml.at(subpath).addAttrib("description", "Ecological assessment data"); } - //ATRnode.update(rtIO->acxml.at("aircraft_exchange_file/assessment/ecological_assessment/")); + ATRnode.update(rtIO->acxml.at("aircraft_exchange_file/assessment/ecological_assessment/")); rtIO->saveAcXML(); } -- GitLab