Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a418275
Revisit hydrogen module
mmadianos Jul 1, 2026
c77835f
Disaggregate between transformations and own energy use in the hydrog…
mmadianos Jul 2, 2026
2e7da8e
Add vapacity variable and update efficiencies in hydogen module.
mmadianos Jul 3, 2026
4555451
Update hydrogen price calculations
mmadianos Jul 6, 2026
614cc4b
update h2 matfacs
mmadianos Jul 6, 2026
91660fb
Add BECCS refunding based on carbon tax for hydrogen production
mmadianos Jul 6, 2026
eff6fc5
Update premature scrapping
mmadianos Jul 6, 2026
22158f7
Bugfix
mmadianos Jul 6, 2026
329e2a8
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
mmadianos Jul 7, 2026
a037312
minor
mmadianos Jul 7, 2026
110bf48
Bugfix
mmadianos Jul 7, 2026
61400a1
Bugfix
mmadianos Jul 14, 2026
a6f4d92
Merge https://github.com/e3modelling/OPEN-PROM into NewHydrogen
mmadianos Jul 14, 2026
7b3e484
Add custom biomass supply curve as default.
mmadianos Jul 14, 2026
f20a0b3
Bugfix
mmadianos Jul 15, 2026
0962c3c
Update CO2 emission factors and adjust transport equation parameters
kubachri Jul 22, 2026
852526b
Update emissions calculation to include time-based conditions for aba…
Fsioutas Jul 22, 2026
ddc01ce
Fix for decarbonization of Industry
mmadianos Jul 23, 2026
f0fe30c
New fix
mmadianos Jul 23, 2026
a848592
Apply Carbon price after 2027 for DOMSE and transport.
mmadianos Jul 23, 2026
f81ac85
Add separate variable of carbon price.
mmadianos Jul 23, 2026
ba84497
Add elc price reduction
mmadianos Jul 23, 2026
d98970c
Fixes
mmadianos Jul 23, 2026
27db32b
minor update premature scrapping hydrogen
mmadianos Jul 23, 2026
0cdd514
change BECCS maturity factor
mmadianos Jul 23, 2026
f3ba936
Enhance carbon price optimization: add last tested policy tracking an…
kubachri Jul 24, 2026
624ddd4
Enhance carbon price optimization: support per-region end years and f…
alextsimp Jul 24, 2026
207d13d
Refine carbon price optimization: tighten lower bound logic and updat…
kubachri Jul 26, 2026
f62c487
Enhance carbon price optimization: add fromYear parameter for flexibl…
kubachri Jul 26, 2026
fbbd0bf
changes for uptake scenarios
Dion-Pram Jul 27, 2026
0d1d072
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jul 28, 2026
01f09a0
Merge branch 'PRISMA_new' of https://github.com/e3modelling/OPEN-PROM…
Dion-Pram Jul 28, 2026
e1f1985
no_UPT_vers
Dion-Pram Jul 28, 2026
59831f8
!!#UPT
Dion-Pram Jul 28, 2026
a5a91ae
Update maturity factors for INDDOM
mmadianos Jul 29, 2026
c3bb8a3
Add biomass supply curve and add carbon price for BU.
mmadianos Jul 30, 2026
4c02b52
Update global biomass curve
mmadianos Jul 31, 2026
60ca89b
Merge https://github.com/e3modelling/OPEN-PROM into NewHydrogen
mmadianos Jul 31, 2026
ea98774
Merge branch 'PRISMA-UPTAKE-Update' of https://github.com/e3modelling…
mmadianos Jul 31, 2026
3b1bc0d
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
mmadianos Jul 31, 2026
93de452
minor
mmadianos Jul 31, 2026
e906484
Bugfixes
mmadianos Jul 31, 2026
d7d60f6
Revisit dac parameters
mmadianos Jul 31, 2026
46da37e
Change landUseEmulator from globiom to magpie
SongminYu Jul 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ qDummyObjPGALL(allCy,YTIME)$(TIME(YTIME) and runCy(allCy))..
1e-5 * SQR(
i04MatFacPlaAvailCap(allCy,PGALL,YTIME) - i04MatFacPlaAvailCap(allCy,PGALL,YTIME-1)
) +
0 * SQR(
1e-4 * SQR(
i04ScaleEndogScrap(allCy,PGALL,YTIME) - i04ScaleEndogScrap(allCy,PGALL,YTIME-1)
)
) / CARD(PGALL);
Expand Down Expand Up @@ -71,7 +71,7 @@ qDummyObjINDDOMShares(allCy,YTIME,DSBS)$(TIME(YTIME) and runCy(allCy) and (INDDO
) / SUM(EFS$SECtoEF(DSBS,EFS), 1)
)$((INDSE(DSBS) or sameas("NEN",DSBS) or sameas("PCH",DSBS)) and t02FinalEnergyINDSE(allCy,DSBS,YTIME)) +
SUM(ITECH$SECTTECH(DSBS,ITECH),
1e-5 * SQR(
1e-3 * SQR(
i02ScaleEndogScrap(allCy,DSBS,ITECH,YTIME) - i02ScaleEndogScrap(allCy,DSBS,ITECH,YTIME-1)
)
) / card(ITECH);
Expand Down
49 changes: 27 additions & 22 deletions core/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -100,18 +100,18 @@ imDisc(runCy,"PC",YTIME) = 0.11;
* FIXME: Drive the emission factors with mrprom
* author=giannou
parameter iCo2EmiFacAllSbs(EF) "CO2 emission factors (kgCO2/kgoe fuel burned)" /
CRO 2.76
LGN 4.15330622,
HCL 3.941453651,
CRO 3.2
LGN 4.2,
HCL 4.2,
*SLD 4.438008647,
GSL 2.872144882,
GDO 3.068924588,
LPG 2.612562612,
KRS 2.964253636,
RFO 3.207089028,
OLQ 3.207089028,
NGS 2.336234395,
OGS 2.336234395,
GSL 3.2,
GDO 3.2,
LPG 3.2,
KRS 3.2,
RFO 3.2,
OLQ 3.2,
NGS 2.5,
OGS 2.5,
BMSWAS 0/;
*---
imCo2EmiFac(runCy,SBS,EF,YTIME)$(not (sameas("NEN",SBS) or sameas("PCH",SBS))) = iCo2EmiFacAllSbs(EF);
Expand Down Expand Up @@ -177,7 +177,6 @@ imFuelPrice(runCy,TRANSE,"RFO",YTIME) = imFuelPrice(runCy,"BU","RFO",YTIME);
imFuelPrice(runCy,TRANSE,"OGS",YTIME) = imFuelPrice(runCy,TRANSE,"NGS",YTIME);
imFuelPrice(runCy,TRANSE,"OLQ",YTIME) = imFuelPrice(runCy,TRANSE,"GDO",YTIME);
imFuelPrice(runCy,TRANSE,"H2F",YTIME) = 2 * imFuelPrice(runCy,TRANSE,"H2F",YTIME);
imFuelPrice(runCy,"PA","H2F",YTIME) = 2 * imFuelPrice(runCy,"PA","KRS",YTIME);
imFuelPrice(runCy,"ICT",EFS,YTIME)$SECtoEF("ICT",EFS) = imFuelPrice(runCy,"SE",EFS,YTIME);
*---
table imPriceFuelsIntBase(WEF,YTIME) "International Fuel Prices USED IN BASELINE SCENARIO ($2015/toe)"
Expand Down Expand Up @@ -387,8 +386,8 @@ SE.TNGS 0.2244 6.8 20 0.88
SE.TOGS 0.2244 10.88 20 0.8
*SE.PGTSOL 0.86224 1.36 20 0.85
SE.TBMSWAS 0.323544 10.88 20 0.5
SE.TELC 0.3 8.976 12 0.85
SE.THEATPUMP 0.432 12.9254 20 1.848
SE.TELC 0.3 8.976 12 0.97
SE.THEATPUMP 0.432 12.9254 20 3.2
SE.TSOL 0.432 12.9254 20 1
SE.TGEO 0.432 12.9254 20 0.5
AG.THCL 0.323544 10.88 20 0.7
Expand All @@ -403,7 +402,7 @@ AG.TNGS 0.2244 6.8 20 0.88
AG.TOGS 0.2244 10.88 20 0.8
*AG.PGTSOL 0.86224 1.36 20 0.85
AG.TBMSWAS 0.323544 10.88 20 0.5
AG.TELC 0.3 8.976 12 0.85
AG.TELC 0.3 8.976 12 0.9
AG.THEATPUMP 0.432 12.9254 20 1.848
AG.TSOL 0.432 12.9254 20 1
AG.TGEO 0.432 12.9254 20 0.5
Expand All @@ -419,8 +418,8 @@ HOU.TNGS 0.2244 6.8 20 0.88
HOU.TOGS 0.2244 10.88 20 0.8
*HOU.PGTSOL 0.86224 1.36 20 0.85
HOU.TBMSWAS 0.323544 10.88 20 0.5
HOU.TELC 0.3 8.976 12 0.85
HOU.THEATPUMP 0.432 12.9254 20 1.848
HOU.TELC 0.3 8.976 12 0.97
HOU.THEATPUMP 0.432 12.9254 20 3.2
HOU.TSOL 0.432 12.9254 20 1
HOU.TGEO 0.432 12.9254 20 0.5
;
Expand Down Expand Up @@ -696,8 +695,8 @@ $offtext

$ELSE.calib
variable imMatrFactor(allCy,DSBS,TECH,YTIME) "Maturity factor per technology and subsector for all countries (1)";
imMatrFactor.LO(runCy,DSBS,TECH,YTIME) = 1e-6;
imMatrFactor.UP(runCy,DSBS,TECH,YTIME) = 10;
imMatrFactor.LO(runCy,DSBS,TECH,YTIME) = 1e-2;
imMatrFactor.UP(runCy,DSBS,TECH,YTIME) = 1;
imMatrFactor.L(runCy,DSBS,TECH,YTIME) = iMatrFactorData(runCy,DSBS,TECH,YTIME);
imMatrFactor.FX(runCy,DSBS,TECH,YTIME)$(not (sameas(DSBS,"PC") or sameas(DSBS,"PB") or sameas(DSBS,"GU") or INDDOM(DSBS) or sameas("NEN",DSBS) or sameas("PCH",DSBS))) = iMatrFactorData(runCy,DSBS,TECH,YTIME);
imMatrFactor.FX(runCy,DSBS,TECH,YTIME)$(sameas(DSBS,"AG") and not EU28(runCy)) = iMatrFactorData(runCy,DSBS,TECH,YTIME);
Expand All @@ -712,6 +711,7 @@ parameters
!!imFacSubsiCapCostSupply(SSBS,STECH) !!State subsidy (%) factor in technology capex (supply side)
!!imGrantCapCostSupply(SSBS,STECH) !!State granting in technology capex (supply side)
imCapCostTechMin(allCy,DSBS,TECH,YTIME) !!Factor for the minimum capex of a demand technology after the state subsidy
!!#UPT imCostCapTechDisc(YTIME) !!Discount rate for capital costs of power generation technologies
;

$ontext
Expand Down Expand Up @@ -820,9 +820,10 @@ imUsfEneConvSubTech(runCy,DOMSE,TECH,YTIME) = imDataDomTech(DOMSE,TECH,"USC");
imFixOMCostTech(runCy,NENSE,TECH,YTIME)= imDataNonEneSec(NENSE,TECH,"FC");
imVarCostTech(runCy,NENSE,TECH,YTIME) = imDataNonEneSec(NENSE,TECH,"VC");
imUsfEneConvSubTech(runCy,NENSE,TECH,YTIME) = imDataNonEneSec(NENSE,TECH,"USC");
imUsfEneConvSubTech(runCy,"BU","TH2F",YTIME) = 0.7;
imUsfEneConvSubTech(runCy,"BU","TNGS",YTIME) = 0.6;
imUsfEneConvSubTech(runCy,"BU","TH2F",YTIME) = 0.8;
imUsfEneConvSubTech(runCy,"BU","TNGS",YTIME) = 0.5;
imUsfEneConvSubTech(runCy,"BU","TGSL",YTIME) = 0.5;
imCapCostTech(runCy,"BU",TECH,YTIME)$SECTTECH("BU",TECH) = imCapCostTech(runCy,"GN","TGDO",YTIME);
imCapCostTech(runCy,"BU","TH2F",YTIME) = 1.5 * imCapCostTech(runCy,"BU","TGDO",YTIME);
*---
** CDR
Expand Down Expand Up @@ -868,4 +869,8 @@ imPlantEffByType(runCy,STECH,"effHeat",YTIME)$(not PGALL(STECH))= imPlantEffByTy
*---
** Conversion of GW mean power into TWh/y, depending on whether it's a leap year
smGwToTwhPerYear(YTIME) = 8.76 + 0.024 $ (mod(YTIME.val,4) = 0 and mod (YTIME.val,100) <> 0);
*--
*--
!!#UPT imCostCapTechDisc(YTIME) = 0;
!!#UPT imCostCapTechDisc(YTIME)$(ord(YTIME) = 20) = 0.75;
!!#UPT imCostCapTechDisc(YTIME)$(ord(YTIME) > 20 and ord(YTIME) <= 40) = 0.75 + (ord(YTIME) - 20) * (0.5 - 0.75) / (40 - 20);
!!#UPT imCostCapTechDisc(YTIME)$(ord(YTIME) > 40) = 0.5;
3 changes: 2 additions & 1 deletion core/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ VmPriceFuelSubsecCarVal.L(runCy,SBS,EF,YTIME)$SECtoEF(SBS,EF) = 1;
$IFTHEN %softLinkMAgPIE% == on
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"BMSWAS",YTIME)$(An(YTIME)) = iPricesMagpie(runCy,SBS,YTIME);
$ENDIF
VmPriceFuelSubsecCarVal.FX(runCy,SBS,EF,YTIME)$(SECtoEF(SBS,EF) and not sameas("NUC",EF) and DATAY(YTIME)) = imFuelPrice(runCy,SBS,EF,YTIME);
VmPriceFuelSubsecCarVal.FX(runCy,SBS,EF,YTIME)$(SECtoEF(SBS,EF) and not sameas("NUC",EF) and not sameas("H2F",EF) and DATAY(YTIME)) = imFuelPrice(runCy,SBS,EF,YTIME);
* Alternative fuel prices are set explicitly below instead of using ALTMAP
* FIXME: VmPriceFuelSubsecCarVal (NUC/MET/ETH/BGDO) should be computed endogenously after startYear, and with mrprom before startYear
* author=giannou
Expand All @@ -60,6 +60,7 @@ VmPriceFuelSubsecCarVal.FX(runCy,"H2P",EF,YTIME)$(SECtoEF("H2P",EF)$DATAY(YTIME)
VmPriceFuelSubsecCarVal.FX(runCy,"STEAMP",EF,YTIME)$(SECtoEF("STEAMP",EF)$DATAY(YTIME)) = imFuelPrice(runCy,"PG",EF,YTIME);
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"CRO",YTIME) = imFuelPrice(runCy,SBS,"CRO",YTIME);
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"STE",YTIME)$(SECtoEF(SBS,"STE") and DATAY(YTIME)) = imFuelPrice(runCy,"OI","ELC",YTIME);
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"H2F",YTIME)$(SECtoEF(SBS,"H2F") and DATAY(YTIME)) = 1.5 * imFuelPrice(runCy,"OI","ELC",YTIME);
*---
VmPriceFuelAvgSub.LO(runCy,DSBS,YTIME) = 0;
VmPriceFuelAvgSub.L(runCy,DSBS,YTIME) = 1;
Expand Down
8 changes: 4 additions & 4 deletions modules/01_Transport/simple/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -286,12 +286,12 @@ Q01PremScrp(allCy,TRANSE,TTECH,YTIME)$(TIME(YTIME)$SECTTECH(TRANSE,TTECH)$runCy(
V01PremScrp(allCy,TRANSE,TTECH,YTIME)
=E=
1 -
(V01CostFuel(allCy,TRANSE,TTECH,YTIME-1)) ** (-2) /
(V01CostFuel(allCy,TRANSE,TTECH,YTIME-1)) ** (-1) /
(
V01CostFuel(allCy,TRANSE,TTECH,YTIME-1) ** (-2) +
0.05*i01PremScrpFac(allCy,TRANSE,TTECH,YTIME) *
V01CostFuel(allCy,TRANSE,TTECH,YTIME-1) ** (-1) +
0.02*i01PremScrpFac(allCy,TRANSE,TTECH,YTIME) *
SUM(TTECH2$(not sameas(TTECH2,TTECH) and SECTTECH(TRANSE,TTECH2)),
V01CostTranspPerMeanConsSize(allCy,TRANSE,TTECH2,YTIME-1) ** (-2)
V01CostTranspPerMeanConsSize(allCy,TRANSE,TTECH2,YTIME-1) ** (-1)
)
);

Expand Down
1 change: 1 addition & 0 deletions modules/01_Transport/simple/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ i01AvgVehCapLoadFac(runCy,TRANSE,TRANSUSE,YTIME) = i01CapDataLoadFacEachTransp(T
** Transport Sector
i01TechLft(runCy,TRANSE,TTECH,YTIME) = imDataTransTech(TRANSE,TTECH,"LFT",YTIME);
i01TechLft(runCy,TRANSE,TTECH,YTIME) = 20;
i01TechLft(runCy,DOMSE,"TELC",YTIME) = 20;
*---
** Industrial Sector
i01TechLft(runCy,INDSE,ITECH,YTIME) = imDataIndTechnology(INDSE,ITECH,"LFT");
Expand Down
10 changes: 5 additions & 5 deletions modules/02_Industry/technology/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@ Q02RatioRem(allCy,DSBS,ITECH,YTIME)$(TIME(YTIME)$(SECTTECH(DSBS,ITECH) and (INDD
Q02PremScrpIndu(allCy,DSBS,ITECH,YTIME)$(TIME(YTIME)$(SECTTECH(DSBS,ITECH) and (INDDOM(DSBS) or NENSE(DSBS)))$runCy(allCy))..
V02PremScrpIndu(allCy,DSBS,ITECH,YTIME)
=E=
1 - (V02VarCostTech(allCy,DSBS,ITECH,YTIME-1) * i02util(allCy,DSBS,ITECH,YTIME-1) + 1e-3) ** (-2) /
1 - (V02VarCostTech(allCy,DSBS,ITECH,YTIME-1) * i02util(allCy,DSBS,ITECH,YTIME-1) + 1e-3) ** (-1) /
(
(V02VarCostTech(allCy,DSBS,ITECH,YTIME-1) * i02util(allCy,DSBS,ITECH,YTIME-1) + 1e-3) ** (-2) +
i02ScaleEndogScrap(allCy,DSBS,ITECH,YTIME) *
(V02VarCostTech(allCy,DSBS,ITECH,YTIME-1) * i02util(allCy,DSBS,ITECH,YTIME-1) + 1e-3) ** (-1) +
0.01 * i02ScaleEndogScrap(allCy,DSBS,ITECH,YTIME) *
sum(ITECH2$(not sameas(ITECH2,ITECH) and SECTTECH(DSBS,ITECH2)),
V02CostTech(allCy,DSBS,ITECH2,YTIME-1) + V02VarCostTech(allCy,DSBS,ITECH2,YTIME-1)
) ** (-2)
(V02CostTech(allCy,DSBS,ITECH2,YTIME-1) + 1e-3) ** (-1)
)
);

*'NEW EQUATION' - kind of --> substitutes Q02ConsRemSubEquipSubSec
Expand Down
12 changes: 8 additions & 4 deletions modules/02_Industry/technology/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,14 @@ V02VarCostTech.FX(runCy,DSBS,ITECH,YTIME)$(DATAY(YTIME) and (INDDOM(DSBS) or NEN
(
sum(EF$ITECHtoEF(ITECH,EF),
i02ShareBlend(runCy,DSBS,ITECH,EF,YTIME) *
VmPriceFuelSubsecCarVal.L(runCy,DSBS,EF,YTIME) +
imCO2CaptRateIndustry(runCy,ITECH,YTIME) * VmCstCO2SeqCsts.L(runCy,YTIME) * 1e-3 * (imCo2EmiFac(runCy,DSBS,EF,YTIME) + 4.17$(sameas("BMSWAS", EF))) +
(1-imCO2CaptRateIndustry(runCy,ITECH,YTIME)) * 1e-3 * (imCo2EmiFac(runCy,DSBS,EF,YTIME) + 4.17$(sameas("BMSWAS", EF))) *
(sum(NAP$NAPtoALLSBS(NAP,"PG"), VmCarVal.L(runCy,NAP,YTIME)))
(
(
VmPriceFuelSubsecCarVal.L(runCy,DSBS,EF,YTIME) +
imCO2CaptRateIndustry(runCy,ITECH,YTIME) * VmCstCO2SeqCsts.L(runCy,YTIME) * 1e-3 * imCo2EmiFac(runCy,DSBS,EF,YTIME) +
(1-imCO2CaptRateIndustry(runCy,ITECH,YTIME)) * 1e-3 * imCo2EmiFac(runCy,DSBS,EF,YTIME) *
sum(NAP$NAPtoALLSBS(NAP,"PG"), VmCarVal.L(runCy,NAP,YTIME))
)
)
) +
imVarCostTech(runCy,DSBS,ITECH,YTIME) / sUnitToKUnit
) / imUsfEneConvSubTech(runCy,DSBS,ITECH,YTIME);
Expand Down
20 changes: 8 additions & 12 deletions modules/03_RestOfEnergy/legacy/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,13 @@
Q03LossesDistr(allCy,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
VmLossesDistr(allCy,EFS,YTIME)
=E=
imRateLossesFinCons(allCy,EFS,YTIME) *
(
imRateLossesFinCons(allCy,EFS,YTIME) *
(
SUM(DSBS,VmFinalEnergy(allCy,DSBS,EFS,YTIME)) +
V03ProdPrimary(allCy,EFS,YTIME)$sameas(EFS,"CRO")
)
)$(not H2EF(EFS)) +
SUM(DSBS,VmFinalEnergy(allCy,DSBS,EFS,YTIME)) +
V03ProdPrimary(allCy,EFS,YTIME)$sameas(EFS,"CRO")
)
!! FIXME: Do we need to add LQD,GAS,SLD here too?
(
0!!VmDemTotH2(allCy,YTIME) -
!!sum(SBS$SECtoEF(SBS,"H2F"), VmDemSecH2(allCy,SBS,YTIME))
)$H2EF(EFS);
;

$ontext
*' The equation calculates the refineries' capacity for a given scenario and year.
Expand Down Expand Up @@ -65,7 +60,8 @@ Q03InpTotTransf(allCy,SSBS,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy))$SECtoEF(SSBS,E
(
i03InputEffSupply(allCy,SSBS,EFS,"%fBaseY%") *
SUM(EFS2, V03OutTotTransf(allCy,SSBS,EFS2,YTIME))
)$(sameas(SSBS,"GAS") or sameas(SSBS,"SLD") or sameas(SSBS,"LQD"));
)$(sameas(SSBS,"GAS") or sameas(SSBS,"SLD") or sameas(SSBS,"LQD")) +
(SUM(H2TECH$H2TECHtoFEEDSTOCK(H2TECH,EFS),VmProdH2(allCy,H2TECH,YTIME) * i05InputOverOutH2ProdFeed(allCy,H2TECH,EFS,YTIME)))$sameas("H2P",SSBS);

*' The equation calculates the total transformation output for a specific energy branch in a given scenario and year.
*' The result is obtained by summing the transformation outputs from different sources, including thermal power stations, District Heating Plants,
Expand Down Expand Up @@ -175,7 +171,7 @@ Q03ConsFiEneSec(allCy,SSBS,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
V03ProdPrimary(allCy,EFS2,YTIME)$(not PGRENEF(EFS2))
)
)$(not sameas("H2P",SSBS)) +
VmConsFuelH2Prod(allCy,EFS,YTIME)$sameas("H2P",SSBS);
(SUM(H2TECH$H2TECHtoENERGY(H2TECH,EFS),VmProdH2(allCy,H2TECH,YTIME) * i05InputOverOutH2ProdEnergy(allCy,H2TECH,EFS,YTIME)))$sameas("H2P",SSBS);

Q03FinalEnergy(allCy,DSBS,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy))$(SECtoEF(DSBS,EFS))$(not sameas("ICT",DSBS)))..
VmFinalEnergy(allCy,DSBS,EFS,YTIME)
Expand Down
1 change: 1 addition & 0 deletions modules/03_RestOfEnergy/legacy/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ imRateLossesFinCons(runCy,EFS,YTIME) =
(sum(DSBS,imFuelCons(runCy,DSBS,EFS,YTIME)) + i03PrimProd(runCy,"CRO",YTIME)$sameas("CRO",EFS))
]$(sum(DSBS,imFuelCons(runCy,DSBS,EFS,YTIME)) + i03PrimProd(runCy,"CRO",YTIME)$sameas("CRO",EFS));
imRateLossesFinCons(runCy,EFS,YTIME)$AN(YTIME) = imRateLossesFinCons(runCy,EFS,"%fBaseY%");
imRateLossesFinCons(runCy,"H2F",YTIME) = imRateLossesFinCons(runCy,"ELC",YTIME);
*---
i03RatioPrimaryFuels(runCy,EFS,YTIME)$DATAY(YTIME) =
(
Expand Down
4 changes: 3 additions & 1 deletion modules/04_PowerGeneration/simple/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ Q04CostCapTech(allCy,PGALL,YTIME)$(time(YTIME) $runCy(allCy))..
V04CostCapTech(allCy,PGALL,YTIME)
=E=
V04CapexRESRate(allCy,PGALL,YTIME) * V04CapexFixCostPG(allCy,PGALL,YTIME) /
(i04AvailRate(allCy,PGALL,YTIME) * smGwToTwhPerYear(YTIME) * 1000);
(i04AvailRate(allCy,PGALL,YTIME) * smGwToTwhPerYear(YTIME) * 1000)
!!#UPT * (imCostCapTechDisc(YTIME)$(sameas(PGALL,"ATHBMSCCS")) + 1$(not sameas(PGALL,"ATHBMSCCS")))
;

*' Compute the variable cost of each power plant technology for every region,
*' By utilizing the gross cost, fuel prices, CO2 emission factors & capture, and plant efficiency.
Expand Down
1 change: 1 addition & 0 deletions modules/04_PowerGeneration/simple/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ $ELSE.calib
parameter i04MatFacPlaAvailCap(allCy,PGALL,YTIME) "Maturity factor related to plant available capacity (1)";
parameter i04ScaleEndogScrap(allCy,PGALL,YTIME) "Scale parameter for endogenous scrapping applied to the sum of full costs (1)";
i04MatFacPlaAvailCap(runCy,PGALL,YTIME) = iMatFacPlaAvailCapData(runCy,PGALL,YTIME);
i04MatFacPlaAvailCap(runCy,"ATHBMSCCS",YTIME)$(ord(YTIME) > 22) = 0.1;
i04ScaleEndogScrap(runCy,PGALL,YTIME) = iScaleEndogScrapData(runCy,PGALL,YTIME);
$ENDIF.calib
*---
Expand Down
Loading
Loading