diff --git a/core/bounds.gms b/core/bounds.gms index 165215412..6f37fc7d6 100755 --- a/core/bounds.gms +++ b/core/bounds.gms @@ -535,8 +535,8 @@ v_shfe.lo(t,regi,entyFe,sector)$pm_shfe_lo(t,regi,entyFe,sector) = pm_shfe_lo(t, v_shGasLiq_fe.up(t,regi,sector)$pm_shGasLiq_fe_up(t,regi,sector) = pm_shGasLiq_fe_up(t,regi,sector); v_shGasLiq_fe.lo(t,regi,sector)$pm_shGasLiq_fe_lo(t,regi,sector) = pm_shGasLiq_fe_lo(t,regi,sector); -*** RH: Fix H2 in buildings to zero until given year (always zero by default) -vm_demFeSector.up(t,regi,"seh2","feh2s","build",emiMkt)$(t.val le c_H2InBuildOnlyAfter) = 0; +*** Set H2 upper bound in buildings for years defined at c_H2InBuildOnlyAfter +vm_demFeSector.up(t,regi,"seh2","feh2s","build",emiMkt)$(t.val le c_H2InBuildOnlyAfter) = 1e-6; ***---------------------------------------------------------------------------- *** Controlling if active, dampening factor to align edge-t non-energy transportation costs with historical GDP data diff --git a/modules/29_CES_parameters/calibrate/datainput.gms b/modules/29_CES_parameters/calibrate/datainput.gms index cbb008ad7..b3683514d 100644 --- a/modules/29_CES_parameters/calibrate/datainput.gms +++ b/modules/29_CES_parameters/calibrate/datainput.gms @@ -305,15 +305,18 @@ $ifthen.build_H2_offset "%buildings%" == "simple" *); *** RK: feh2b offset scaled from 1% in 2025 to 50% in 2050 of fegab quantity -loop ((t,regi), - pm_cesdata(t,regi,"feh2b","offset_quantity") - = - (0.05 + 0.45 * min(1, max(0, (t.val - 2025) / (2050 - 2025)))) - * pm_cesdata(t,regi,"fegab","quantity") - - pm_cesdata(t,regi,"feh2b","quantity"); - pm_cesdata(t,regi,"feh2b","quantity") - = (0.05 + 0.45 * min(1, max(0, (t.val - 2025) / (2050 - 2025)))) - * pm_cesdata(t,regi,"fegab","quantity"); -); +pm_cesdata(t,regi,"feh2b","offset_quantity")$(t.val gt c_H2InBuildOnlyAfter) = + - (0.05 + 0.45 * min(1, max(0, (t.val - 2025) / (2050 - 2025)))) + * pm_cesdata(t,regi,"fegab","quantity") + - pm_cesdata(t,regi,"feh2b","quantity"); +pm_cesdata(t,regi,"feh2b","quantity")$(t.val gt c_H2InBuildOnlyAfter) = + (0.05 + 0.45 * min(1, max(0, (t.val - 2025) / (2050 - 2025)))) + * pm_cesdata(t,regi,"fegab","quantity"); + +*** for the years that H2 buildings is fixed to zero, set offset to the exact value of the calibrated quantity to ignore it after calibration +pm_cesdata(t,regi,"feh2b","quantity")$(t.val le c_H2InBuildOnlyAfter) = 1e-6; +pm_cesdata(t,regi,"feh2b","offset_quantity")$(t.val le c_H2InBuildOnlyAfter) = - pm_cesdata(t,regi,"feh2b","quantity"); + $endif.build_H2_offset *** Add an epsilon to the values which are 0 so that they can fit in the CES diff --git a/modules/36_buildings/simple/equations.gms b/modules/36_buildings/simple/equations.gms index bea5febef..c2c640915 100644 --- a/modules/36_buildings/simple/equations.gms +++ b/modules/36_buildings/simple/equations.gms @@ -65,7 +65,7 @@ q36_auxCostAddTeInv(t,regi).. *' Hydrogen fe share in buildings gases use (natural gas + hydrogen) -q36_H2Share(t,regi).. +q36_H2Share(t,regi)$(t.val ge 2020).. v36_H2share(t,regi) * sum(se2fe(entySe,entyFe,te)$(SAMEAS(entyFe,"feh2s") OR SAMEAS(entyFe,"fegas")),