From fb21fa32e1d187111a486747fff6bae4b76a3a83 Mon Sep 17 00:00:00 2001
From: Dachet Victor <victor.dachet@uliege.be>
Date: Thu, 13 Jun 2024 08:16:01 +0000
Subject: [PATCH] Upload New File

---
 .../GBOML/Methane.txt                         | 259 ++++++++++++++++++
 1 file changed, 259 insertions(+)
 create mode 100644 examples/energy_carrier_comparison/GBOML/Methane.txt

diff --git a/examples/energy_carrier_comparison/GBOML/Methane.txt b/examples/energy_carrier_comparison/GBOML/Methane.txt
new file mode 100644
index 0000000..bf8c6ee
--- /dev/null
+++ b/examples/energy_carrier_comparison/GBOML/Methane.txt
@@ -0,0 +1,259 @@
+#TIMEHORIZON
+T=43800;
+
+#GLOBAL
+wacc = 0.07;
+number_years_horizon = T/8760;
+
+#NODE SOLAR_PV_PLANTS = import SOLAR_PV_PLANTS from "GENERAL.txt";
+
+#NODE WIND_PLANTS = import WIND_PLANTS from "GENERAL.txt";
+
+#NODE BATTERY_STORAGE = import BATTERY_STORAGE from "GENERAL.txt";
+
+#NODE HVDC = import HVDC from "GENERAL.txt";
+
+#NODE ELECTROLYSIS_PLANTS = import ELECTROLYSIS_PLANTS from "GENERAL.txt";
+
+#NODE DESALINATION_PLANTS = import DESALINATION_PLANTS from "GENERAL.txt";
+
+#NODE DIRECT_AIR_CAPTURE_PLANTS = import DIRECT_AIR_CAPTURE_PLANTS from "GENERAL.txt";
+
+#NODE HYDROGEN_STORAGE = import HYDROGEN_STORAGE from "GENERAL.txt";
+
+#NODE CARBON_DIOXIDE_STORAGE = import CARBON_DIOXIDE_STORAGE from "GENERAL.txt";
+
+#NODE WATER_STORAGE = import WATER_STORAGE from "GENERAL.txt";
+
+#NODE METHANATION_PLANTS
+// Capex from IEA, 2019
+// Conversion parameters from Gotz et al, 2016
+#PARAMETERS
+HHV_CH4 = 15.441;
+full_capex = 735.0 * HHV_CH4; // to obtain cost in MEur/(kt/h)
+lifetime = 20.0;  // year
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // MEur
+fom = 29.4 * HHV_CH4; // MEur/year
+vom = 0.;
+conversion_factor_hydrogen = 0.5;
+conversion_factor_water = 2.25;
+conversion_factor_carbon_dioxide = 2.75;
+minimum_level = 1.0;
+ramp_rate_up = 0.0;
+ramp_rate_down = 0.0;
+#VARIABLES
+internal: capacity; // kt/h - reference flow for sizing is methane
+external: hydrogen[T];  // kt/h
+external: carbon_dioxide[T];  // kt/h
+external: methane[T];  // kt/h
+external: water[T];   // kt/h
+#CONSTRAINTS
+methane[t] <= capacity;
+minimum_level * capacity <= methane[t];
+hydrogen[t] == conversion_factor_hydrogen * methane[t];
+carbon_dioxide[t] == conversion_factor_carbon_dioxide * methane[t];
+water[t] == conversion_factor_water * methane[t];
+methane[t] <= methane[t-1] + ramp_rate_up * capacity;
+methane[t-1] <= methane[t] + ramp_rate_down * capacity;
+capacity >= 0;
+methane[t] >= 0;
+hydrogen[t] >= 0;
+carbon_dioxide[t] >= 0;
+water[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * methane[t];
+
+#NODE METHANE_LIQUEFACTION_PLANTS
+// Conversion factor electricity from Pospisil et al, 2019
+// Capex from Brian Songhurst, 2018
+#PARAMETERS
+full_capex = 5913.0; // M€/(kt/h)
+lifetime = 30.0; // year
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // MEur
+fom = 147.825; // MEur/year
+vom = 0.0;
+conversion_factor_electricity = 0.616;
+conversion_factor_methane = 1.0;
+minimum_level = 1.0;
+ramp_rate_up = 0.0;
+ramp_rate_down = 0.0;
+#VARIABLES
+internal: capacity; // kt/h
+external: electricity[T]; // GWh
+external: methane[T];  // kt/h
+external: liquefied_methane[T];  // kt/h
+#CONSTRAINTS
+liquefied_methane[t] <= capacity;
+minimum_level * capacity <= liquefied_methane[t];
+electricity[t] == conversion_factor_electricity * liquefied_methane[t];
+methane[t] == conversion_factor_methane * liquefied_methane[t];
+liquefied_methane[t] <= liquefied_methane[t-1] + ramp_rate_up * capacity;
+liquefied_methane[t-1] <= liquefied_methane[t] + ramp_rate_down * capacity;
+capacity >= 0;
+electricity[t] >= 0;
+liquefied_methane[t] >= 0;
+methane[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * liquefied_methane[t];
+
+#NODE LIQUEFIED_METHANE_STORAGE_HUB
+// Data from Interior Gas Utility, 2013
+#PARAMETERS
+full_capex_stock = 2.641;  // M€/kt
+full_capex_flow = 0.001;  // M€/(kt/h)
+lifetime_stock = 30.0;  // year
+lifetime_flow = 30.0;  // year
+annualised_capex_stock = full_capex_stock * global.wacc * (1 + global.wacc)**lifetime_stock / ((1 + global.wacc)**lifetime_stock - 1); // MEur
+annualised_capex_flow = full_capex_flow * global.wacc * (1 + global.wacc)**lifetime_flow / ((1 + global.wacc)**lifetime_flow - 1); // MEur
+fom_stock = 0.05282;  // M€/kt-yr
+fom_flow = 0.0; //M€/(kt/h)-yr
+vom_stock = 0.0; // M€/kt
+vom_flow = 0.0;  // M€/kt
+#VARIABLES
+internal: capacity_flow;  // kt/h
+internal: capacity_stock;  // kt
+internal: liquefied_methane_stored[T];  // kt
+external: liquefied_methane_in[T];  // kt/h
+external: liquefied_methane_out[T];  // kt/h
+#CONSTRAINTS
+liquefied_methane_in[t] <= capacity_flow;
+liquefied_methane_out[t] <= capacity_flow;
+liquefied_methane_stored[t] <= capacity_stock;
+liquefied_methane_stored[0] == liquefied_methane_stored[T-1];
+liquefied_methane_stored[t+1] == liquefied_methane_stored[t] + liquefied_methane_in[t] - liquefied_methane_out[t];
+capacity_flow >= 0;
+capacity_stock >= 0;
+liquefied_methane_stored[t] >= 0;
+liquefied_methane_in[t] >= 0;
+liquefied_methane_out[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex_stock + fom_stock) * capacity_stock + global.number_years_horizon * (annualised_capex_flow + fom_flow) * capacity_flow;
+min: vom_stock * liquefied_methane_stored[t] + vom_flow * liquefied_methane_in[t];
+
+#NODE LIQUEFIED_METHANE_CARRIERS
+// Conversion factor from Howard Rogers, 2018
+// Capex from Economic Research Institute for ASEAN and East Asia (ERIA), 2018
+#PARAMETERS
+number_carriers = 7;
+full_capex = 2.537;  // M€/Kt
+lifetime = 30.0;  // year 
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // MEur
+fom = 0.12685; // MEur/year
+vom = 0.0;
+schedule = import "Data/carrier_schedule.csv";
+loading_time = 24;
+travel_time = 116;
+conversion_factor = 0.994;
+#VARIABLES
+internal: capacity;  // kt
+external: liquefied_methane_in[T];  // kt/h
+external: liquefied_methane_out[T];  // kt/h
+#CONSTRAINTS
+liquefied_methane_in[t] <= schedule[t] * capacity;
+liquefied_methane_out[t+travel_time] == conversion_factor * liquefied_methane_in[t];
+liquefied_methane_out[t] == 0 where t < travel_time;
+capacity >= 0;
+liquefied_methane_in[t] >= 0;
+liquefied_methane_out[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity * loading_time * number_carriers;
+min: vom * liquefied_methane_in[t];
+
+#NODE LIQUEFIED_METHANE_STORAGE_DESTINATION
+#PARAMETERS
+full_capex_stock = 2.641; // M€/kt
+full_capex_flow = 0.001; // M€/kt/h
+lifetime_stock = 30.0; // year
+lifetime_flow = 30.0;  // year
+annualised_capex_stock = full_capex_stock * global.wacc * (1 + global.wacc)**lifetime_stock / ((1 + global.wacc)**lifetime_stock - 1); // MEur
+annualised_capex_flow = full_capex_flow * global.wacc * (1 + global.wacc)**lifetime_flow / ((1 + global.wacc)**lifetime_flow - 1); // MEur
+fom_stock = 0.05282;  // M€/kt-yr
+fom_flow = 0.0; // M€/(kt/h)-yr
+vom_stock = 0.0;  // M€/kt
+vom_flow = 0.0;  // M€/kt
+#VARIABLES
+internal: capacity_flow;  // kt/h
+internal: capacity_stock;  // kt
+internal: liquefied_methane_stored[T];  // kt/h
+external: liquefied_methane_in[T];  // kt/h
+external: liquefied_methane_out[T];  // kt/h
+#CONSTRAINTS
+liquefied_methane_in[t] <= capacity_flow;
+liquefied_methane_out[t] <= capacity_flow;
+liquefied_methane_stored[t] <= capacity_stock;
+liquefied_methane_stored[0] == liquefied_methane_stored[T-1];
+liquefied_methane_stored[t+1] == liquefied_methane_stored[t] + liquefied_methane_in[t] - liquefied_methane_out[t];
+capacity_flow >= 0;
+capacity_stock >= 0;
+liquefied_methane_stored[t] >= 0;
+liquefied_methane_in[t] >= 0;
+liquefied_methane_out[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex_stock + fom_stock) * capacity_stock + global.number_years_horizon * (annualised_capex_flow + fom_flow) * capacity_flow;
+min: vom_stock * liquefied_methane_stored[t] + vom_flow * liquefied_methane_in[t];
+
+#NODE LIQUEFIED_METHANE_REGASIFICATION
+// Conversion factor from Pospisil et al, 2019
+// Capex from Dongsha et al, 2017
+#PARAMETERS
+full_capex = 1248.3; // M€/kt/h
+lifetime = 30.0; // year
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // MEur
+fom = 24.97; // MEur/year
+vom = 0.0;
+conversion_factor = 0.98;
+#VARIABLES
+internal: capacity;  // kt/h
+external: liquefied_methane[T];  // kt/h
+external: methane[T];  // kt/h
+#CONSTRAINTS
+liquefied_methane[t] <= capacity;
+methane[t] == conversion_factor * liquefied_methane[t];
+capacity >= 0;
+methane[t] >= 0;
+liquefied_methane[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * liquefied_methane[t];
+
+#HYPEREDGE INLAND_POWER_BALANCE
+#CONSTRAINTS
+SOLAR_PV_PLANTS.electricity[t] + WIND_PLANTS.electricity[t] + BATTERY_STORAGE.electricity_out[t] == BATTERY_STORAGE.electricity_in[t] + HVDC.electricity_in[t];
+
+#HYPEREDGE COASTAL_POWER_BALANCE
+#CONSTRAINTS
+HVDC.electricity_out[t] == ELECTROLYSIS_PLANTS.electricity[t] + HYDROGEN_STORAGE.electricity[t] + DESALINATION_PLANTS.electricity[t] + WATER_STORAGE.electricity[t] + DIRECT_AIR_CAPTURE_PLANTS.electricity[t] + CARBON_DIOXIDE_STORAGE.electricity[t] + METHANE_LIQUEFACTION_PLANTS.electricity[t];
+
+#HYPEREDGE COASTAL_HYDROGEN_BALANCE
+#CONSTRAINTS
+ELECTROLYSIS_PLANTS.hydrogen[t] + HYDROGEN_STORAGE.hydrogen_out[t] == HYDROGEN_STORAGE.hydrogen_in[t] + DIRECT_AIR_CAPTURE_PLANTS.hydrogen[t] + METHANATION_PLANTS.hydrogen[t];
+
+#HYPEREDGE COASTAL_WATER_BALANCE
+#CONSTRAINTS
+DESALINATION_PLANTS.water[t] + METHANATION_PLANTS.water[t] + WATER_STORAGE.water_out[t] == WATER_STORAGE.water_in[t] + ELECTROLYSIS_PLANTS.water[t] + DIRECT_AIR_CAPTURE_PLANTS.water[t];
+
+#HYPEREDGE COASTAL_CARBON_DIOXIDE_BALANCE
+#CONSTRAINTS
+DIRECT_AIR_CAPTURE_PLANTS.carbon_dioxide[t] + CARBON_DIOXIDE_STORAGE.carbon_dioxide_out[t] == CARBON_DIOXIDE_STORAGE.carbon_dioxide_in[t] + METHANATION_PLANTS.carbon_dioxide[t];
+
+#HYPEREDGE COASTAL_METHANE_BALANCE
+#CONSTRAINTS
+METHANATION_PLANTS.methane[t] == METHANE_LIQUEFACTION_PLANTS.methane[t];
+
+#HYPEREDGE COASTAL_LIQUEFIED_METHANE_BALANCE
+#CONSTRAINTS
+METHANE_LIQUEFACTION_PLANTS.liquefied_methane[t] + LIQUEFIED_METHANE_STORAGE_HUB.liquefied_methane_out[t] == LIQUEFIED_METHANE_STORAGE_HUB.liquefied_methane_in[t] + LIQUEFIED_METHANE_CARRIERS.liquefied_methane_in[t];
+
+#HYPEREDGE DESTINATION_LIQUEFIED_METHANE_BALANCE
+#CONSTRAINTS
+LIQUEFIED_METHANE_CARRIERS.liquefied_methane_out[t] + LIQUEFIED_METHANE_STORAGE_DESTINATION.liquefied_methane_out[t] == LIQUEFIED_METHANE_STORAGE_DESTINATION.liquefied_methane_in[t] + LIQUEFIED_METHANE_REGASIFICATION.liquefied_methane[t];
+
+#HYPEREDGE DESTINATION_METHANE_BALANCE
+#PARAMETERS
+demand = import "Data/CH4_demand.csv";
+#CONSTRAINTS
+LIQUEFIED_METHANE_REGASIFICATION.methane[t] == demand[t];
+
+
-- 
GitLab