Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
93db0b2
Total carbon tax revenues
Dion-Pram Oct 31, 2025
4011648
Updated tax revenues
Dion-Pram Nov 3, 2025
466c5fa
Merge branch 'clean-upCCS' of https://github.com/e3modelling/OPEN-PRO…
Dion-Pram Nov 3, 2025
f07122b
Tax revenues ready
Dion-Pram Nov 4, 2025
3d562ab
Share to hou elc
Dion-Pram Nov 6, 2025
7f56898
DAC and TECH sharing
Dion-Pram Nov 7, 2025
391a1f3
Transport subsi, and percentage in capex
Dion-Pram Nov 11, 2025
cafb80a
Subsi share by tech (pc, dac), and housing
Dion-Pram Nov 13, 2025
2f46a80
STECH and almost ind and h2 subsi
Dion-Pram Nov 14, 2025
98fad45
Boundary bugfixes
Dion-Pram Nov 18, 2025
5503e27
no housing
Dion-Pram Nov 19, 2025
0abf2e7
Green grants, residential electricity as extra policy
Dion-Pram Nov 20, 2025
8f5c166
units and documentation
Dion-Pram Nov 24, 2025
f059a19
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Nov 24, 2025
f0eb7f8
hydrogen inclusion
Dion-Pram Nov 24, 2025
2898a53
Subsidy in industrial electricity
Dion-Pram Nov 27, 2025
153ef86
Subsidy scenario switches
Dion-Pram Dec 2, 2025
d1692a5
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Dec 9, 2025
af281c5
New Economy Module
Dion-Pram Dec 15, 2025
5671d88
Economy module operating
Dion-Pram Dec 15, 2025
8c4b29e
Economy act operating
Dion-Pram Dec 17, 2025
d9e90bc
tax + 5% of GDP
Dion-Pram Dec 17, 2025
d50d4c7
Eq for Subsidy for each tech
Dion-Pram Dec 19, 2025
977c79d
Last year's unused state funds
Dion-Pram Dec 22, 2025
83e5d3b
Previous year's unused state funds fix
Dion-Pram Dec 22, 2025
e755fb5
DAC bug and subsidy tech division variables
Dion-Pram Jan 7, 2026
337e1c0
debugging
Dion-Pram Jan 7, 2026
72b828a
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jan 7, 2026
b6a86eb
debug
Dion-Pram Jan 7, 2026
23619f5
subsidy demand share csv, module 11
Dion-Pram Jan 8, 2026
47e1bb0
economy folder number to 11
Dion-Pram Jan 8, 2026
6d9e5d7
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jan 8, 2026
b79d9b0
Transport subsidies
Dion-Pram Jan 8, 2026
542728d
insdustry subsidies (unfinished)
Dion-Pram Jan 9, 2026
24d8f74
new files to bypass preloop changes
Dion-Pram Jan 13, 2026
d32a556
minor changes in old file
Dion-Pram Jan 13, 2026
8fef74b
addition of supply emissions in subsitot
Dion-Pram Jan 13, 2026
7fdb446
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jan 13, 2026
5ab7583
minor changes
Dion-Pram Jan 15, 2026
6ffc7c3
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jan 15, 2026
846b4d2
Transport and industry running
Dion-Pram Jan 16, 2026
997874e
debugging
Dion-Pram Jan 20, 2026
97f9874
improve subsidy calculation
giannou Jan 21, 2026
23e0ca0
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jan 22, 2026
66968ab
transport and industry ready
Dion-Pram Jan 22, 2026
810b8d6
Debugging in industry V02CapCostTech
Dion-Pram Jan 23, 2026
eec03b4
countries main
Dion-Pram Jan 23, 2026
15c6968
industry subsidy on capex
Dion-Pram Jan 26, 2026
62a5c2a
Industry subsidy to total cost & DAC subsidies
Dion-Pram Jan 27, 2026
33d3a8f
DAC boost
Dion-Pram Jan 27, 2026
f1ecddc
DAC fix
Dion-Pram Jan 27, 2026
55d2e82
Merge branch 'main' of https://github.com/e3modelling/OPEN-PROM into …
Dion-Pram Jan 27, 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
86 changes: 86 additions & 0 deletions core/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,84 @@ imMatrFactor.LO(runCy,DSBS,EF,YTIME) = -10;
imMatrFactor.UP(runCy,DSBS,EF,YTIME) = 100;
$ENDIF.calib
*---
parameters
!!imFacSubsiCapCostTech(DSBS,TECH) !!State subsidy (%) factor in technology capex (demand side)
!!imGrantCapCostTech(DSBS,TECH) !!State granting in technology capex (demand side)
!!imSubsiCapCostFuel(SBS,EF) !!State subsidy in fuel cost
!!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
;

$ontext
if %fScenario% eq 0 then
imFacSubsiCapCostTech("PC","TELC") = 0;
imFacSubsiCapCostTech("CH","TELC") = 0;
imFacSubsiCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 0;
imGrantCapCostTech("PC","TELC") = 0; !!kUS$2015 per vehicle
imGrantCapCostTech("CH","TELC") = 0; !!kUS$2015/toe-year for Industry sectors
imGrantCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 0; !!US$2015/tCO2
imSubsiCapCostFuel("HOU","ELC") = 0; !!kUS$2015/toe
imSubsiCapCostFuel(SBS,"ELC")$INDSE1(SBS) = 0; !!kUS$2015/toe
imFacSubsiCapCostSupply("PG",PGREN) = 0;
imFacSubsiCapCostSupply("H2P",H2TECH) = 0;
imGrantCapCostSupply("PG",PGREN) = 0; !!kUS$2015/kW
imGrantCapCostSupply("H2P",H2TECH) = 0; !!US$2015/toe H2
elseif %fScenario% eq 1 then
imFacSubsiCapCostTech("PC","TELC") = 0;
imFacSubsiCapCostTech("CH","TELC") = 0;
imFacSubsiCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 0;
imGrantCapCostTech("PC","TELC") = 1; !!kUS$2015 per vehicle
imGrantCapCostTech("CH","TELC") = 0; !!kUS$2015/toe-year for Industry sectors
imGrantCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 90; !!US$2015/tCO2
imSubsiCapCostFuel("HOU","ELC") = 0; !!kUS$2015/toe
imSubsiCapCostFuel(SBS,"ELC")$INDSE1(SBS) = 0; !!kUS$2015/toe
imFacSubsiCapCostSupply("PG",PGREN) = 0.1;
imFacSubsiCapCostSupply("H2P",H2TECH) = 0.2;
imGrantCapCostSupply("PG",PGREN) = 0; !!kUS$2015/kW
imGrantCapCostSupply("H2P",H2TECH) = 0; !!US$2015/toe H2
elseif %fScenario% eq 2 then
imFacSubsiCapCostTech("PC","TELC") = 0;
imFacSubsiCapCostTech("CH","TELC") = 0.40;
imFacSubsiCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 0;
imGrantCapCostTech("PC","TELC") = 9; !!kUS$2015 per vehicle
imGrantCapCostTech("CH","TELC") = 0; !!kUS$2015/toe-year for Industry sectors
imGrantCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 90; !!US$2015/tCO2
imSubsiCapCostFuel("HOU","ELC") = 0; !!kUS$2015/toe
imSubsiCapCostFuel(SBS,"ELC")$INDSE1(SBS) = 0; !!kUS$2015/toe
imFacSubsiCapCostSupply("PG",PGREN) = 0.3;
imFacSubsiCapCostSupply("H2P",H2TECH) = 0.4;
imGrantCapCostSupply("PG",PGREN) = 0; !!kUS$2015/kW
imGrantCapCostSupply("H2P",H2TECH) = 0; !!US$2015/toe H2
elseif %fScenario% eq 3 then
imFacSubsiCapCostTech("PC","TELC") = 0;
imFacSubsiCapCostTech("CH","TELC") = 0.10;
imFacSubsiCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 0;
imGrantCapCostTech("PC","TELC") = 7; !!kUS$2015 per vehicle
imGrantCapCostTech("CH","TELC") = 0; !!kUS$2015/toe-year for Industry sectors
imGrantCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 90; !!US$2015/tCO2
imSubsiCapCostFuel("HOU","ELC") = 0; !!kUS$2015/toe
imSubsiCapCostFuel(SBS,"ELC")$INDSE1(SBS) = 0; !!kUS$2015/toe
imFacSubsiCapCostSupply("PG",PGREN) = 0.3;
imFacSubsiCapCostSupply("H2P",H2TECH) = 0.3;
imGrantCapCostSupply("PG",PGREN) = 0; !!kUS$2015/kW
imGrantCapCostSupply("H2P",H2TECH) = 0; !!US$2015/toe H2
elseif %fScenario% eq 4 then
imFacSubsiCapCostTech("PC","TELC") = 0;
imFacSubsiCapCostTech("CH","TELC") = 0;
imFacSubsiCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 0;
imGrantCapCostTech("PC","TELC") = 1; !!kUS$2015 per vehicle
imGrantCapCostTech("CH","TELC") = 0; !!kUS$2015/toe-year for Industry sectors
imGrantCapCostTech("DAC",TECH)$(DACTECH(TECH)) = 90; !!US$2015/tCO2
imSubsiCapCostFuel("HOU","ELC") = 0; !!kUS$2015/toe
imSubsiCapCostFuel(SBS,"ELC")$INDSE1(SBS) = 0; !!kUS$2015/toe
imFacSubsiCapCostSupply("PG",PGREN) = 0.1;
imFacSubsiCapCostSupply("H2P",H2TECH) = 0.2;
imGrantCapCostSupply("PG",PGREN) = 0; !!kUS$2015/kW
imGrantCapCostSupply("H2P",H2TECH) = 0; !!US$2015/toe H2
endif;
$offtext
*---
** Industry
imShrNonSubElecInTotElecDem(runCy,INDSE) = iIndCharData(INDSE,"SHR_NSE");
imShrNonSubElecInTotElecDem(runCy,INDSE) = iIndCharData(INDSE,"SHR_NSE") - 0.2;
Expand All @@ -662,11 +740,13 @@ imShrNonSubElecInTotElecDem(runCy,DOMSE)$(imShrNonSubElecInTotElecDem(runCy,DOMS
*---
** Transport Sector
imCapCostTech(runCy,TRANSE,TECH,YTIME) = imDataTransTech(TRANSE,TECH,"IC",YTIME);
imCapCostTechMin(allCy,TRANSE,TECH,YTIME) = 0.4;
imFixOMCostTech(runCy,TRANSE,TECH,YTIME) = imDataTransTech(TRANSE,TECH,"FC",YTIME);
imVarCostTech(runCy,TRANSE,TECH,YTIME) = imDataTransTech(TRANSE,TECH,"VC",YTIME);
*---
** Industrial Sector
imCapCostTech(runCy,INDSE,TECH,YTIME) = imDataIndTechnology(INDSE,TECH,"IC");
imCapCostTechMin(allCy,INDSE,TECH,YTIME) = 0.5;
imFixOMCostTech(runCy,INDSE,TECH,YTIME) = imDataIndTechnology(INDSE,TECH,"FC");
imVarCostTech(runCy,INDSE,TECH,YTIME) = imDataIndTechnology(INDSE,TECH,"VC");
imUsfEneConvSubTech(runCy,INDSE,TECH,YTIME) = imDataIndTechnology(INDSE,TECH,"USC");
Expand All @@ -683,6 +763,12 @@ 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");
*---
** CDR
imCapCostTechMin(allCy,"DAC","HTDAC",YTIME) = 0.4;
imCapCostTechMin(allCy,"DAC","H2DAC",YTIME) = 0.2;
imCapCostTechMin(allCy,"DAC","LTDAC",YTIME) = 0.2;
imCapCostTechMin(allCy,"DAC","EWDAC",YTIME) = 0.2;
*---
!!imUsfEneConvSubTech(runCy,INDSE,"THCL",YTIME)$AN(YTIME) = imDataIndTechnology(INDSE,"THCL","USC") + 0.005 * (ord(YTIME)-11);
imUsfEneConvSubTech(runCy,INDSE,"THCLCCS",YTIME)$AN(YTIME) = imDataIndTechnology(INDSE,"THCLCCS","USC") + 0.005 * (ord(YTIME)-11);
imUsfEneConvSubTech(runCy,INDSE,"THCLCCS",YTIME)$(ord(YTIME)>50) = 0.7;
Expand Down
7 changes: 6 additions & 1 deletion core/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,11 @@ VmCarVal.FX(runCy,"NOTRADE",YTIME) = iCarbValYrExog(runCy,YTIME);
VmCstCO2SeqCsts.L(runCy,YTIME)=1;
VmCstCO2SeqCsts.FX(runCy,YTIME)$(not an(YTIME)) = i06ElastCO2Seq(runCy,"mc_b");
*---
VmPriceFuelSubsecCarVal.LO(runCy,SBS,"H2F",YTIME) = 1E-6;
VmPriceFuelSubsecCarVal.LO(runCy,"HOU","ELC",YTIME) = 1E-6;
VmPriceFuelSubsecCarVal.L(runCy,SBS,EF,YTIME)$SECtoEF(SBS,EF) = 1.5;
VmPriceFuelSubsecCarVal.L(runCy,"PG",PGEF,YTIME) = 1;
VmPriceFuelSubsecCarVal.LO(runCy,SBS,"H2F",YTIME) = 1E-6;

$IFTHEN %link2MAgPIE% == on
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"BMSWAS",YTIME)$(An(YTIME)) = iPricesMagpie(runCy,SBS,YTIME);
$ENDIF
Expand All @@ -71,6 +73,9 @@ VmPriceFuelSubsecCarVal.FX(runCy,"STEAMP","CRO",YTIME)$(not DATAY(YTIME)) = imFu
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"STE",YTIME)$(SECtoEF(SBS,"STE") and DATAY(YTIME)) = imFuelPrice(runCy,"OI","ELC",YTIME);
VmPriceFuelSubsecCarVal.FX(runCy,SBS,"GEO",YTIME) = 0;
*---
VmPriceFuelAvgSub.L(runCy,DSBS,YTIME) = 0.001;
VmPriceFuelAvgSub.FX(runCy,DSBS,YTIME)$DATAY(YTIME) = sum(EF$SECtoEF(DSBS,EF), i08WgtSecAvgPriFueCons(runCy,DSBS,EF) * imFuelPrice(runCy,DSBS,EF,YTIME));
*---
VmPriceElecInd.FX(runCy,YTIME)$DATAY(YTIME) = imPriceElecInd(runCy,YTIME);
*---
VmLft.L(runCy,DSBS,TTECH,YTIME) = 10;
Expand Down
9 changes: 4 additions & 5 deletions core/sets.gms
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ NoTrade Carbon Value for non-trading sectors
NAPtoALLSBS(NAP,ALLSBS) Energy sectors corresponding to NAP sectors
/
Trade.(FD,EN,TX,OE,OI,NF,CH,IS,BM,PP,PG,BM_CO2,H2P,STEAMP,DAC)
NoTrade.(SE,AG,HOU,PC,PB,PT,PN,PA,GU,GT,GN,BU,PCH,NEN,LGN_PRD_CH4,HCL_PRD_CH4,GAS_PRD_CH4,TERT_CH4,TRAN_CH4,AG_CH4,SE_CH4,TRAN_N2O,TX_N2O,AG_N2O,OI_HFC,OI_PFC,NF_PFC,PG_SF6,OI_SF6,DAC)
NoTrade.(SE,AG,HOU,PC,PB,PT,PN,PA,GU,GT,GN,BU,PCH,NEN,LGN_PRD_CH4,HCL_PRD_CH4,GAS_PRD_CH4,TERT_CH4,TRAN_CH4,AG_CH4,SE_CH4,TRAN_N2O,TX_N2O,AG_N2O,OI_HFC,OI_PFC,NF_PFC,PG_SF6,OI_SF6)
/

DSBS(SBS) All Demand Subsectors /PC,PT,PA,PB,PN,GU,GT,GN,IS,NF,CH,BM,PP,FD,EN,TX,OE,OI,SE,AG,HOU,PCH,NEN,BU,DAC/
Expand Down Expand Up @@ -581,7 +581,7 @@ ORD Ordinary
IMP Improved
/

TECH Technologies
TECH Technologies (in Demand side)
/
TGSL "Internal Combustion Engine fueled by Gasoline"
TLPG "Internal Combustion Engine fueled by Liquified Petroleum Gas"
Expand Down Expand Up @@ -846,6 +846,8 @@ TCHEVGDO

SSECTTECH(SSBS,STECH) "Link between Model Supply Subsectors and Technologies"

SSECTTECH(SSBS,STECH) "Link between Model Supply Subsectors and Technologies"

SECTTECH(DSBS,TECH) Link between Model Demand Subsectors and Technologies
/
*PC.(GSL,LPG,GDO,NGS,ELC,ETH,MET,BGDO,PHEVGSL,PHEVGDO,CHEVGSL,CHEVGDO)
Expand Down Expand Up @@ -931,9 +933,6 @@ PGAWNO Wind offshore
PGH2F
/

PGCSP(PGALL)
/PGCSP/

CCS(PGALL) Plants which can be equipped with CCS
/
ATHCOALCCS
Expand Down
2 changes: 2 additions & 0 deletions main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
*' 07_Emissions
*' 08_Prices
*' 09_Heat
*' 11_Economy
*' Prefixes (V01, i01, etc.) map directly to these numbers.
*'----------------------------------------
*' 5. INTERDEPENDENT VARIABLE/INPUT USAGE
Expand Down Expand Up @@ -253,6 +254,7 @@ $setGlobal Emissions legacy
$setGlobal Prices legacy
$setGlobal Heat heat
$setGlobal Curves LearningCurves
$setGlobal Economy economy
*' To disable learning curves module, use: $setGlobal Curves off

** CORE MODEL FILES **
Expand Down
5 changes: 4 additions & 1 deletion modules/01_Transport/simple/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,17 @@ Q01GapTranspActiv(allCy,TRANSE,YTIME)$(TIME(YTIME)$(runCy(allCy)))..

*' This equation computes the annualized capital cost of new transport technologies by converting upfront investment costs
*' into equivalent annual payments. It applies the annuity factor to spread the capital cost over the technology’s lifetime.
*' It also includes state subsidy, as the amount that is purposed to each technology, except if a low cost bound is reached.
Q01CapCostAnnualized(allCy,TRANSE,TTECH,YTIME)$(TIME(YTIME) $SECTTECH(TRANSE,TTECH) $runCy(allCy))..
V01CapCostAnnualized(allCy,TRANSE,TTECH,YTIME)
=E=
(
(imDisc(allCy,TRANSE,YTIME)*exp(imDisc(allCy,TRANSE,YTIME)*VmLft(allCy,TRANSE,TTECH,YTIME)))
/
(exp(imDisc(allCy,TRANSE,YTIME)*VmLft(allCy,TRANSE,TTECH,YTIME)) - 1)
) * imCapCostTech(allCy,TRANSE,TTECH,YTIME) * imCGI(allCy,YTIME);
) * (imCapCostTech(allCy,TRANSE,TTECH,YTIME) - VmSubsiDemTech(allCy,TRANSE,TTECH,YTIME)) *
imCGI(allCy,YTIME)
;

* -----------------------------------------------------------------------------
* Q01CostFuel: Calculates the total fuel cost for transport technologies.
Expand Down
3 changes: 3 additions & 0 deletions modules/01_Transport/simple/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,9 @@ i01TechLft(runCy,DOMSE,ITECH,YTIME) = imDataDomTech(DOMSE,ITECH,"LFT");
** Non Energy Sector and Bunkers
i01TechLft(runCy,NENSE,ITECH,YTIME) = imDataNonEneSec(NENSE,ITECH,"LFT");
*---
** DAC Sector
i01TechLft(runCy,"DAC",DACTECH,YTIME) = 25;
*---
i01GDPperCapita(YTIME,runCy) = i01GDP(YTIME,runCy) / i01Pop(YTIME,runCy);
*---
*i01ShareTTechFuel(runCy,TRANSE,TTECH,EF,YTIME)$(SECTTECH(TRANSE,TTECH) and (sameas("TPHEVGSL",TTECH) or sameas("TPHEVGDO",TTECH)) and ELCEF(EF)) = i01ShareAnnMilePlugInHybrid(runCy,YTIME);
Expand Down
4 changes: 3 additions & 1 deletion modules/02_Industry/technology/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Q02RemEquipCapTechSubsec(allCy,DSBS,ITECH,YTIME) "Compute Remaining Eq
Q02DemUsefulSubsecRemTech(allCy,DSBS,YTIME) "Compute Useful energy demand (substitutable) covered by remaining equipment"
Q02GapUsefulDemSubsec(allCy,DSBS,YTIME) "Compute gap in useful energy demand per subsector"
Q02CapCostTech(allCy,DSBS,ITECH,YTIME) "Compute capital cost of each technology per subsector (final)"
!!Q02CapCostTech1(allCy,DSBS,ITECH,YTIME)
Q02VarCostTech(allCy,DSBS,ITECH,YTIME) "Compute variable cost of each technology per subsector (final)"
Q02CostTech(allCy,DSBS,ITECH,YTIME) "Compute total cost of each technology per subsector (useful)"
Q02ShareTechNewEquipUseful(allCy,DSBS,ITECH,YTIME) "Compute share of each technology in gap of useful energy"
Expand All @@ -28,10 +29,11 @@ Variables
V02DemSubUsefulSubsec(allCy,DSBS,YTIME) "Demand for useful substitutable energy demand in each subsector"
V02RemEquipCapTechSubsec(allCy,DSBS,ITECH,YTIME) "Remaining Equipment Capacity per Technology in each subsector (substitutable)"
V02DemUsefulSubsecRemTech(allCy,DSBS,YTIME) "Useful energy demand (substitutable) covered by remaining equipment"
V02GapUsefulDemSubsec(allCy,DSBS,YTIME) "gap in useful energy demand per subsector"
V02GapUsefulDemSubsec(allCy,DSBS,YTIME) "gap in useful energy demand per subsector (Mtoe)"
V02CapCostTech(allCy,DSBS,ITECH,YTIME) "capital cost of each technology per subsector (final)"
V02VarCostTech(allCy,DSBS,ITECH,YTIME) "variable cost of each technology per subsector (final)"
V02CostTech(allCy,DSBS,ITECH,YTIME) "total cost of each technology per subsector (useful)"
!!V02CapCostTech1(allCy,DSBS,ITECH,YTIME)
V02ShareTechNewEquipUseful(allCy,DSBS,ITECH,YTIME) "share of each technology in gap of useful energy"
V02EquipCapTechSubsec(allCy,DSBS,ITECH,YTIME) "equipment capacity of each technology in each subsector"
V02UsefulElecNonSubIndTert(allCy,DSBS,YTIME) "non-substitutable useful electricity"
Expand Down
26 changes: 15 additions & 11 deletions modules/02_Industry/technology/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -92,16 +92,19 @@ Q02GapUsefulDemSubsec(allCy,DSBS,YTIME)$(TIME(YTIME) $(not TRANSE(DSBS) and not
Q02CapCostTech(allCy,DSBS,ITECH,YTIME)$(TIME(YTIME)$(not TRANSE(DSBS) and not sameas(DSBS,"DAC"))$SECTTECH(DSBS,ITECH)$runCy(allCy))..
V02CapCostTech(allCy,DSBS,ITECH,YTIME)
=E=
((
(
imDisc(allCy,DSBS,YTIME) * !! in case of chp plants we use the discount rate of power generation sector
exp(imDisc(allCy,DSBS,YTIME) * VmLft(allCy,DSBS,ITECH,YTIME))
) /
(exp(imDisc(allCy,DSBS,YTIME) * VmLft(allCy,DSBS,ITECH,YTIME)) - 1)
) *
imCapCostTech(allCy,DSBS,ITECH,YTIME) * imCGI(allCy,YTIME) +
imFixOMCostTech(allCy,DSBS,ITECH,YTIME) / sUnitToKUnit)
/ imUsfEneConvSubTech(allCy,DSBS,ITECH,YTIME); !! divide with utilization rate or with efficiency as well???? depends on the CapCostTech parameter
(
(
(
(imDisc(allCy,DSBS,YTIME) * !! in case of chp plants we use the discount rate of power generation sector
exp(imDisc(allCy,DSBS,YTIME) * VmLft(allCy,DSBS,ITECH,YTIME))
) /
(exp(imDisc(allCy,DSBS,YTIME) * VmLft(allCy,DSBS,ITECH,YTIME)) - 1)
) *
imCapCostTech(allCy,DSBS,ITECH,YTIME) * imCGI(allCy,YTIME) +
imFixOMCostTech(allCy,DSBS,ITECH,YTIME) / sUnitToKUnit
) / imUsfEneConvSubTech(allCy,DSBS,ITECH,YTIME)
)
;

*' The equation computes the variable cost (variable + fuel) of each technology in each subsector - to check about consumer sizes
*' OLD EQUATION: Q02CostTechIntrm(allCy,DSBS,rCon,EF,YTIME) --> NEW EQUATION:Q02VarCostTech(allCy,DSBS,rCon,ITECH,YTIME)
Expand All @@ -126,7 +129,8 @@ Q02CostTech(allCy,DSBS,ITECH,YTIME)$(TIME(YTIME)$(not TRANSE(DSBS))$SECTTECH(DSB
V02CostTech(allCy,DSBS,ITECH,YTIME)
=E=
V02CapCostTech(allCy,DSBS,ITECH,YTIME) +
V02VarCostTech(allCy,DSBS,ITECH,YTIME);
V02VarCostTech(allCy,DSBS,ITECH,YTIME) -
VmSubsiDemTech(allCy,DSBS,ITECH,YTIME);

*' This equation calculates the technology share in new equipment based on factors such as maturity factor,
*' cumulative distribution function of consumer size groups, number of consumers, technology cost, distribution function of consumer
Expand Down
15 changes: 10 additions & 5 deletions modules/03_RestOfEnergy/legacy/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ Q03ConsFinEneCountry(allCy,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
VmDemFinEneTranspPerFuel(allCy,TRANSE,EF,YTIME)
)
) +
sum(EF$(EFtoEFS(EF,EFS) $SECtoEF("DAC",EF)),VmConsFuelDACProd(allCy,EF,YTIME));
sum(EF$(EFtoEFS(EF,EFS) $SECtoEF("DAC",EF)),VmConsFuelDACProd(allCy,EF,YTIME))
;

*' The equation computes the total final energy consumption in million tonnes of oil equivalent
*' for all countries at a specific time period. This is achieved by summing the final energy consumption for each energy
Expand Down Expand Up @@ -65,7 +66,8 @@ Q03LossesDistr(allCy,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
(
VmDemTotH2(allCy,YTIME) -
sum(SBS$SECtoEF(SBS,"H2F"), VmDemSecH2(allCy,SBS,YTIME))
)$H2EF(EFS);
)$H2EF(EFS)
;

*' The equation calculates the transformation output from district heating plants .
*' This transformation output is determined by summing over different demand sectors and district heating systems
Expand Down Expand Up @@ -246,7 +248,8 @@ Q03ConsGrssInlNotEneBranch(allCy,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
SUM(SSBS,V03InpTotTransf(allCy,SSBS,EFS,YTIME)) -
SUM(SSBS,V03OutTotTransf(allCy,SSBS,EFS,YTIME)) +
VmLossesDistr(allCy,EFS,YTIME) -
V03Transfers(allCy,EFS,YTIME);
V03Transfers(allCy,EFS,YTIME)
;

*' The equation calculates the gross inland consumption. This quantity is equal to the total energy
*' supply for each country.
Expand All @@ -261,7 +264,8 @@ Q03ConsGrssInl(allCy,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
V03OutTotTransf(allCy,SSBS,EFS,YTIME)
) +
VmLossesDistr(allCy,EFS,YTIME) -
V03Transfers(allCy,EFS,YTIME);
V03Transfers(allCy,EFS,YTIME)
;

*' The equation calculates the primary production for a specific primary production definition in a given scenario and year.
*' The computation involves different scenarios based on the type of primary production definition:
Expand Down Expand Up @@ -309,7 +313,8 @@ Q03ProdPrimary(allCy,EFS,YTIME)$(TIME(YTIME)$(runCy(allCy)))..
Q03Exp(allCy,EFS,YTIME)$(TIME(YTIME) $IMPEF(EFS) $runCy(allCy))..
V03Exp(allCy,EFS,YTIME)
=E=
imFuelExprts(allCy,EFS,YTIME);
imFuelExprts(allCy,EFS,YTIME)
;

*' The equation computes the fake imports for a specific energy branch
*' in a given scenario and year. The calculation is based on different conditions for various energy branches,
Expand Down
2 changes: 1 addition & 1 deletion modules/04_PowerGeneration/legacy/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ V04SharePowPlaNewEq(allCy,PGALL,YTIME) "Power plant share in
V04CostVarTechElec(allCy,PGALL,YTIME) "Variable cost of technology (US$2015/KWh)"
V04CostVarTechElecTot(allCy,YTIME) "Electricity peak loads (GW)"
V04SortPlantDispatch(allCy,PGALL,YTIME) "Power plants sorting according to variable cost to decide the plant dispatching (1)"
V04NewCapElec(allCy,PGALL,YTIME) "The new capacity added every year (MW)"
V04NewCapElec(allCy,PGALL,YTIME) "The new capacity added every year (GW)"
V04NetNewCapElec(allCy,PGALL,YTIME) "Yearly difference in installed capacity (MW)"
V04CFAvgRen(allCy,PGALL,YTIME) "The average capacity factor of RES (1)"
V04CapOverall(allCy,PGALL,YTIME) "Overall Capacity (MW)"
Expand Down
Loading
Loading