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

separate incineration emi before and after CCS to ease reporting #5

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
6 changes: 3 additions & 3 deletions core/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -415,9 +415,9 @@ v_shGasLiq_fe(ttot,all_regi,emi_sectors) "share of gases and liquids

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_nonIncineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics that are not incinerated [GtC]"
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_Base(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Emissions from incineration of plastic waste, before CCS [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 Down
34 changes: 16 additions & 18 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -576,29 +576,27 @@ q_emiTeMkt(t,regi,emiTe(enty),emiMkt) ..
vm_emiTeDetailMkt(t,regi,enty2,enty3,te,enty,emiMkt)
)
!! energy emissions fuel extraction
+ v_emiEnFuelEx(t,regi,enty)$(sameas(emiMkt,"ETS"))
+ v_emiEnFuelEx(t,regi,enty)$( sameas(emiMkt,"ETS") )
!! Industry CCS emissions
- sum(emiInd37_fuel,
vm_emiIndCCS(t,regi,emiInd37_fuel)
)$( sameas(enty,"co2") AND sameas(emiMkt,"ETS"))
- sum(emiInd37_fuel,
vm_emiIndCCS(t,regi,emiInd37_fuel)
)$( sameas(enty,"co2") AND sameas(emiMkt,"ETS") )
!! substract carbon from biogenic or synthetic origin contained in
!! plastics that don't get incinerated ("plastic removals")
- sum(entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
sum(se2fe(entySe,entyFe,te)$( entySeBio(entySe) OR entySeSyn(entySe) ),
vm_nonIncineratedPlastics(t,regi,entySe,entyFe,emiMkt)
)
- sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
vm_nonIncineratedPlastics(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! add emissions from plastics incineration. CHECK FOR DOUBLE-COUNTING RISK
+ sum(entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
sum(sefe(entySe,entyFe),
vm_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
)
!! add emissions from plastics incineration before CCS
!! (CCS emissions are subtracted via vm_emiIndCCS)
+ sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
sefe(entySe,entyFe)),
vm_incinerationEmi_Base(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! add emissions from chemical feedstock with unknown fate
+ sum(entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
sum(se2fe(entySe,entyFe,te),
vm_feedstockEmiUnknownFate(t,regi,entySe,entyFe,emiMkt)
)
+ sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te)),
vm_feedstockEmiUnknownFate(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! Valve from cco2 capture step, to mangage if capture capacity and CCU/CCS
!! capacity don't have the same lifetime
Expand All @@ -607,7 +605,7 @@ q_emiTeMkt(t,regi,emiTe(enty),emiMkt) ..
!! period shorter than 5 years)
+ sum(teCCU2rlf(te2,rlf),
vm_co2CCUshort(t,regi,"cco2","ccuco2short",te2,rlf)$( sameas(enty,"co2") )
)$(sameas(emiMkt,"ETS"))
)$( sameas(emiMkt,"ETS") )
;

***--------------------------------------------------
Expand Down
35 changes: 18 additions & 17 deletions modules/37_industry/fixed_shares/not_used.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,32 @@
# | REMIND License Exception, version 1.0 (see LICENSE file).
# | Contact: [email protected]
name, type, reason
pm_delta_kap, input, questionnaire
cm_emiscen, parameter, not needed
o37_incinerationEmi, parameter, not needed
pm_calibrate_eff_scale, parameter, not needed
pm_fedemand, parameter, not needed
sm_TWa_2_MWh, input, questionnaire
sm_giga_2_non, input, not needed
sm_EJ_2_TWa, input, not needed
sm_tmp2, parameter, not needed
vm_cap, variable, not needed
vm_capFac, variable, not needed
pm_tau_ces_tax, input, questionnaire
pm_secBioShare, parameter, not needed
pm_delta_kap, input, questionnaire
pm_emifacNonEnergy, parameter, not needed
pm_exogDemScen, input, added by codeCheck
pm_ts, parameter, not needed
pm_fedemand, parameter, not needed
pm_incinerationRate, parameter, not needed
pm_outflowPrcIni, parameter, not needed
pm_secBioShare, parameter, not needed
pm_specFeDem, parameter, not needed
pm_tau_ces_tax, input, questionnaire
pm_ts, parameter, not needed
sm_EJ_2_TWa, input, not needed
sm_giga_2_non, input, not needed
sm_macChange, parameter, not needed
vm_demFENonEnergySector, variable, not needed
sm_tmp2, parameter, not needed
sm_TWa_2_MWh, input, questionnaire
v37_FeedstocksCarbon, variable, not needed
v37_plasticsCarbon, variable, not needed
v37_plasticWaste, variable, not needed
vm_capFac, variable, not needed
vm_cap, variable, not needed
vm_costMatPrc, variable, not needed
vm_demFENonEnergySector, variable, not needed
vm_feedstockEmiUnknownFate, variable, not needed
vm_incinerationEmi, variable, not needed
vm_incinerationEmi_Base, variable, not needed
vm_nonIncineratedPlastics, variable, not needed
vm_outflowPrc, variable, not needed
vm_costMatPrc, variable, not needed
pm_emifacNonEnergy, parameter, not needed
pm_incinerationRate, parameter, not needed
cm_emiscen, parameter, not needed
15 changes: 12 additions & 3 deletions modules/37_industry/fixed_shares/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ o37_demFeIndSub(ttot,regi,entySe,entyFe,secInd37,emiMkt)
*** industry captured fuel CO2
pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
emiInd37_fe2sec(entyFe,secInd37)
AND sum(entyFE2, vm_emiIndBase.l(ttot,regi,entyFE2,secInd37)) )
AND sum(entyFe2, vm_emiIndBase.l(ttot,regi,entyFe2,secInd37)) )
= ( o37_demFeIndSub(ttot,regi,entySe,entyFe,secInd37,emiMkt)
* sum(se2fe(entySE2,entyFe,te),
!! collapse entySe dimension, so emission factors apply to all entyFe
Expand All @@ -42,10 +42,19 @@ pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
vm_emiIndCCS.l(ttot,regi,emiInd37)
) !! subsector captured energy emissions

/ sum(entyFE2,
vm_emiIndBase.l(ttot,regi,entyFE2,secInd37)
/ sum(entyFe2,
vm_emiIndBase.l(ttot,regi,entyFe2,secInd37)
) !! subsector total energy emissions
) !! subsector capture share
;

*** industry subsector capture share
o37_indCCSshare(ttot,regi,secInd37)
!! subsector captured energy emissions
= sum(secInd37_2_emiInd37(secInd37,emiInd37(emiInd37_fuel)),
vm_emiIndCCS.l(ttot,regi,emiInd37)
)
!! subsector total energy emissions
/ sum(entyFe2, vm_emiIndBase.l(ttot,regi,entyFe2,secInd37));

*** EOF ./modules/37_industry/fixed_shares/postsolve.gms
2 changes: 2 additions & 0 deletions modules/37_industry/subsectors/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ Parameters
*** output parameters only for reporting
o37_cementProcessEmissions(ttot,all_regi,all_enty) "cement process emissions [GtC/a]"
o37_demFeIndSub(ttot,all_regi,all_enty,all_enty,secInd37,all_emiMkt) "FE demand per industry subsector"
o37_indCCSshare(ttot,all_regi,secInd37) "industry subsector CCS capture share"
o37_incinerationEmi(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Emissions from incineration of plastic waste, net of CCS [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
39 changes: 19 additions & 20 deletions modules/37_industry/subsectors/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -93,27 +93,25 @@ $endif.exogDem_scen
*' accounting, just as a CCS baseline.
***------------------------------------------------------
q37_emiIndBase(t,regi,entyFe,secInd37) ..
vm_emiIndBase(t,regi,entyFe,secInd37)
vm_emiIndBase(t,regi,entyFe,secInd37)
=e=
sum((secInd37_2_pf(secInd37,ppfen_industry_dyn37(in)),fe2ppfEn(entyFeCC37(entyFe),in)),
sum((secInd37_2_pf(secInd37,ppfen_industry_dyn37(in)),
fe2ppfEn(entyFeCC37(entyFe),in)),
( vm_cesIO(t,regi,in)
- ( p37_chemicals_feedstock_share(t,regi)
* vm_cesIO(t,regi,in)
)$( in_chemicals_feedstock_37(in) )
)
*
sum(se2fe(entySeFos,entyFe,te),
pm_emifac(t,regi,entySeFos,entyFe,te,"co2")
* ( 1
- p37_chemicals_feedstock_share(t,regi)$( in_chemicals_feedstock_37(in) )
)
)$(NOT secInd37Prc(secInd37))
+
sum((sefe(entySe,entyFe),secInd37_emiMkt(secInd37,emiMkt)),
vm_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
)$( sameas(secInd37,"chemicals") )
+
sum((secInd37_tePrc(secInd37,tePrc),tePrc2opmoPrc(tePrc,opmoPrc)),
v37_emiPrc(t,regi,entyFe,tePrc,opmoPrc)
)$(secInd37Prc(secInd37))
)
* sum(se2fe(entySeFos,entyFe,te),
pm_emifac(t,regi,entySeFos,entyFe,te,"co2")
)
)$( NOT secInd37Prc(secInd37) )
+ sum((sefe(entySe,entyFe),secInd37_emiMkt(secInd37,emiMkt)),
vm_incinerationEmi_Base(t,regi,entySe,entyFe,emiMkt)
)$( sameas(secInd37,"chemicals") )
+ sum((secInd37_tePrc(secInd37,tePrc),tePrc2opmoPrc(tePrc,opmoPrc)),
v37_emiPrc(t,regi,entyFe,tePrc,opmoPrc)
)$( secInd37Prc(secInd37) )
;

***------------------------------------------------------
Expand Down Expand Up @@ -290,10 +288,11 @@ q37_plasticWaste(ttot,regi,sefe(entySe,entyFe),emiMkt)$(
+ v37_plasticsCarbon(ttot-1,regi,entySe,entyFe,emiMkt)$( ttot.val gt 2070 )
;

*' emissions from plastics incineration as a share of total plastic waste, discounted by captured amount
*' emissions from plastics incineration as a share of total plastic waste,
*' before CCS
q37_incinerationEmi(t,regi,sefe(entySe,entyFe),emiMkt)$(
entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt)) ..
vm_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
vm_incinerationEmi_Base(t,regi,entySe,entyFe,emiMkt)
=e=
v37_plasticWaste(t,regi,entySe,entyFe,emiMkt)
* pm_incinerationRate(t,regi)
Expand Down
26 changes: 16 additions & 10 deletions modules/37_industry/subsectors/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,20 @@ o37_demFeIndSub(ttot,regi,entySe,entyFe,secInd37,emiMkt)$(
v37_demFeIndst.l(ttot,regi,entySe,entyFe,out,emiMkt)
);

*** industry subsector capture share
o37_indCCSshare(ttot,regi,secInd37)
!! subsector captured energy emissions
= ( sum(secInd37_2_emiInd37(secInd37,emiInd37(emiInd37_fuel)),
vm_emiIndCCS.l(ttot,regi,emiInd37)
)
!! subsector total energy emissions
/ sum(entyFe2, vm_emiIndBase.l(ttot,regi,entyFe2,secInd37))
)$( sum(entyFe2, vm_emiIndBase.l(ttot,regi,entyFe2,secInd37)) );

*** industry captured fuel CO2
pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
emiInd37_fe2sec(entyFe,secInd37)
AND sum(entyFE2, vm_emiIndBase.l(ttot,regi,entyFE2,secInd37)) )
AND sum(entyFe2, vm_emiIndBase.l(ttot,regi,entyFe2,secInd37)) )
= ( o37_demFeIndSub(ttot,regi,entySe,entyFe,secInd37,emiMkt)
* sum(se2fe(entySE2,entyFe,te),
!! collapse entySe dimension, so emission factors apply to all entyFe
Expand All @@ -50,16 +60,12 @@ pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
pm_emifac(ttot,regi,entySE2,entyFe,te,"co2")
)
) !! subsector emissions (smokestack, i.e. including biomass & synfuels)
* o37_indCCSshare(ttot,regi,secInd37);

* ( sum(secInd37_2_emiInd37(secInd37,emiInd37(emiInd37_fuel)),
vm_emiIndCCS.l(ttot,regi,emiInd37)
) !! subsector captured energy emissions

/ sum(entyFE2,
vm_emiIndBase.l(ttot,regi,entyFE2,secInd37)
) !! subsector total energy emissions
) !! subsector capture share
;
*** Emissions from incineration of plastic waste, net of CCS
o37_incinerationEmi(ttot,regi,sefe(entySe,entyFe),emiMkt)
= vm_incinerationEmi_Base.l(ttot,regi,entySe,entyFe,emiMkt)
* (1 - o37_indCCSshare(ttot,regi,"chemicals"));


*** ---------------------------------------------------------------------------
Expand Down