From 52858b52af92a01a4f894143f37e394e1a3561d3 Mon Sep 17 00:00:00 2001 From: Felix Schreyer Date: Mon, 16 Dec 2024 14:10:12 +0100 Subject: [PATCH 1/2] Where global capacity bounds are distributed to regions by GDP share, use GDP 2020 share instead of later years as GDP can be different across SSPs leading to infes --- core/bounds.gms | 12 ++++++------ modules/39_CCU/on/bounds.gms | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/bounds.gms b/core/bounds.gms index 91bcbda1f..3cb1c73b6 100755 --- a/core/bounds.gms +++ b/core/bounds.gms @@ -299,20 +299,20 @@ loop(te$(sameas(te,"ngcc") OR sameas(te,"ngt") OR sameas(te,"gaschp")), *' set lower and upper bounds for 2025 based on projects annoucements *' from IEA Hydryogen project database: *' https://www.iea.org/data-and-statistics/data-product/hydrogen-production-and-infrastructure-projects-database -*' distribute to regions via GDP share +*' distribute to regions via GDP share from 2020 *' in future this should be differentiated by region based on regionalized input data of project announcements *' 2 GW(el) at least globally in 2025, about operational capacity as of 2023 -vm_cap.lo("2025",regi,"elh2","1")= 2 * pm_eta_conv("2025",regi,"elh2")*pm_gdp("2025",regi) +vm_cap.lo("2025",regi,"elh2","1")= 2 * pm_eta_conv("2020",regi,"elh2")*pm_gdp("2020",regi) / sum(regi2,pm_gdp("2025",regi2)) * 1e-3; *' 20 GW(el) at maximum globally in 2025 (be more generous to not overconstrain regions which scale-up fastest) -vm_cap.up("2025",regi,"elh2","1")= 20 * pm_eta_conv("2025",regi,"elh2")*pm_gdp("2025",regi) +vm_cap.up("2025",regi,"elh2","1")= 20 * pm_eta_conv("2020",regi,"elh2")*pm_gdp("2020",regi) / sum(regi2,pm_gdp("2025",regi2)) * 1e-3; *** bounds on biomass technologies *' set upper bounds on biomass gasification for h2 production, which is not deployed as of 2025 -*' allow for small production of 0.1 EJ/yr at by 2030 for each technology globally, distributed to regions by GDP share -vm_cap.up("2030",regi,"bioh2","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2030",regi) / sum(regi2,pm_gdp("2030",regi2)); -vm_cap.up("2030",regi,"bioh2c","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2030",regi) / sum(regi2,pm_gdp("2030",regi2)); +*' allow for small production of 0.1 EJ/yr at by 2030 for each technology globally, distributed to regions by GDP share in 2020 +vm_cap.up("2030",regi,"bioh2","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2020",regi) / sum(regi2,pm_gdp("2020",regi2)); +vm_cap.up("2030",regi,"bioh2c","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2020",regi) / sum(regi2,pm_gdp("2020",regi2)); *' allow zero vm_deltaCap for bio-H2 up to 2030 to be consistent with above bounds vm_deltaCap.lo(t,regi,"bioh2","1")$(t.val le 2030) = 0; vm_deltaCap.lo(t,regi,"bioh2c","1")$(t.val le 2030) = 0; diff --git a/modules/39_CCU/on/bounds.gms b/modules/39_CCU/on/bounds.gms index 66f8a7abd..635da061b 100644 --- a/modules/39_CCU/on/bounds.gms +++ b/modules/39_CCU/on/bounds.gms @@ -20,23 +20,23 @@ vm_cap.up(t,regi,"h22ch4","1")$(t.val lt 2030) = 0; *' 0.5 TWh/yr liquid synfuel production globally at minimum in 2025 *' corresponds to projects operational as of 2024 vm_cap.lo("2025",regi,"MeOH","1")= 0.5 / pm_cf("2025",regi,"MeOH") / 8760 - * pm_gdp("2025",regi) - / sum(regi2,pm_gdp("2025",regi2)); + * pm_gdp("2020",regi) + / sum(regi2,pm_gdp("2020",regi2)); *' 5 TWh/yr liquid synfuel production globally at maximum in 2025 *' corresponds to about half of project announcements from IEA database vm_cap.up("2025",regi,"MeOH","1")= 5 / pm_cf("2025",regi,"MeOH") / 8760 - * pm_gdp("2025",regi) - / sum(regi2,pm_gdp("2025",regi2)); + * pm_gdp("2020",regi) + / sum(regi2,pm_gdp("2020",regi2)); *' 30 TWh/yr liquid synfuel production globally at maximum in 2030, *' corresponds to about half of project announcements from IEA database vm_cap.up("2030",regi,"MeOH","1")= 30 / pm_cf("2030",regi,"MeOH") / 8760 - * pm_gdp("2030",regi) - / sum(regi2,pm_gdp("2030",regi2)); + * pm_gdp("2020",regi) + / sum(regi2,pm_gdp("2020",regi2)); *** switch off CCU in baseline runs (as CO2 capture technologies teCCS are also switched off) From 20105ca1a700fdc9f7cf9f828c8558beccce1923 Mon Sep 17 00:00:00 2001 From: Felix Schreyer Date: Tue, 17 Dec 2024 12:45:59 +0100 Subject: [PATCH 2/2] where global capacity bounds are distributed by GDP share, use 2025 GDP now as this is the last year where GDP is the same across all scenarios --- core/bounds.gms | 12 ++++++------ modules/39_CCU/on/bounds.gms | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/core/bounds.gms b/core/bounds.gms index 3cb1c73b6..1b87c9172 100755 --- a/core/bounds.gms +++ b/core/bounds.gms @@ -299,20 +299,20 @@ loop(te$(sameas(te,"ngcc") OR sameas(te,"ngt") OR sameas(te,"gaschp")), *' set lower and upper bounds for 2025 based on projects annoucements *' from IEA Hydryogen project database: *' https://www.iea.org/data-and-statistics/data-product/hydrogen-production-and-infrastructure-projects-database -*' distribute to regions via GDP share from 2020 +*' distribute to regions via GDP share of 2025 (we do not use later time steps as they may have different GDPs depending on the scenario) *' in future this should be differentiated by region based on regionalized input data of project announcements *' 2 GW(el) at least globally in 2025, about operational capacity as of 2023 -vm_cap.lo("2025",regi,"elh2","1")= 2 * pm_eta_conv("2020",regi,"elh2")*pm_gdp("2020",regi) +vm_cap.lo("2025",regi,"elh2","1")= 2 * pm_eta_conv("2025",regi,"elh2")*pm_gdp("2025",regi) / sum(regi2,pm_gdp("2025",regi2)) * 1e-3; *' 20 GW(el) at maximum globally in 2025 (be more generous to not overconstrain regions which scale-up fastest) -vm_cap.up("2025",regi,"elh2","1")= 20 * pm_eta_conv("2020",regi,"elh2")*pm_gdp("2020",regi) +vm_cap.up("2025",regi,"elh2","1")= 20 * pm_eta_conv("2025",regi,"elh2")*pm_gdp("2025",regi) / sum(regi2,pm_gdp("2025",regi2)) * 1e-3; *** bounds on biomass technologies *' set upper bounds on biomass gasification for h2 production, which is not deployed as of 2025 -*' allow for small production of 0.1 EJ/yr at by 2030 for each technology globally, distributed to regions by GDP share in 2020 -vm_cap.up("2030",regi,"bioh2","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2020",regi) / sum(regi2,pm_gdp("2020",regi2)); -vm_cap.up("2030",regi,"bioh2c","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2020",regi) / sum(regi2,pm_gdp("2020",regi2)); +*' allow for small production of 0.1 EJ/yr at by 2030 for each technology globally, distributed to regions by GDP share in 2025 +vm_cap.up("2030",regi,"bioh2","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2025",regi) / sum(regi2,pm_gdp("2025",regi2)); +vm_cap.up("2030",regi,"bioh2c","1")= 0.1 / 3.66 * 1e3 / 8760 * pm_gdp("2025",regi) / sum(regi2,pm_gdp("2025",regi2)); *' allow zero vm_deltaCap for bio-H2 up to 2030 to be consistent with above bounds vm_deltaCap.lo(t,regi,"bioh2","1")$(t.val le 2030) = 0; vm_deltaCap.lo(t,regi,"bioh2c","1")$(t.val le 2030) = 0; diff --git a/modules/39_CCU/on/bounds.gms b/modules/39_CCU/on/bounds.gms index 635da061b..0086f9d98 100644 --- a/modules/39_CCU/on/bounds.gms +++ b/modules/39_CCU/on/bounds.gms @@ -15,28 +15,28 @@ vm_cap.up(t,regi,"h22ch4","1")$(t.val lt 2030) = 0; *' upper bounds for near-term trends on liquid synfuels (CCU-fuels) 2025 and 2030 *' based on project announcements from IEA database *' https://www.iea.org/data-and-statistics/data-product/hydrogen-production-and-infrastructure-projects-database -*' distribute to regions via GDP share +*' distribute to regions via GDP share of 2025 *' in future this should be differentiated by region based on regionalized input data of project announcements *' 0.5 TWh/yr liquid synfuel production globally at minimum in 2025 *' corresponds to projects operational as of 2024 vm_cap.lo("2025",regi,"MeOH","1")= 0.5 / pm_cf("2025",regi,"MeOH") / 8760 - * pm_gdp("2020",regi) - / sum(regi2,pm_gdp("2020",regi2)); + * pm_gdp("2025",regi) + / sum(regi2,pm_gdp("2025",regi2)); *' 5 TWh/yr liquid synfuel production globally at maximum in 2025 *' corresponds to about half of project announcements from IEA database vm_cap.up("2025",regi,"MeOH","1")= 5 / pm_cf("2025",regi,"MeOH") / 8760 - * pm_gdp("2020",regi) - / sum(regi2,pm_gdp("2020",regi2)); + * pm_gdp("2025",regi) + / sum(regi2,pm_gdp("2025",regi2)); *' 30 TWh/yr liquid synfuel production globally at maximum in 2030, *' corresponds to about half of project announcements from IEA database vm_cap.up("2030",regi,"MeOH","1")= 30 / pm_cf("2030",regi,"MeOH") / 8760 - * pm_gdp("2020",regi) - / sum(regi2,pm_gdp("2020",regi2)); + * pm_gdp("2025",regi) + / sum(regi2,pm_gdp("2025",regi2)); *** switch off CCU in baseline runs (as CO2 capture technologies teCCS are also switched off)