Skip to content

Commit 486dcca

Browse files
committed
Add TH2F tech for bunkers; Bugfix for hydrogen emission calculations;
1 parent 1725321 commit 486dcca

File tree

11 files changed

+36
-43
lines changed

11 files changed

+36
-43
lines changed

core/equations.gms

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ qDummyObj(allCy,YTIME)$(TIME(YTIME) and runCy(allCy))..
2828
)$(t01NewShareStockPC(allCy,TTECH,YTIME) >= 0) +
2929
0.01 * (imMatrFactor(allCy,"PC",TTECH,YTIME) - imMatrFactor(allCy,"PC",TTECH,YTIME-1))
3030
)
31-
3231
);
3332

3433
qRestrain(allCy,TTECH,YTIME)$(TIME(YTIME) and runCy(allCy) and (t01NewShareStockPC(allCy,TTECH,YTIME) < 0))..

core/input.gms

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ elseif %fScenario% eq 4 then
600600
iCarbValYrExog(allCy,YTIME) = iEnvPolicies(allCy,"exogCV_Calib",YTIME);
601601
endif;
602602
*---
603-
table iPremScrpFacData(allCy,DSBS,TECH,YTIME) "Parameter that controls premature scrapping"
603+
table i01PremScrpFac(allCy,DSBS,TECH,YTIME) "Parameter that controls premature scrapping"
604604
$ondelim
605605
$include"./iPremScrpFac.csv"
606606
$offdelim
@@ -650,8 +650,8 @@ imMatrFactor(runCy,DSBS,"TCHEVGDO",YTIME)$(ord(YTIME) > 40 and TRANSE(DSBS)) = 0
650650
$ELSE.calib
651651
variable imMatrFactor(allCy,DSBS,TECH,YTIME) "Maturity factor per technology and subsector for all countries (1)";
652652
imMatrFactor.LO(runCy,DSBS,TECH,YTIME) = 0;
653-
*imMatrFactor.UP(runCy,DSBS,TECH,YTIME) = 100;
654-
imMatrFactor.L(runCy,DSBS,TECH,YTIME) = 1; !!iMatrFactorData(runCy,DSBS,TECH,YTIME);
653+
imMatrFactor.UP(runCy,DSBS,TECH,YTIME) = 10;
654+
imMatrFactor.L(runCy,DSBS,TECH,YTIME) = iMatrFactorData(runCy,DSBS,TECH,YTIME);
655655
imMatrFactor.FX(runCy,DSBS,TECH,YTIME)$(not sameas(DSBS,"PC") or not SECTTECH(DSBS,TECH)) = iMatrFactorData(runCy,DSBS,TECH,YTIME);
656656
$ENDIF.calib
657657
*---
@@ -687,6 +687,8 @@ imUsfEneConvSubTech(runCy,DOMSE,TECH,YTIME) = imDataDomTech(DOMSE,TECH,"USC");
687687
imFixOMCostTech(runCy,NENSE,TECH,YTIME)= imDataNonEneSec(NENSE,TECH,"FC");
688688
imVarCostTech(runCy,NENSE,TECH,YTIME) = imDataNonEneSec(NENSE,TECH,"VC");
689689
imUsfEneConvSubTech(runCy,NENSE,TECH,YTIME) = imDataNonEneSec(NENSE,TECH,"USC");
690+
imUsfEneConvSubTech(runCy,"BU","TH2F",YTIME) = 0.7;
691+
imCapCostTech(runCy,"BU","TH2F",YTIME) = 1.5 * imCapCostTech(runCy,"BU","TGDO",YTIME);
690692
*---
691693
!!imUsfEneConvSubTech(runCy,INDSE,"THCL",YTIME)$AN(YTIME) = imDataIndTechnology(INDSE,"THCL","USC") + 0.005 * (ord(YTIME)-11);
692694
imUsfEneConvSubTech(runCy,INDSE,"THCLCCS",YTIME)$AN(YTIME) = imDataIndTechnology(INDSE,"THCLCCS","USC") + 0.005 * (ord(YTIME)-11);

core/sets.gms

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -863,9 +863,7 @@ PA.(TKRS)
863863
(IS,BM,CH).(TNGSCCS,THCLCCS)
864864
(HOU,AG).(THCL,TLPG,TKRS,TGDO,TNGS,TOGS,TBMSWAS,TELC,TSTE)
865865
SE.(THCL,TLPG,TKRS,TNGS,TOGS,TELC,TSTE)
866-
867-
*BU.(GDO,RFO,OLQ)
868-
BU.(TGDO,TRFO,TKRS)
866+
BU.(TGDO,TRFO,TKRS,TH2F)
869867
(PCH,NEN).(TLGN,THCL,TGDO,TRFO,TLPG,TOLQ,TNGS,TOGS)
870868
DAC.(HTDAC,H2DAC,LTDAC,EWDAC)
871869
/

modules/01_Transport/simple/input.gms

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ i01TechLft(runCy,DOMSE,ITECH,YTIME) = imDataDomTech(DOMSE,ITECH,"LFT");
209209
*---
210210
** Non Energy Sector and Bunkers
211211
i01TechLft(runCy,NENSE,ITECH,YTIME) = imDataNonEneSec(NENSE,ITECH,"LFT");
212+
i01TechLft(runCy,"BU","TH2F",YTIME) = 25;
212213
*---
213214
i01GDPperCapita(YTIME,runCy) = i01GDP(YTIME,runCy) / i01Pop(YTIME,runCy);
214215
*---or not sameas("BGSL", EF) or not sameas("BGDO", EF) "%fBaseY%"
@@ -221,27 +222,18 @@ SUM(EF2$BLENDMAP(EF2,EF),
221222
)
222223
)$(sum(EFS$BLENDMAP(EF2,EFS),imFuelConsPerFueSub(runCy,TRANSE,EFS,YTIME)) > 0)
223224
);
224-
i01ShareBlend(runCy,TRANSE,EF,YTIME)$(AN(YTIME) and (i01DataShareBlend(runCy,TRANSE,EF,YTIME) = 0)) = i01ShareBlend(runCy,TRANSE,EF,"%fBaseY%");
225-
i01ShareBlend(runCy,TRANSE,EF,YTIME)$(AN(YTIME) and i01DataShareBlend(runCy,TRANSE,EF,YTIME)) = i01DataShareBlend(runCy,TRANSE,EF,YTIME);
226-
*---
227-
$IFTHEN.calib %Calibration% == off
228-
parameter i01PremScrpFac(allCy,TRANSE,TTECH,YTIME) "Parameter that controls premature scrapping";
229-
i01PremScrpFac(runCy,TRANSE,TTECH,YTIME) = iPremScrpFacData(runCy,TRANSE,TTECH,YTIME);
230-
$ELSE.calib
231-
225+
i01ShareBlend(runCy,TRANSE,EFS,YTIME)$(SECtoEF(TRANSE,EFS) and not SUM(EF2,BLENDMAP(EF2,EFS))) = 1;
226+
i01ShareBlend(runCy,TRANSE,EF,YTIME)$AN(YTIME) = i01ShareBlend(runCy,TRANSE,EF,"%fBaseY%");
227+
i01ShareBlend("LAM",ROAD,"BGDO",YTIME) = i01ShareBlend("LAM",ROAD,"BGDO","%fBaseY%") + 0.002 * (ord(YTIME)-11);
228+
i01ShareBlend("LAM",ROAD,"GDO",YTIME) = i01ShareBlend("LAM",ROAD,"GDO","%fBaseY%") - 0.002 * (ord(YTIME)-11);
229+
i01ShareBlend("LAM",ROAD,"BGSL",YTIME) = i01ShareBlend("LAM",ROAD,"BGSL","%fBaseY%") + 0.001 * (ord(YTIME)-11);
230+
i01ShareBlend("LAM",ROAD,"GSL",YTIME) = i01ShareBlend("LAM",ROAD,"GSL","%fBaseY%") - 0.001 * (ord(YTIME)-11);
231+
*---
232+
$IFTHEN.calib %Calibration% == MatCalibration
232233
table t01NewShareStockPC(allCy,TTECH,YTIME) "Targets for share of new passenger cars"
233234
$ondelim
234235
$include "../targets/tNewShareStockPC.csv"
235236
$offdelim
236237
;
237-
238-
variable i01PremScrpFac(allCy,TRANSE,TTECH,YTIME) "Variable that controls premature scrapping";
239-
i01PremScrpFac.L(runCy,"PC",TTECH,YTIME) = iPremScrpFacData(runCy,"PC",TTECH,YTIME);
240-
i01PremScrpFac.LO(runCy,"PC",TTECH,YTIME) = 0;
241-
i01PremScrpFac.UP(runCy,"PC",TTECH,YTIME) = 20;
242-
i01PremScrpFac.FX(runCy,TRANSE,TTECH,YTIME)$(not sameas(TRANSE,"PC")) = iPremScrpFacData(runCy,TRANSE,TTECH,YTIME);
243-
i01PremScrpFac.FX(runCy,TRANSE,TTECH,YTIME)$(not SECTTECH(TRANSE,TTECH)) = 0;
244-
245238
*imMatrFactor.FX(runCy,"PC",TTECH,YTIME)$((t01StockPC(runCy,TTECH,YTIME) < 0) and (t01NewShareStockPC(runCy,TTECH,YTIME) <= 0)) = 100;
246-
i01PremScrpFac.FX(runCy,"PC",TTECH,YTIME)$(SECTTECH("PC",TTECH)) = 0.1;
247239
$ENDIF.calib

modules/01_Transport/simple/preloop.gms

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55

66
V01RateScrPcTot.UP(runCy,TTECH,YTIME) = 1;
77
V01PcOwnPcLevl.UP(runCy,YTIME) = 2*i01PassCarsMarkSat(runCy);
8-
V01PremScrp.UP(runCy,TRANSE,TTECH,YTIME) = 1;
8+
*---
99
V01RateScrPc.UP(runCy,TTECH,YTIME) = 1;
10-
1110
V01RateScrPc.LO(runCy,TTECH,YTIME) = 0;
11+
*---
12+
V01PremScrp.UP(runCy,TRANSE,TTECH,YTIME) = 1;
1213
V01PremScrp.LO(runCy,TRANSE,TTECH,YTIME) = 0;
14+
V01PremScrp.FX(runCy,TRANSE,TTECH,YTIME)$(not SECTTECH(TRANSE,TTECH)) = 0;
1315
*---
1416
V01StockPcYearly.L(runCy,YTIME) = 0.1;
1517
V01StockPcYearly.FX(runCy,YTIME)$(not An(YTIME)) = imActv(YTIME,runCy,"PC");
@@ -50,6 +52,7 @@ V01ConsTechTranspSectoral.FX(runCy,TRANSE,TTECH,EF,YTIME)$(SECTTECH(TRANSE,TTECH
5052
V01ConsTechTranspSectoral.FX(runCy,TRANSE,TTECH,EF,YTIME)$(SECTTECH(TRANSE,TTECH) and PLUGIN(TTECH) and DATAY(YTIME)) = 0;
5153
V01ConsTechTranspSectoral.FX(runCy,TRANSE,TTECH,EF,YTIME)$(SECTTECH(TRANSE,TTECH) and CHYBV(TTECH) and DATAY(YTIME)) = 0;
5254
*---
55+
VmDemFinEneTranspPerFuel.L(runCy,TRANSE,EF,YTIME) = 1;
5356
VmDemFinEneTranspPerFuel.FX(runCy,TRANSE,EF,YTIME) $(SECtoEF(TRANSE,EF) $(not An(YTIME))) = imFuelConsPerFueSub(runCy,TRANSE,EF,YTIME);
5457
VmDemFinEneTranspPerFuel.FX(runCy,TRANSE,EF,YTIME)$(not SECtoEF(TRANSE,EF)) = 0;
5558
*---

modules/01_Transport/simple/sets.gms

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ GSL.(GSL,BGSL)
99
GDO.(GDO,BGDO,RFO,OLQ)
1010
KRS.(KRS,BKRS)
1111
NGS.(NGS,OGS)
12-
/
12+
/
13+
14+
ROAD(TRANSE) /PC,PB,GU/

modules/02_Industry/technology/postsolve.gms

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@ V02PremScrpIndu.FX(runCyL,DSBS,ITECH,YTIME)$TIME(YTIME) = V02PremScrpIndu.L(runC
2222

2323
$ifthen.calib %Calibration% == MatCalibration
2424
imMatrFactor.FX(runCyL,DSBS,TECH,YTIME)$TIME(YTIME) = imMatrFactor.L(runCyL,DSBS,TECH,YTIME)$TIME(YTIME);
25-
i01PremScrpFac.FX(runCyL,TRANSE,TTECH,YTIME)$TIME(YTIME) = i01PremScrpFac.L(runCyL,TRANSE,TTECH,YTIME)$TIME(YTIME);
2625
$endif.calib

modules/03_RestOfEnergy/legacy/equations.gms

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,7 @@ Q03InpTotTransf(allCy,SSBS,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy))$SECtoEF(SSBS,E
189189
VmConsFuelSteProd(allCy,"DHP",EFS,YTIME)$sameas("STEAMP",SSBS) +
190190
V03InputTransfRef(allCy,EFS,YTIME)$sameas("LQD",SSBS) +
191191
V03InputTransfSolids(allCy,EFS,YTIME)$sameas("SLD",SSBS) +
192-
V03InputTransfGasses(allCy,EFS,YTIME)$sameas("GAS",SSBS) +
193-
VmConsFuelH2Prod(allCy,EFS,YTIME)$sameas("H2P",SSBS);
192+
V03InputTransfGasses(allCy,EFS,YTIME)$sameas("GAS",SSBS);
194193

195194
*' The equation calculates the total transformation output for a specific energy branch in a given scenario and year.
196195
*' The result is obtained by summing the transformation outputs from different sources, including thermal power stations, District Heating Plants,
@@ -367,4 +366,5 @@ Q03ConsFiEneSec(allCy,SSBS,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy))$SECtoEF(SSBS,E
367366
SUM(EFS2$SECtoEFPROD(SSBS,EFS2),
368367
V03OutTotTransf(allCy,SSBS,EFS2,YTIME) +
369368
V03ProdPrimary(allCy,EFS2,YTIME)$(not PGRENEF(EFS2))
370-
);
369+
) +
370+
VmConsFuelH2Prod(allCy,EFS,YTIME)$sameas("H2P",SSBS);

modules/05_Hydrogen/legacy/preloop.gms

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,16 @@ V05GapShareH2Tech1.UP(runCy,H2TECH,YTIME) = 1;
1313
V05GapShareH2Tech1.LO(runCy,H2TECH,YTIME) = 0;
1414
*---
1515
V05DemGapH2.LO(runCy,YTIME) = 0;
16-
V05DemGapH2.L(runCy,YTIME) = 2;
16+
V05DemGapH2.L(runCy,YTIME) = 10;
1717
V05DemGapH2.FX(runCy,YTIME)$(not An(YTIME)) = 0;
18-
1918
*---
20-
VmProdH2.L(runCy,H2TECH, YTIME) = 0.5;
21-
VmProdH2.LO(runCy,H2TECH, YTIME) = 0;
22-
VmProdH2.FX(runCy,H2TECH, YTIME)$(not An(YTIME)) = 0;
23-
display VmProdH2.L;
19+
VmDemTotH2.LO(runCy,YTIME) = 0;
20+
VmDemTotH2.L(runCy,YTIME) = SUM(SSBS$SECtoEF(SSBS,"H2F"),i03DataOwnConsEne(runCy,SSBS,"H2F",YTIME)) + SUM(DSBS, imFuelConsPerFueSub(runCy,DSBS,"H2F",YTIME)) + 1;
21+
VmDemTotH2.FX(runCy,YTIME)$DATAY(YTIME) = SUM(SSBS$SECtoEF(SSBS,"H2F"),i03DataOwnConsEne(runCy,SSBS,"H2F",YTIME)) + SUM(DSBS, imFuelConsPerFueSub(runCy,DSBS,"H2F",YTIME));
2422
*---
25-
VmDemTotH2.L(runCy,YTIME) = 2;
26-
VmDemTotH2.FX(runCy,YTIME)$(not An(YTIME)) = sum(H2TECH, VmProdH2.L(runCy,H2TECH,YTIME));
27-
display VmDemTotH2.L;
23+
VmProdH2.LO(runCy,H2TECH, YTIME) = 0;
24+
VmProdH2.L(runCy,H2TECH, YTIME) = 0.5;
25+
VmProdH2.FX(runCy,H2TECH, YTIME)$DATAY(YTIME) = 0;
2826
*---
2927
*VmConsFuelTechH2Prod.L(runCy,H2TECH,EF,YTIME)$(not An(YTIME)$H2TECHEFtoEF(H2TECH,EF)) = 0;
3028
VmConsFuelTechH2Prod.FX(runCy,H2TECH,EF,"%fBaseY%")$(H2TECHEFtoEF(H2TECH,EF)) = (VmProdH2.L(runCy,H2TECH,"%fBaseY%")/i05EffH2Prod(runCy,H2TECH,"%fBaseY%"));
@@ -66,7 +64,7 @@ V05CostProdCCSNoCCSH2Prod.LO(runCy,H2TECH,YTIME) = epsilon6;
6664
V05CostProdCCSNoCCSH2Prod.L(runCy,H2TECH,YTIME) = 2;
6765
*---
6866
VmCostAvgProdH2.LO(runCy,YTIME) = 0;
69-
VmCostAvgProdH2.L(runCy,YTIME) = 2;
67+
VmCostAvgProdH2.L(runCy,YTIME) = 1;
7068
VmCostAvgProdH2.FX(runCy,YTIME)$DATAY(YTIME) =
7169
sum(H2TECH,
7270
(VmProdH2.L(runCy,H2TECH,YTIME) + 1e-6) *

modules/09_Heat/heat/equations.gms

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Q09DemGapSte(allCy,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
4848
VmProdSte(allCy,TSTEAM,YTIME-1)
4949
)
5050
))
51-
)/2;
51+
)/2 + 1e-6;
5252

5353
Q09CostVarProdSte(allCy,TSTEAM,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
5454
V09CostVarProdSte(allCy,TSTEAM,YTIME)

0 commit comments

Comments
 (0)