forked from remindmodel/remind
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsets.gms
177 lines (156 loc) · 6.44 KB
/
sets.gms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
*** | (C) 2006-2024 Potsdam Institute for Climate Impact Research (PIK)
*** | authors, and contributors see CITATION.cff file. This file is part
*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
*** | AGPL-3.0, you are granted additional permissions described in the
*** | REMIND License Exception, version 1.0 (see LICENSE file).
*** | Contact: [email protected]
*** SOF ./modules/47_regipol/regiCarbonPrice/sets.gms
SETS
target_type_47 "CO2 policy target type" / budget , year /
emi_type_47 "emission type used in regional target"
/
netCO2, netCO2_noBunkers, netCO2_noLULUCF_noBunkers, netCO2_LULUCFGrassi, netCO2_LULUCFGrassi_noBunkers, netCO2_LULUCFGrassi_intraRegBunker,
netGHG, netGHG_noBunkers, netGHG_noLULUCF_noBunkers, netGHG_LULUCFGrassi, netGHG_LULUCFGrassi_noBunkers, netGHG_LULUCFGrassi_intraRegBunker, netGHG_noLULUCF,
grossEnCO2_noBunkers
/
*** Emission markets
$ifThen.emiMkt not "%cm_emiMktTarget%" == "off"
regiEmiMktTarget(ext_regi) "regions with emiMkt targets" / /
regiANDperiodEmiMktTarget_47(ttot,ext_regi) "regions and periods with emiMkt targets" / /
regiEmiMktTarget2regi_47(ext_regi,all_regi) "regions controlled by emiMkt market set to ext_regi" / /
rescaleType "emi mkt carbon price scaling factor calculation methods" /
"squareDev_firstIteration", "squareDev_perfectMatch", "squareDev_smallChange", "squareDev_noChange",
"slope_refIteration", "slope_firstIteration", "slope_repeatPrev", "slope_repeatPrev_positiveSlope",
"squareDev_noSlope", "squareDev_noNonPositiveSlope"/
regiEmiMktRescaleType(iteration,ttot,ttot,ext_regi,emiMktExt,rescaleType) "saving scaling type used in iteration" / /
convergenceType "emiMkt target non convergence reason" / "lowerThanTolerance", "smallPrice" /
regiEmiMktconvergenceType(iteration,ttot,ttot,ext_regi,emiMktExt,convergenceType) "saving convergence type in iteration" / /
$ENDIF.emiMkt
*** Implicit tax/subsidy necessary to achieve quantity target for primary, secondary, final energy and/or CCS and/or OAE
$ifthen.cm_implicitQttyTarget not "%cm_implicitQttyTarget%" == "off"
taxType "PE, SE or FE tax type"
/
tax
sub
/
targetType "PE, SE or FE target type"
/
t "absolute target (t=total)"
s "relative target (s=share)"
/
qttyTarget "quantity target for energy carrier level (primary, secondary, final energy) or CCS or OAE"
/
PE "Primary Energy"
SE "Secondary Energy"
FE "Final Energy"
FE_wo_b "Final Energy without bunkers"
FE_wo_n_e "Final Energy without non-energy"
FE_wo_b_wo_n_e "Final Energy without bunkers and non-energy"
CCS "carbon capture and storage"
oae "ocean alkalinity enhancement"
/
qttyTargetGroup "quantity target aggregated categories"
/
all
biomass
fossil
VRE
wind
solar
renewables
renewablesNoBio
synthetic
hydrogen
electricity
heat
/
energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,all_enty) "set combining possible energy level (PE, SE or FE), energy types and energy carriers"
/
*** Primary energy type categories
*** PE.all.(entyPe) !! defined below as calculated set
PE.biomass.(pebiolc,pebios,pebioil)
PE.fossil.(peoil,pegas,pecoal)
PE.VRE.(pewin,pesol)
PE.wind.pewin
PE.solar.pesol
PE.renewables.(pegeo,pehyd,pewin,pesol,pebiolc,pebios,pebioil)
PE.renewablesNoBio.(pegeo,pehyd,pewin,pesol)
*** Secondary energy type categories
*** SE.all.(entySe) !! defined below as calculated set
SE.biomass.(seliqbio,sesobio,segabio)
SE.fossil.(seliqfos,sesofos,segafos)
SE.synthetic.(seliqsyn,segasyn)
SE.hydrogen.(seh2)
SE.electricity.(seel)
SE.heat.(sehe)
*** Final energy type categories
*** FE.all.(entySe) !! defined below as calculated set
FE.biomass.(seliqbio,sesobio,segabio)
FE.fossil.(seliqfos,sesofos,segafos)
FE.synthetic.(seliqsyn,segasyn)
FE.hydrogen.(seh2)
FE.electricity.(seel)
FE.heat.(sehe)
/
qttyDelayType_47 "options to define different delay rules for starting the quantity targets algorithm"
/
iteration "quantity targets are only active after certain iteration"
emiConv "quantity targets are only active after emission targets defined at the carbon price modules and at the regipol modules converged"
emiRegiConv "quantity targets are only active after regional emission targets achieved given deviation levels"
/
$ifThen.cm_implicitQttyTargetType "%cm_implicitQttyTargetType%" == "scenario"
qttyTargetScenario "hard-coded quantity scenarios"
/
EU27_eedEff "2018 energy efficiency directive (846 Mtoe final energy by 2030)"
EU27_ff55Eff "Fit for 55 energy efficiency target (787 Mtoe final energy by 2030)"
EU27_RpEUEff "RePowerEU energy efficiency target (750 Mtoe final energy by 2030)"
EU27_bio4 "EU-27 primary energy biomass limited to 6 EJ by 2035 and 4 EJ by 2050"
EU27_bio7p5 "EU-27 primary energy biomass limited to 7.5 EJ by 2035 and 2050"
EU27_bio12 "EU-27 primary energy biomass limited to 12 EJ by 2035 and 2050"
EU27_limVRE "wind and solar limited to linear extrapolation of 2021-2022 growth of generation capacity by 2025 and 2050"
/
qttyTargetActiveScenario(qttyTargetScenario) "current run active quantity scenarios" / %cm_implicitQttyTarget% /
$endif.cm_implicitQttyTargetType
$endIf.cm_implicitQttyTarget
$ifthen.cm_implicitPriceTarget not "%cm_implicitPriceTarget%" == "off"
fePriceScenario "scenarios for exogenous FE price targets"
/
elecPrice
H2Price
initial
highPrice
lowPrice
highElec
lowElec
highGasandLiq
/
$endIf.cm_implicitPriceTarget
$ifthen.cm_implicitPePriceTarget not "%cm_implicitPePriceTarget%" == "off"
pePriceScenario "scenarios for exogenous PE price targets"
/
highFossilPrice
/
$endIf.cm_implicitPePriceTarget
$ifthen.exogDemScen NOT "%cm_exogDem_scen%" == "off"
exogDemScen "exogenuous FE and ES demand scenarios that can be activated by cm_exogDem_scen"
/
ariadne_bal
ariadne_ensec
ariadne_highDem
ariadne_lowDem
/
$endif.exogDemScen
;
*** Defining extra energyQttyTargetANDGroup2enty set elements
$ifthen.cm_implicitQttyTarget not "%cm_implicitQttyTarget%" == "off"
loop(entyPe,
energyQttyTargetANDGroup2enty("PE","all",entyPe) = YES;
);
loop(entySe,
energyQttyTargetANDGroup2enty("SE","all",entySe) = YES;
);
loop(entyFe,
energyQttyTargetANDGroup2enty("FE","all",entySe) = YES;
);
$endIf.cm_implicitQttyTarget
*** EOF ./modules/47_regipol/regiCarbonPrice/sets.gms