Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

restructure chemical feedstock emissions balancing #1829

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
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
9 changes: 4 additions & 5 deletions core/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ p_developmentState(tall,all_regi) "level of development based
f_lab(tall,all_regi,all_POPscen) "labour data for all possible scenarios"
pm_lab(tall,all_regi) "data for labour [bn people]"
pm_esCapCost(tall,all_regi,all_teEs) "Capital energy cost per unit of consumption for end-use capital (energy service layer)"
*** If elasticities of substitution (sigma) is below 1, the smaller it is the less the substitution replacement effect between different CES nodes.
*** The products become more and more complementary in the production, meaning that the more one product is used, the more the other one is demanded as well.
*** If elasticities of substitution (sigma) is below 1, the smaller it is the less the substitution replacement effect between different CES nodes.
*** The products become more and more complementary in the production, meaning that the more one product is used, the more the other one is demanded as well.
*** If sigma is larger than 1, the more one product is used, the less the others are used, i.e. the products are substitutes"
pm_cesdata_sigma(ttot,all_in) "elasticities of substitution."
pm_cesdata_sigma(ttot,all_in) "elasticities of substitution."
p_r(ttot,all_regi) "calculating capital interest rate"

o_diff_to_Budg(iteration) "Difference between actual CO2 budget and target CO2 budget"
Expand Down Expand Up @@ -431,7 +431,6 @@ vm_emiCdrAll(ttot,all_regi) "all CDR emissions"
vm_feedstockEmiUnknownFate(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in feedstocks with unknown fate (not plastics)(assumed to go back into the atmosphere) [GtC]"
vm_incinerationEmi(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Emissions from incineration of plastic waste [GtC]"
vm_incinerationCCS(ttot,all_regi,all_enty,all_enty,all_emiMkt) "CCS from incineration of plastic waste [GtC]"
vm_nonIncineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics that are not incinerated [GtC]"

v_changeProdStartyearAdj(ttot,all_regi,all_te) "Absolute effect size of changing output with respect to the reference run for each te"
vm_changeProdStartyearCost(ttot,all_regi,all_te) "Costs for changing output with respect to the reference run for each te"
Expand All @@ -440,7 +439,7 @@ vm_changeProdStartyearCost(ttot,all_regi,all_te) "Costs for changing output
vm_demFeForEs(ttot,all_regi,all_enty,all_esty,all_teEs) "Final energy which will be used in the ES layer."

vm_prodEs(ttot,all_regi,all_enty,all_esty,all_teEs) "Energy services (unit determined by conversion factor pm_fe2es)."
vm_transpGDPscale(ttot,all_regi) "dampening factor to align edge-t non-energy transportation costs with historical GDP data"
vm_transpGDPscale(ttot,all_regi) "dampening factor to align edge-t non-energy transportation costs with historical GDP data"

;
***----------------------------------------------------------------------------------------
Expand Down
12 changes: 6 additions & 6 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ qm_fuel2pe(t,regi,peRicardian(enty))..
=e=
sum(pe2rlf(enty,rlf2), vm_fuExtr(t,regi,enty,rlf2))
- (vm_Xport(t,regi,enty) - (1-pm_costsPEtradeMp(regi,enty)) * vm_Mport(t,regi,enty))$(tradePe(enty))
- sum(pe2rlf(enty2,rlf2),
- sum(pe2rlf(enty2,rlf2),
(pm_fuExtrOwnCons(regi, enty, enty2) * vm_fuExtr(t,regi,enty2,rlf2))$(pm_fuExtrOwnCons(regi, enty, enty2) gt 0)
)
;
Expand Down Expand Up @@ -605,12 +605,12 @@ q_emiTeMkt(t,regi,emiTe(enty),emiMkt) ..
!! substract carbon from non-fossil origin contained in plastics that don't
!! get incinerated ("plastic removals")
- sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
vm_nonIncineratedPlastics(t,regi,entySe,entyFe,emiMkt)
se2fe(entySe,entyFe,te)),
vm_plasticsCarbon(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! add fossil emissions from plastics incineration.
!! add fossil emissions from plastics incineration.
+ sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeFos(entySe) ),
se2fe(entySe,entyFe,te)),
vm_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! add fossil emissions from chemical feedstock with unknown fate
Expand Down Expand Up @@ -841,7 +841,7 @@ q_balcapture(t,regi,ccs2te(ccsCo2(enty),enty2,te)) ..
+ sum(teCCS2rlf(te,rlf), vm_co2capture_cdr(t,regi,enty,enty2,te,rlf))
!! carbon captured from industry
+ sum(emiInd37, vm_emiIndCCS(t,regi,emiInd37))
+ sum((sefe(entySe,entyFe),emiMkt)$(
+ sum((sefe(entySe,entyFe),emiMkt)$(
entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ),
vm_incinerationCCS(t,regi,entySe,entyFe,emiMkt)
)
Expand Down
3 changes: 1 addition & 2 deletions modules/37_industry/fixed_shares/not_used.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ sm_macChange, parameter, not needed
sm_tmp2, parameter, not needed
sm_TWa_2_MWh, input, questionnaire
v37_FeedstocksCarbon, variable, not needed
v37_plasticsCarbon, variable, not needed
vm_plasticsCarbon, variable, not needed
v37_plasticWaste, variable, not needed
vm_capFac, variable, not needed
vm_cap, variable, not needed
Expand All @@ -32,5 +32,4 @@ vm_demFENonEnergySector, variable, not needed
vm_feedstockEmiUnknownFate, variable, not needed
vm_incinerationCCS, variable, does not want to play
vm_incinerationEmi, variable, not needed
vm_nonIncineratedPlastics, variable, not needed
vm_outflowPrc, variable, not needed
4 changes: 2 additions & 2 deletions modules/37_industry/subsectors/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Parameters
o37_demFeIndTotEn(ttot,all_regi,all_enty,all_emiMkt) "total FE per energy carrier and emissions market in industry (sum over subsectors)"
o37_shIndFE(ttot,all_regi,all_enty,secInd37,all_emiMkt) "share of subsector in FE industry energy carriers and emissions markets"
o37_demFeIndSub(ttot,all_regi,all_enty,all_enty,secInd37,all_emiMkt) "FE demand per industry subsector"
o37_nonIncineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics that are not incinerated [GtC]"
!! process-based implementation
o37_demFePrc(ttot,all_regi,all_enty,all_te,opmoPrc) "Process-based FE demand per FE type and process"
o37_shareRoute(ttot,all_regi,all_te,opmoPrc,route) "The relative share (between 0 and 1) of a technology and operation mode outflow which belongs to a certain route; For example, bf.standard belongs partly to the route bfbof and partly to the route bfbof"
Expand Down Expand Up @@ -88,7 +89,7 @@ Positive Variables
vm_IndCCSCost(ttot,all_regi,all_enty) "industry CCS cost"
v37_emiIndCCSmax(ttot,all_regi,emiInd37) "maximum abatable industry emissions"
v37_FeedstocksCarbon(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in chemical feedstocks [GtC]"
v37_plasticsCarbon(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics [GtC]"
vm_plasticsCarbon(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics [GtC]"
v37_plasticWaste(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastic waste [GtC]"
v37_regionalWasteIncinerationCCSshare(tall,all_regi) "share of waste incineration that is captured [%]"

Expand Down Expand Up @@ -121,7 +122,6 @@ $endif.no_calibration
q37_plasticWaste(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon contained in plastic waste [GtC]"
q37_incinerationEmi(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon contained in plastics that are incinerated [GtC]"
q37_incinerationCCS(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon captured from plastics that are incinerated [GtC]"
q37_nonIncineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon contained in plastics that are not incinerated [GtC]"
q37_feedstockEmiUnknownFate(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon contained in chemical feedstock with unknown fate [GtC]"
q37_feedstocksLimit(ttot,all_regi,all_enty,all_enty,all_emiMkt) "restrict feedstocks flow to total energy flows into industry"
q37_feedstocksShares(ttot,all_regi,all_enty,all_enty,all_emiMkt) "identical fossil/biomass/synfuel shares for FE and feedstocks"
Expand Down
23 changes: 6 additions & 17 deletions modules/37_industry/subsectors/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ q37_FeedstocksCarbon(t,regi,sefe(entySe,entyFe),emiMkt)$(
*' Calculate carbon contained in plastics as a share of carbon in feedstock [GtC]
q37_plasticsCarbon(t,regi,sefe(entySe,entyFe),emiMkt)$(
entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ) ..
v37_plasticsCarbon(t,regi,entySe,entyFe,emiMkt)
vm_plasticsCarbon(t,regi,entySe,entyFe,emiMkt)
=e=
v37_FeedstocksCarbon(t,regi,entySe,entyFe,emiMkt)
* s37_plasticsShare
Expand All @@ -289,15 +289,15 @@ q37_plasticWaste(ttot,regi,sefe(entySe,entyFe),emiMkt)$(
v37_plasticWaste(ttot,regi,entySe,entyFe,emiMkt)
=e=
!! prompt waste
v37_plasticsCarbon(ttot,regi,entySe,entyFe,emiMkt)$( NOT %cm_wastelag% )
vm_plasticsCarbon(ttot,regi,entySe,entyFe,emiMkt)$( NOT %cm_wastelag% )
!! lagged waste
+ ( v37_plasticsCarbon(ttot-2,regi,entySe,entyFe,emiMkt)$( ttot.val lt 2070 )
+ ( ( v37_plasticsCarbon(ttot-2,regi,entySe,entyFe,emiMkt)
+ v37_plasticsCarbon(ttot-1,regi,entySe,entyFe,emiMkt)
+ ( vm_plasticsCarbon(ttot-2,regi,entySe,entyFe,emiMkt)$( ttot.val lt 2070 )
+ ( ( vm_plasticsCarbon(ttot-2,regi,entySe,entyFe,emiMkt)
+ vm_plasticsCarbon(ttot-1,regi,entySe,entyFe,emiMkt)
)
/ 2
)$( ttot.val eq 2070 )
+ v37_plasticsCarbon(ttot-1,regi,entySe,entyFe,emiMkt)$( ttot.val gt 2070 )
+ vm_plasticsCarbon(ttot-1,regi,entySe,entyFe,emiMkt)$( ttot.val gt 2070 )
)$( %cm_wastelag% )
;

Expand All @@ -321,17 +321,6 @@ q37_incinerationCCS(t,regi,sefe(entySe,entyFe),emiMkt)$(
* v37_regionalWasteIncinerationCCSshare(t,regi)
;

*' calculate carbon contained in non-incinerated plastics
*' this is used in emissions accounting to subtract the carbon that gets
*' sequestered in plastic products
q37_nonIncineratedPlastics(t,regi,sefe(entySe,entyFe),emiMkt)$(
entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ) ..
vm_nonIncineratedPlastics(t,regi,entySe,entyFe,emiMkt)
=e=
v37_plasticWaste(t,regi,entySe,entyFe,emiMkt)
* (1 - pm_incinerationRate(t,regi))
;

*' calculate flow of carbon contained in chemical feedstock with unknown fate
*' it is assumed that this carbon is re-emitted in the same timestep if cm_feedstockEmiUnknownFate is enabled (=on)
q37_feedstockEmiUnknownFate(t,regi,sefe(entySe,entyFe),emiMkt)$(
Expand Down
7 changes: 7 additions & 0 deletions modules/37_industry/subsectors/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
) !! subsector capture share
;

*' calculate carbon contained in non-incinerated plastics
o37_nonIncineratedPlastics(t,regi,entySe,entyFe,emiMkt)$(
sefe(entySe,entyFe)
AND entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) )
= v37_plasticWaste.l(t,regi,entySe,entyFe,emiMkt)
* (1 - pm_incinerationRate(t,regi))
;

*** ---------------------------------------------------------------------------
*** Process-Based
Expand Down
Loading