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

Update vm_emiCdrAll and adjustments to industry emi variables #2004

Merged
merged 14 commits into from
Feb 28, 2025
Merged
9 changes: 5 additions & 4 deletions core/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -392,10 +392,10 @@ v_costInv(ttot,all_regi) "investment costs"
vm_costTeCapital(ttot,all_regi,all_te) "investment costs"
vm_costAddTeInv(tall,all_regi,all_te,emi_sectors) "additional sector-specific investment cost of demand-side transformation"

vm_co2CCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all different ccs. [GtC/a]"

v_co2capture(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all captured CO2. [GtC/a]"
v_co2capture(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all captured CO2. [GtC/a]"
v_co2capturevalve(ttot,all_regi) "CO2 emitted right after capture [GtC/a] (in q_balCCUvsCCS to account for different lifetimes of capture and CCU/CCS te and capacities)"
vm_co2CCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all geologically stored co2 [GtC/a]"
v_ccsShare(ttot,all_regi) "fraction of captured CO2 that is stored geologically"

v_prodUe (ttot,all_regi,all_enty,all_enty,all_te) "Useful energy production [TWa]"

Expand All @@ -413,7 +413,7 @@ v_shSeFe(ttot,all_regi,all_enty) "share of energy carrier su
v_shSeFeSector(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "share of energy carrier subtype in final energy demand of the aggregated carrier type per sector/emiMarket combination (eg 'the share of bio-based FE liquids in all FE liquids used in ETS-covered transport') [0..1]"
v_shGasLiq_fe(ttot,all_regi,emi_sectors) "share of gases and liquids in sector final energy [0..1]"

vm_emiCdrAll(ttot,all_regi) "all CDR emissions"
vm_emiCdrAll(ttot,all_regi) "all CDR emissions; net for LUC gross for all other"

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 Expand Up @@ -509,6 +509,7 @@ 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(ttot,all_regi) "prevent SO2 from rising again after 2050"

Expand Down
60 changes: 45 additions & 15 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -633,11 +633,11 @@ q_emiTeMkt(t,regi,emiTe(enty),emiMkt) ..
)
!! energy emissions fuel extraction
+ v_emiEnFuelEx(t,regi,enty)$( sameas(emiMkt,"ETS") )
!! Industry CCS emissions
!! Industry co2 capture from fuel combustion (i.e. excl. cement_process which are part of vm_emiMacSector)
- sum(emiInd37_fuel,
vm_emiIndCCS(t,regi,emiInd37_fuel)
)$( sameas(enty,"co2") AND sameas(emiMkt,"ETS") )
!! plastic waste incineration; can be positive (fossil non-ccs) or negative (bio/syn w/ CCS)
!! plastic waste incineration; net from positive (fossil non-ccs) and negative (bio/syn w/ CCS)
+ vm_wasteIncinerationEmiBalance(t,regi,enty,emiMkt)
!! Valve from cco2 capture step, to mangage if capture capacity and CCU/CCS
!! capacity don't have the same lifetime
Expand All @@ -663,7 +663,7 @@ q_emiAllMkt(t,regi,emi,emiMkt) ..
macSector2emiMkt(emiMacSector,emiMkt)),
vm_emiMacSector(t,regi,emiMacSector)
)
!! CDR from CDR module
!! emissions from CDR module
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I liked "CDR from CDR module" as "emissions" kinda suggest that this is all emissions from the module, also including energy related and process emissions. But I don't have too strong opinions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But CDR is wrong for dac... I prefer emissions because it's really all actual emissions that are calculated directly in the CDR module (incl. non-captured emi from calcination + energy). Energy-related emissions are not calculated there.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahaha sorry. I restructured this part in my PR, because I want to keep energy related emissions and active removal from the atmosphere separate. So after that it will be CDR from CDR module and not emissions. I'm already so familiar with my restructured version that I didn't realise that it was an inconsistency in the trunk.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still think CDR would be misleading, since it is all captured dac emissions, but not all of that is necessarily daccs. My point is not about the FE emissions, but about dac vs daccs

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I totally see your point and honestly, go for whatever you want, my opinion isn't that strong. But "emissions from CDR module" for me implies that it does contain FE or calcination emissions.
How about a longer explanation?
Theoretical max. of removals from CDR module before rerelease from CCU ?

+ vm_emiCdr(t,regi,emi)$( sameas(emi,"co2") AND sameas(emiMkt,"ETS") )
!! Exogenous emissions
+ pm_emiExog(t,regi,emi)$( sameas(emiMkt,"other") )
Expand Down Expand Up @@ -756,20 +756,43 @@ q_emiMac(t,regi,emiMac) ..
*' All CDR emissions summed up
***--------------------------------------------------
q_emiCdrAll(t,regi)..
vm_emiCdrAll(t,regi)
vm_emiCdrAll(t,regi) !! positive value
=e=
( !! BECC + DACC
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail(t,regi,enty,enty2,te,enty3))
- vm_emiCdrTeDetail(t, regi, "dac") !! this is a negative value
)
* ( !! scaled by the fraction that gets stored geologically
sum(teCCS2rlf(te, rlf), vm_co2CCS(t, regi, "cco2", "ico2", te, rlf))
/ (sum(teCCS2rlf(te, rlf), v_co2capture(t, regi, "cco2", "ico2", "ccsinje", rlf)) + sm_eps)
)
!! ---- net LUC CDR
!! net negative emissions from co2luc
- p_macBaseMagpieNegCo2(t,regi)
!! negative emissions from the cdr module that are not stored geologically
- (vm_emiCdr(t,regi,"co2") - vm_emiCdrTeDetail(t, regi, "dac"))
- p_macBaseMagpieNegCo2(t,regi) !! negative value

!! ---- gross non-industry CDR
!! 1. directly geologically stored gross atmospheric removal from pe2se-BECCS + DACCS
+ ( !! pe2se-BECC
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail(t,regi,enty,enty2,te,enty3)) !! positive value
!! + gross DACC
- sum(teCCS2rlf(te,rlf), vm_emiCdrTeDetail(t, regi, "dac"))) !! negative value
!! scaled by the fraction that gets stored geologically
* v_ccsShare(t,regi)
!! 2. gross CDR from Enhanced Weathering
- vm_emiCdrTeDetail(t, regi, "weathering") !! negative value
!! 3. gross ocean uptake from OAE (also excluding non-avoidable emi from calcination)
- vm_emiCdrTeDetail(t, regi, "oae_ng") !! negative value
- vm_emiCdrTeDetail(t, regi, "oae_el") !! negative value

!! ---- gross industry CDR
!! 1. gross industry CCS-CDR (from burning biogenic or synfuel + capturing + storing the co2)
+ sum(emiInd37$(not sameas(emiInd37,"co2cement_process")),
vm_emiIndCCS(t,regi,emiInd37) !! positive value
!! multiply with bio/syn share from previous iteration (computationally too expensive to incl. in optimization)
* pm_NonFos_IndCC_fraction0(t,regi, emiInd37))
!! multiply with ccs share
* v_ccsShare(t,regi)
!! 2. Feedstocks
!! 2a) plastics CDR -- incinerated waste that is captured + stored from non-fossil feedstocks
+ sum(emiMkt,
vm_nonFosPlastic_incinCC(t,regi,emiMkt) * v_ccsShare(t,regi)) !! positive value
!! 2b) plastics CDR -- landfilled waste from non-fossil feedstocks
- sum((emi,emiMkt),
vm_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)) !! negative value
!! 2c) non-plastics materials CDR -- landfilled waste from non-fossil feedstocks
+ vm_nonFosNonPlastic_landfilled(t,regi) !! positive value
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Looks very good to me. After my PR (still the old draft version, will update hopefully tonight) to restructure the accounting of energy related carbon capture in module 33 I will add this super small addition (CDR from FE+CCS in the CDR module) total CDR here too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to add this to this PR / send me the code / add it later?

;


Expand Down Expand Up @@ -874,6 +897,13 @@ q_balCCUvsCCS(t,regi) ..
+ v_co2capturevalve(t,regi)
;

q_ccsShare(t,regi) ..
sum(teCCS2rlf(te, rlf), v_co2capture(t, regi, "cco2", "ico2", "ccsinje", rlf)) *
v_ccsShare(t,regi)
=e=
sum(teCCS2rlf(te, rlf), vm_co2CCS(t, regi, "cco2", "ico2", te, rlf))
;

***---------------------------------------------------------------------------
*' Definition of the CCS transformation chain:
***---------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,7 @@ parameter
*' * as every region has to climb up the global learning curve all by itself.
*' * In combination with endogenous carbon pricing (e.g., in NDC), the deactivated Learningspillover will lead to higher overall carbon prices. Can be solved by setting carbonprice to exogenous (config).
parameter
cm_nonPlasticFeedstockEmiShare "Share of non-plastic carbon that gets emitted, rest is stored permanently, [share]"
cm_nonPlasticFeedstockEmiShare "Share of non-plastic carbon that gets emitted through incineration, rest is stored permanently through landfill, [share]"
;
cm_nonPlasticFeedstockEmiShare = 0.6; !! def 0.6 = 60 per cent of carbon in non-plastics gets emitted
*'
Expand Down
14 changes: 10 additions & 4 deletions modules/37_industry/subsectors/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Parameters
p37_clinker_cement_ratio(ttot,all_regi) "clinker content per unit cement used"
pm_ue_eff_target(all_in) "energy efficiency target trajectories [% p.a.]"
pm_IndstCO2Captured(ttot,all_regi,all_enty,all_enty,secInd37,all_emiMkt) "Captured CO2 in industry by energy carrier, subsector and emissions market [GtC/a]"
pm_NonFos_IndCC_fraction0(ttot,all_regi,emiInd37) "share of fuel co2 captured that is from sebio or sesyn [fraction], by secInd37"
p37_CESMkup(ttot,all_regi,all_in) "parameter for those CES markup cost accounted as investment cost in the budget [trUSD/CES input]"
p37_cesIO_up_steel_secondary(tall,all_regi,all_GDPpopScen) "upper limit to secondary steel production based on scrap availability"
p37_steel_secondary_max_share(tall,all_regi) "maximum share of secondary steel production"
Expand Down Expand Up @@ -89,14 +90,16 @@ Positive Variables
v37_emiIndCCSmax(ttot,all_regi,emiInd37) "maximum abatable industry emissions"

!! feedstocks
v37_incinerationEmi(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Emissions from incineration of plastic waste [GtC]"
v37_incinerationEmi(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Emissions from incineration of plastic waste, only carbon that is not captured [GtC]"
vm_incinerationCCS(ttot,all_regi,all_enty,all_enty,all_emiMkt) "CCS from incineration of plastic waste [GtC]"
v37_incineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics that are not incinerated [GtC]"
v37_incineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics that are incinerated [GtC]"
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]"
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 [%]"
vm_wasteIncinerationEmiBalance(tall,all_regi,all_enty,all_emiMkt) "Sum of plastics waste incineration related emissions (positive and negative) [GtC]"
vm_nonFosPlastic_incinCC(ttot,all_regi,all_emiMkt) "Carbon from non-fossil origin in plastics that gets incinerated with carbon capture [GtC]"
vm_nonFosNonPlastic_landfilled(ttot,all_regi) "Carbon from non-fossil origin in non-plastic materials that are landfilled [GtC]"
v37_emiChemicalsProcess(ttot,all_regi,all_enty,all_emiMkt) "Chemical process emissions, so far only CO2 emissions [GtC]"

!! process-based implementation
Expand All @@ -110,7 +113,7 @@ Positive Variables
Variables
!! feedstocks
vm_emiFeedstockNoEnergy(ttot,all_regi,all_enty,all_emiMkt) "Emissions from feedstocks that are not accounted as energy-related emissions, so far only CO2 emissions [GtC]"
v37_emiNonFosNonIncineratedPlastics(ttot,all_regi,all_enty,all_emiMkt) "Negative CO2 emissions from non-fossil carbon in non-incinerated plastics [GtC]"
vm_emiNonFosNonIncineratedPlastics(ttot,all_regi,all_enty,all_emiMkt) "Negative CO2 emissions from non-fossil carbon in non-incinerated plastics [GtC]"
v37_emiNonPlasticWaste(ttot,all_regi,all_enty,all_emiMkt) "Emissions from non-plastic waste, so far only CO2 emissions [GtC]"
;

Expand All @@ -134,10 +137,13 @@ $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_incineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon contained in plastics that are not incinerated [GtC]"
q37_nonFosPlastic_incinCC(ttot,all_regi,all_emiMkt) "calculate non-fossil carbon captured from plastics that are incinerated [GtC]"
q37_incineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "calculate carbon contained in plastics that are incinerated [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"
q37_wasteIncinerationEmiBalance(tall,all_regi,all_enty,all_emiMkt) "sum feedstocks incineration emissions up in order not to clutter the core"
q37_nonFosNonPlastic_landfilled(ttot,all_regi) "calculate non-fossil carbon in non-plastic materials that are landfilled [GtC]"

q37_emiChemicalsProcess(ttot,all_regi,all_enty,all_emiMkt) "calculate chemicals process emissions"
q37_emiNonFosNonIncineratedPlastics(ttot,all_regi,all_enty,all_emiMkt) "calculate negative emissions from non-fossil non-incinerated plastics"
q37_emiNonPlasticWaste(ttot,all_regi,all_enty,all_emiMkt) "calculate emissions from non-plastic waste"
Expand Down
58 changes: 36 additions & 22 deletions modules/37_industry/subsectors/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ q37_incineratedPlastics(t,regi,sefe(entySe,entyFe),emiMkt)$(
;

*' emissions from plastics incineration as a share of total plastic waste,
*' discounted by captured amount
*' calculated as carbon in incinerated plastics discounted by captured amount
q37_incinerationEmi(t,regi,sefe(entySe,entyFe),emiMkt)$(
entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ) ..
v37_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
Expand All @@ -329,23 +329,21 @@ q37_incinerationCCS(t,regi,sefe(entySe,entyFe),emiMkt)$(
* v37_regionalWasteIncinerationCCSshare(t,regi)
;


*' calculate chemical process emissions as carbon that does not end up in product but is emitted during conversion processes
q37_emiChemicalsProcess(t,regi,emi,emiMkt)..
v37_emiChemicalsProcess(t,regi,emi,emiMkt)
*' sum non-fossil carbon from plastics that get incinerated with carbon capture
q37_nonFosPlastic_incinCC(t,regi,emiMkt)..
vm_nonFosPlastic_incinCC(t,regi,emiMkt)
=e=
sum((entyFE2sector2emiMkt_NonEn(entyFe,sector,emiMkt),
se2fe(entySe,entyFe,te)),
vm_demFeNonEnergySector(t,regi,entySe,entyFe,sector,emiMkt)
* pm_emifacNonEnergy(t,regi,entySe,entyFe,sector,emi)
)
sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
vm_incinerationCCS(t,regi,entySe,entyFe,emiMkt)
)
;

*' calculate negative emissions from non-fossil carbon in plastics
*' that do not get incinerated ("plastic removals")
*' attribute to ES market as we account these emissions in the waste sector (IPCC sector 5)
q37_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)..
v37_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)
vm_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)
=e=
sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt2),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
Expand All @@ -357,7 +355,17 @@ q37_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)..
)$( sameas(emi,"co2") AND sameas(emiMkt,"ES") )
;

*' calculate emissions from non-plastic waste
*' calculate non-fossil carbon in non-plastic waste that does not get emitted to the atmosphere (i.e. is stored permanently)
q37_nonFosNonPlastic_landfilled(t,regi)..
vm_nonFosNonPlastic_landfilled(t,regi)
=e=
sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
v37_feedstocksCarbon(t,regi,entySe,entyFe,emiMkt) * (1 - s37_plasticsShare) * (1 - cm_nonPlasticFeedstockEmiShare) )

;

*' calculate net emissions from non-plastic waste
*' attribute to ES market as we assume open burning without energy recovery or landfilling
*' (depending on cm_nonPlasticFeedstockEmiShare) and therefore account these emissions
*' in the waste sector (IPCC sector 5)
Expand All @@ -368,38 +376,44 @@ q37_emiNonPlasticWaste(t,regi,emi,emiMkt)..
se2fe(entySe,entyFe,te))$(entySeFos(entySe)),
*' fossil carbon in non-plastic waste that gets emitted to the atmosphere
v37_feedstocksCarbon(t,regi,entySe,entyFe,emiMkt2) * (1 - s37_plasticsShare) * cm_nonPlasticFeedstockEmiShare)
- sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt2),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
*' non-fossil carbon in non-plastic waste that does not get emitted to the atmosphere (i.e. is stored permanently)
v37_feedstocksCarbon(t,regi,entySe,entyFe,emiMkt2) * (1 - s37_plasticsShare) * (1 - cm_nonPlasticFeedstockEmiShare) )
- vm_nonFosNonPlastic_landfilled(t,regi)
)$( sameas(emi,"co2") AND sameas(emiMkt,"ES") )
;

*' calculate chemical process emissions as carbon that does not end up in product but is emitted during conversion processes
q37_emiChemicalsProcess(t,regi,emi,emiMkt)..
v37_emiChemicalsProcess(t,regi,emi,emiMkt)
=e=
sum((entyFE2sector2emiMkt_NonEn(entyFe,sector,emiMkt),
se2fe(entySe,entyFe,te)),
vm_demFeNonEnergySector(t,regi,entySe,entyFe,sector,emiMkt)
* pm_emifacNonEnergy(t,regi,entySe,entyFe,sector,emi)
)
;

*' sum all emissions from feedstocks that are not accounted as energy-related emissions
*' (i.e. no combustion or combustion without energy recovery)
q37_emiFeedstockNoEnergy(t,regi,emi,emiMkt)..
vm_emiFeedstockNoEnergy(t,regi,emi,emiMkt)
=e=
v37_emiChemicalsProcess(t,regi,emi,emiMkt)
+ v37_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)
+ vm_emiNonFosNonIncineratedPlastics(t,regi,emi,emiMkt)
+ v37_emiNonPlasticWaste(t,regi,emi,emiMkt)
;

*' sum feedstocks incineration emissions up, accouned as energy-related emissions
q37_wasteIncinerationEmiBalance(t,regi,emiTe(enty),emiMkt) ..
vm_wasteIncinerationEmiBalance(t,regi,enty,emiMkt)
=e=
!! add fossil emissions from plastics incineration without CCS.
!! add fossil emissions from plastics incineration without carbon capture.
+ sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeFos(entySe) ),
v37_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! substract carbon from non-fossil origin contained in plastics that
!! get incinerated with CCS
- sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeBio(entySe) OR entySeSyn(entySe) ),
vm_incinerationCCS(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! get incinerated with carbon capture
- vm_nonFosPlastic_incinCC(t,regi,emiMkt)$( sameas(enty,"co2") )
;

*** ---------------------------------------------------------------------------
Expand Down
14 changes: 14 additions & 0 deletions modules/37_industry/subsectors/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,20 @@ pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
;


*** calculate share of sebio- and sesyn-based co2 captured
pm_NonFos_IndCC_fraction0(ttot,regi,emiInd37) =
sum(secInd37$secInd37_2_emiInd37(secInd37,emiInd37),
sum( (entySe,entyFe, emiMkt)$(NOT (entySeFos(entySe))),
pm_IndstCO2Captured(ttot,regi,entySe,entyFe,secInd37,emiMkt)
)
/
max((sum((entySe,entyFe,emiMkt),
pm_IndstCO2Captured(ttot,regi,entySe,entyFe,secInd37,emiMkt))),
1e-100) !! somehow need to ensure that not 0
)
;


*** ---------------------------------------------------------------------------
*** Process-Based
*** ---------------------------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions modules/37_industry/subsectors/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

*** initialize captured CO2 parameter
pm_IndstCO2Captured(t,regi,entySe,entyFe,secInd37,emiMkt) = 0;
pm_NonFos_IndCC_fraction0(ttot,all_regi,emiInd37) = 0;

*' calculate carbon content of feedstock for chemicals subsector as difference between
*' combustion emissions factor of FE and industrial process emissions factor
Expand Down