Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 5 additions & 20 deletions core/datainput.gms
Original file line number Diff line number Diff line change
Expand Up @@ -570,27 +570,12 @@ $include "./core/input/p_share_ind_fesos_bio.cs4r"
$offdelim
/;

*** initialize pm_share_trans with the global value, will be updated after each negishi/nash iteration
pm_share_trans("2005",regi) = 0.617;
pm_share_trans("2010",regi) = 0.625;
pm_share_trans("2015",regi) = 0.626;
pm_share_trans("2020",regi) = 0.642;
pm_share_trans("2025",regi) = 0.684;
pm_share_trans("2030",regi) = 0.710;
pm_share_trans("2035",regi) = 0.727;
pm_share_trans("2040",regi) = 0.735;
pm_share_trans("2045",regi) = 0.735;
pm_share_trans("2050",regi) = 0.742;
pm_share_trans("2055",regi) = 0.736;
pm_share_trans("2060",regi) = 0.751;
pm_share_trans("2070",regi) = 0.774;
pm_share_trans("2080",regi) = 0.829;
pm_share_trans("2090",regi) = 0.810;
pm_share_trans("2100",regi) = 0.829;
pm_share_trans("2110",regi) = 0.818;
pm_share_trans("2130",regi) = 0.865;
pm_share_trans("2150",regi) = 0.872;

*** carbon intensities of coal, oil, and gas
*** emissions factor of primary energy fossil fuels
pm_cintraw("pecoal") = 26.1 / s_zj_2_twa;
pm_cintraw("peoil") = 20.0 / s_zj_2_twa;
pm_cintraw("pegas") = 15.0 / s_zj_2_twa;

$ifthen.tech_CO2capturerate not "%c_tech_CO2capturerate%" == "off"
p_PECarriers_CarbonContent(peFos)=pm_cintraw(peFos);
Expand Down
55 changes: 0 additions & 55 deletions core/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,8 @@ parameters
*** trade prices (move to trade module?)
pm_pvp(ttot,all_enty) "Price on commodity markets, [T$/TWa] for energy commodities except uranium, uranium (peur) in [T$/Mt Uranium], emissions permits (perm) in [T$/GtC]"
p_pvpRef(ttot,all_enty) "Price on commodity markets - imported from REF gdx, [T$/TWa] for energy commodities except uranium, uranium (peur) in [T$/Mt Uranium], emissions permits (perm) in [T$/GtC]"
p_pvpRegiBeforeStartYear(ttot,all_regi,all_enty) "prices of traded commodities before start year - regional. only used for permit trade [T$/GtC]"

pm_ies(all_regi) "intertemporal elasticity of substitution",
*** only used in air pollutants module, move there?
pm_share_trans(tall,all_regi) "share of transport FE liquids (fedie and fepet) and all FE liquids [share]"

*** macro variables from gdx or previous iteration
pm_gdp_gdx(tall,all_regi) "GDP path from gdx, updated iteratively [T$]"
Expand Down Expand Up @@ -148,38 +145,6 @@ p_efFossilFuelExtrGlo(all_enty,all_enty) "CH4 and N2O emission facto

*** share of stored carbon in captured carbon
pm_share_CCS_CCO2(ttot,all_regi) "share of stored CO2 from total captured CO2 from previous iteration [share]"

*** can be removed?

*** output parameters of deprecated internal emissions reporting
o_emissions(ttot,all_regi,all_enty) "output parameter"
o_emissions_bunkers(ttot,all_regi,all_enty) "output parameter"
o_emissions_energy(ttot,all_regi,all_enty) "output parameter"
o_emissions_energy_demand(ttot,all_regi,all_enty) "output parameter"
o_emissions_energy_demand_sector(ttot,all_regi,all_enty,emi_sectors) "output parameter"
o_emissions_energy_supply_gross(ttot,all_regi,all_enty) "output parameter"
o_emissions_energy_supply_gross_carrier(ttot,all_regi,all_enty,all_enty) "output parameter"
o_emissions_energy_extraction(ttot,all_regi,all_enty,all_enty) "output parameter"
o_emissions_energy_negative(ttot,all_regi,all_enty) "output parameter"
o_emissions_industrial_processes(ttot,all_regi,all_enty) "output parameter"
o_emissions_AFOLU(ttot,all_regi,all_enty) "output parameter"
o_emissions_CDRmodule(ttot,all_regi,all_enty) "output parameter"
o_emissions_other(ttot,all_regi,all_enty) "output parameter"

o_capture(ttot,all_regi,all_enty) "output parameter"
o_capture_energy(ttot,all_regi,all_enty) "output parameter"
o_capture_energy_elec(ttot,all_regi,all_enty) "output parameter"
o_capture_energy_other(ttot,all_regi,all_enty) "output parameter"
o_capture_cdr(ttot,all_regi,all_enty) "output parameter"
o_capture_industry(ttot,all_regi,all_enty) "output parameter"
o_capture_energy_bio(ttot,all_regi,all_enty) "output parameter"
o_capture_energy_fos(ttot,all_regi,all_enty) "output parameter"
o_carbon_CCU(ttot,all_regi,all_enty) "output parameter"
o_carbon_LandUse(ttot,all_regi,all_enty) "output parameter"
o_carbon_underground(ttot,all_regi,all_enty) "output parameter"
o_carbon_reemitted(ttot,all_regi,all_enty) "output parameter"

o_emi_conv(all_enty) "output parameter" / co2 3666.6666666666666666666666666667, ch4 28, n2o 416.4286, so2 1, bc 1, oc 1 /
;

*** ------------- Emissions Variables ----------------------------------------
Expand Down Expand Up @@ -246,17 +211,8 @@ q_emiCdrAll(ttot,all_regi) "summing over all CDR emiss
q_balcapture(ttot,all_regi,all_enty,all_enty,all_te) "balance equation for carbon capture"
q_balCCUvsCCS(ttot,all_regi) "balance equation for captured carbon to CCU or CCS or valve"
q_ccsShare(ttot,all_regi) "calculate the share of captured CO2 that is stored geologically"

*** q_limitSo2 can be removed?
* RP: this equation is turned off as of 2025-03-11, because it has strong negative side
* effects on coal use - eg SSA strongly increases coal use until 2050 only because
* it wants coal solids in 2070 and needs to ramp it up until 2050 due to this limit
* this limit
* q_limitSo2(ttot,all_regi) "prevent SO2 from rising again after 2050"
;



*** ---------------------------------------------------------------------------
*** 3. Energy System
*** ---------------------------------------------------------------------------
Expand Down Expand Up @@ -374,12 +330,6 @@ p_prodUeReference(ttot,all_regi,all_enty,all_enty,all_te) "Useful Energy output
p_co2CCSReference(ttot,all_regi,all_enty,all_enty,all_te,rlf) "Captured CO2 put through the CCS chain in ccs2te (pipelines/injection) in the reference run [GtC]"
p_prodAllReference(ttot,all_regi,all_te) "Sum of the above in the reference run. As each technology has only one type of output, the differing units should not be a problem"

*** output parameters for 2005 calibration (move to 05_initialCap module?)
o_INI_DirProdSeTe "directly produced SE by technology in 2005 (from initialcap2)"
o_INI_TotalDirProdSe "Total direct SE production in 2005 (from initialcap2)"
o_INI_TotalCap "Total electricity producing capacity in 2005 (from initialcap2)"
o_INI_AvCapFac "Average regional capacity factor of the power sector in 2005 (from initialcap2)"

*** CES calibration tarjectories industry and buildings
pm_fedemand(tall,all_regi,all_in) "read-in parameter for final energy and production trajectories used for the CES parameter calibration in industry and buildings [TWa]"

Expand Down Expand Up @@ -843,9 +793,4 @@ $endif
sm_tgn_2_pgc = (44/28) * s_gwpN2O * (12/44) * 0.001;
sm_tgch4_2_pgc = s_gwpCH4 * (12/44) * 0.001;

*** carbon intensities of coal, oil, and gas (move to core datainput?)
pm_cintraw("pecoal") = 26.1 / s_zj_2_twa;
pm_cintraw("peoil") = 20.0 / s_zj_2_twa;
pm_cintraw("pegas") = 15.0 / s_zj_2_twa;

*** EOF ./core/declarations.gms
12 changes: 0 additions & 12 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -950,18 +950,6 @@ q_limitCCS(regi,ccs2te2(enty,"ico2",te),rlf)$teCCS2rlf(te,rlf)..
=l=
pm_dataccs(regi,"quan",rlf);

***---------------------------------------------------------------------------
*' Emission constraint on SO2 after 2050:
***---------------------------------------------------------------------------
* RP: this equation is turned off as of 2025-03-11, because it has strong negative side
* effects on coal use - eg SSA strongly increases coal use until 2050 only because
* it wants coal solids in 2070 and needs to ramp it up until 2050 due to this limit
* this limit
* q_limitSo2(ttot+1,regi) $((pm_ttot_val(ttot+1) ge max(cm_startyear,2055)) AND (cm_emiscen gt 1) AND (ord(ttot) lt card(ttot))) ..
* vm_emiTe(ttot+1,regi,"so2")
* =l=
* vm_emiTe(ttot,regi,"so2");


***---------------------------------------------------------------------------
*' Adjustment costs - calculation of the relative change to last time step
Expand Down
222 changes: 0 additions & 222 deletions core/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -126,228 +126,6 @@ pm_PEPrice(ttot,regi,entyPe)$(abs (qm_budget.m(ttot,regi)) gt sm_eps) =
*** calculate share of stored CO2 from captured CO2
pm_share_CCS_CCO2(t,regi) = sum(teCCS2rlf(te,rlf), vm_co2CCS.l(t,regi,"cco2","ico2",te,rlf)) / (sum(teCCS2rlf(te,rlf), v_co2capture.l(t,regi,"cco2","ico2",te,rlf))+sm_eps);

*** emissions reporting helper parameters
o_emissions_bunkers(ttot,regi,emi)$(ttot.val ge 2005) =
sum(se2fe(enty,enty2,te),
pm_emifac(ttot,regi,enty,enty2,te,emi)
* vm_demFeSector.l(ttot,regi,enty,enty2,"trans","other")
)*o_emi_conv(emi);

o_emissions(ttot,regi,emi)$(ttot.val ge 2005) =
sum(emiMkt, vm_emiAllMkt.l(ttot,regi,emi,emiMkt))*o_emi_conv(emi)
- o_emissions_bunkers(ttot,regi,emi);

*** note! this still excludes industry CCS and CCU. To fix.
o_emissions_energy(ttot,regi,emi)$(ttot.val ge 2005) =
sum(emiMkt, vm_emiTeMkt.l(ttot,regi,emi,emiMkt))*o_emi_conv(emi)
- o_emissions_bunkers(ttot,regi,emi);

*** note! this still excludes industry CCS. To fix.
o_emissions_energy_demand(ttot,regi,emi)$(ttot.val ge 2005) =
sum(sector2emiMkt(sector,emiMkt),
sum(se2fe(enty,enty2,te),
pm_emifac(ttot,regi,enty,enty2,te,emi)
* vm_demFeSector.l(ttot,regi,enty,enty2,sector,emiMkt)
)
)*o_emi_conv(emi)
- o_emissions_bunkers(ttot,regi,emi)
;

*** note! this still excludes industry CCS. To fix.
o_emissions_energy_demand_sector(ttot,regi,emi,sector)$(ttot.val ge 2005) =
sum(emiMkt$sector2emiMkt(sector,emiMkt),
sum(se2fe(enty,enty2,te),
pm_emifac(ttot,regi,enty,enty2,te,emi) * vm_demFeSector.l(ttot,regi,enty,enty2,sector,emiMkt)
)
)*o_emi_conv(emi)
+
(sum(emiMacSector$(emiMac2sector(emiMacSector,"trans","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi)
- o_emissions_bunkers(ttot,regi,emi)
)$(sameas(sector,"trans"))
+
(sum(emiMacSector$(emiMac2sector(emiMacSector,"waste","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi)
)$(sameas(sector,"waste"))
;

o_emissions_energy_extraction(ttot,regi,emi,entyPe)$(ttot.val ge 2005) =
*** emissions from non-conventional fuel extraction
(
( sum(emi2fuelMine(emi,entyPe,rlf),
p_cint(regi,emi,entyPe,rlf)
* vm_fuExtr.l(ttot,regi,entyPe,rlf)
)$( c_cint_scen eq 1 )
)
*** emissions from conventional fuel extraction
+ ( sum(pe2rlf(entyPe,rlf2),sum(enty2,
(pm_cintraw(enty2)
* pm_fuExtrOwnCons(regi, enty2, entyPe)
* vm_fuExtr.l(ttot,regi,entyPe,rlf2)
)$(pm_fuExtrOwnCons(regi, entyPe, enty2) gt 0)
))
)
)*o_emi_conv(emi)
+
(sum(emiMacSector$(emiMac2sector("ch4coal","extraction","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi)
)$(sameas(entyPe,"pecoal"))
+
(sum(emiMacSector$(emiMac2sector("ch4gas","extraction","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi)
)$(sameas(entyPe,"pegas"))
+
(sum(emiMacSector$(emiMac2sector("ch4oil","extraction","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi)
)$(sameas(entyPe,"peoil"))
;


o_emissions_energy_supply_gross(ttot,regi,emi)$(ttot.val ge 2005) =
sum(pe2se(entyPe,entySe,te)$(pm_emifac(ttot,regi,entyPe,entySe,te,emi)>0),
pm_emifac(ttot,regi,entyPe,entySe,te,emi)
* vm_demPe.l(ttot,regi,entyPe,entySe,te)
)*o_emi_conv(emi)
+
sum(entyPe, o_emissions_energy_extraction(ttot,regi,emi,entyPe))
;

o_emissions_energy_supply_gross_carrier(ttot,regi,emi,entySe)$(ttot.val ge 2005) =
sum((entyPe,te)$(pe2se(entyPe,entySe,te) AND (pm_emifac(ttot,regi,entyPe,entySe,te,emi)>0)),
pm_emifac(ttot,regi,entyPe,entySe,te,emi)
* vm_demPe.l(ttot,regi,entyPe,entySe,te)
)*o_emi_conv(emi)
+
(
o_emissions_energy_extraction(ttot,regi,emi,"pecoal")
)$(sameas(entySe,"sesofos"))
+
(
o_emissions_energy_extraction(ttot,regi,emi,"pegas")
)$(sameas(entySe,"segafos"))
+
(
o_emissions_energy_extraction(ttot,regi,emi,"peoil")
)$(sameas(entySe,"seliqfos"))
;

o_emissions_energy_negative(ttot,regi,emi)$(ttot.val ge 2005) =
(
sum(pe2se(entyPe,entySe,te)$(pm_emifac(ttot,regi,entyPe,entySe,te,emi)<0),
pm_emifac(ttot,regi,entyPe,entySe,te,emi)
* vm_demPe.l(ttot,regi,entyPe,entySe,te)
)
+
sum((ccs2Leak(enty,enty2,te,emi),teCCS2rlf(te,rlf)),
pm_emifac(ttot,regi,enty,enty2,te,emi)
* vm_co2CCS.l(ttot,regi,enty,enty2,te,rlf)
)
*** Industry CCS emissions
- sum(emiInd37_fuel,
vm_emiIndCCS.l(ttot,regi,emiInd37_fuel)
)$( sameas(emi,"co2") )
)*o_emi_conv(emi)
;

o_emissions_industrial_processes(ttot,regi,emi)$(ttot.val ge 2005) =
sum(emiMacSector$(emiMac2sector(emiMacSector,"indst","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi);

o_emissions_AFOLU(ttot,regi,emi)$(ttot.val ge 2005) =
sum(emiMacSector$(emiMac2sector(emiMacSector,"agriculture","process",emi) OR emiMac2sector(emiMacSector,"lulucf","process",emi)),
vm_emiMacSector.l(ttot,regi,emiMacSector)
)*o_emi_conv(emi);

o_emissions_CDRmodule(ttot,regi,emi)$(ttot.val ge 2005) =
vm_emiCdr.l(ttot,regi,emi)*o_emi_conv(emi)
;

o_emissions_other(ttot,regi,emi)$(ttot.val ge 2005) =
pm_emiExog(ttot,regi,emi)*o_emi_conv(emi)
;

***Carbon Management|Carbon Capture (Mt CO2/yr)
o_capture(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(teCCS2rlf(te,rlf),
v_co2capture.l(ttot,regi,"cco2","ico2","ccsinje",rlf)
)*o_emi_conv("co2");

***Carbon Management|Carbon Capture|Process|Energy (Mt CO2/yr)
o_capture_energy(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(emi2te(enty3,enty4,te2,"cco2"),
vm_emiTeDetail.l(ttot,regi,enty3,enty4,te2,"cco2")
)*o_emi_conv("co2");

***Carbon Management|Carbon Capture|Process|Energy|Electricity (Mt CO2/yr)
o_capture_energy_elec(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(emi2te(enty3,enty4,te2,"cco2")$(sameas(enty4,"seel")),
vm_emiTeDetail.l(ttot,regi,enty3,enty4,te2,"cco2")
)*o_emi_conv("co2");

***Carbon Management|Carbon Capture|Process|Energy|Other (Mt CO2/yr)
o_capture_energy_other(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(emi2te(enty3,enty4,te2,"cco2")$(NOT(sameas(enty4,"seel"))),
vm_emiTeDetail.l(ttot,regi,enty3,enty4,te2,"cco2")
)*o_emi_conv("co2");

***Carbon Management|Carbon Capture|Process|Direct Air Capture (Mt CO2/yr)
o_capture_cdr(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(teCCS2rlf("ccsinje",rlf),
vm_co2capture_cdr.l(ttot,regi,"cco2","ico2","ccsinje",rlf)
)*o_emi_conv("co2");

***Carbon Management|Carbon Capture|Process|Industrial Processes (Mt CO2/yr)
o_capture_industry(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(emiInd37,
vm_emiIndCCS.l(ttot,regi,emiInd37)
)*o_emi_conv("co2")
;

***Carbon Management|Carbon Capture|Primary Energy|Biomass (Mt CO2/yr)
o_capture_energy_bio(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(enty3$peBio(enty3),
sum(emi2te(enty3,enty4,te2,"cco2"),
vm_emiTeDetail.l(ttot,regi,enty3,enty4,te2,"cco2")
)
)*o_emi_conv("co2");

***Carbon Management|Carbon Capture|Primary Energy|Fossil (Mt CO2/yr)
o_capture_energy_fos(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(enty3$(NOT(peBio(enty3))),
sum(emi2te(enty3,enty4,te2,"cco2"),
vm_emiTeDetail.l(ttot,regi,enty3,enty4,te2,"cco2")
)
)*o_emi_conv("co2");

***Carbon Management|CCU (Mt CO2/yr)
o_carbon_CCU(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(teCCU2rlf(te2,rlf),
vm_co2CCUshort.l(ttot,regi,"cco2","ccuco2short",te2,rlf)
)*o_emi_conv("co2");

***Carbon Management|Land Use (Mt CO2/yr)
o_carbon_LandUse(ttot,regi,"co2")$(ttot.val ge 2005) =
vm_emiMacSector.l(ttot,regi,"co2luc")
*o_emi_conv("co2");

***Carbon Management|Underground Storage (Mt CO2/yr)
o_carbon_underground(ttot,regi,"co2")$(ttot.val ge 2005) =
sum(teCCS2rlf(te,rlf),
vm_co2CCS.l(ttot,regi,"cco2","ico2",te,rlf)
)*o_emi_conv("co2")
;

***Carbon Management|Carbon Re-emitted (Mt CO2/yr)
o_carbon_reemitted(ttot,regi,"co2")$(ttot.val ge 2005) =
v_co2capturevalve.l(ttot,regi)
*o_emi_conv("co2")
;

*CG**ML*: capital interest rate
p_r(ttot,regi)$(ttot.val gt 2005 and ttot.val le 2130)
Expand Down
3 changes: 0 additions & 3 deletions core/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
* defining the CO2 price parameter that sums up the 3 CO2eq tax components
pm_taxCO2eqSum(ttot,regi) = pm_taxCO2eq(ttot,regi) + pm_taxCO2eqRegi(ttot,regi) + pm_taxCO2eqSCC(ttot,regi);

*JeS* calculate share of transport fuels in liquids
pm_share_trans(ttot,regi)$(ttot.val ge 2005) = sum(se2fe(entySe,entyFe,te)$(seAgg2se("all_seliq",entySe) AND ( sameas(entyFe,"fepet") OR sameas(entyFe,"fedie"))), vm_prodFe.l(ttot,regi,entySe,entyFe,te)) / (sum(se2fe(entySe,entyFe,te)$seAgg2se("all_seliq",entySe), vm_prodFe.l(ttot,regi,entySe,entyFe,te)) + 0.0000001);

*AJS* we need those in nash
pm_capCum0(ttot,regi,teLearn)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_capCum.l(ttot,regi,teLearn);
pm_co2eq0(ttot,regi)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_co2eq.l(ttot,regi);
Expand Down
Loading