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 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
15 changes: 5 additions & 10 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 @@ -399,7 +399,7 @@ vm_prodPe(ttot,all_regi,all_enty) "pe production. [TWa, Urani
vm_demSe(ttot,all_regi,all_enty,all_enty,all_te) "se demand. [TWa]"
vm_prodSe(tall,all_regi,all_enty,all_enty,all_te) "se production. [TWa]"
vm_prodFe(ttot,all_regi,all_enty,all_enty,all_te) "fe production. [TWa]"
vm_demFENonEnergySector(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "energy flows of non-energy feedstocks [TWa]"
vm_demFeNonEnergySector(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "energy flows of non-energy feedstocks [TWa]"
vm_demFeSector(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "fe demand per sector and emission market. Taxes should be applied to this variable or variables closer to the supply side whenever possible so the marginal prices include the tax effects. [TWa]"
vm_demFeSector_afterTax(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "fe demand per sector and emission market after tax. Demand sectors should use this variable in their fe balance equations so demand side marginals include taxes effects. [TWa]"
v_costFu(ttot,all_regi) "fuel costs"
Expand Down Expand Up @@ -432,19 +432,14 @@ 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_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"

*** ES layer variables
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
33 changes: 8 additions & 25 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,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 @@ -556,7 +556,7 @@ q_emiTeDetailMkt(t,regi,enty,enty2,te,enty3,emiMkt)$(
!! substract FE used for non-energy purposes (as feedstocks) so it does
!! not create energy-related emissions
- sum(entyFE2sector2emiMkt_NonEn(enty2,sector,emiMkt),
vm_demFENonEnergySector(t,regi,enty,enty2,sector,emiMkt))
vm_demFeNonEnergySector(t,regi,enty,enty2,sector,emiMkt))
)
)
)
Expand Down Expand Up @@ -600,22 +600,8 @@ q_emiTeMkt(t,regi,emiTe(enty),emiMkt) ..
- sum(emiInd37_fuel,
vm_emiIndCCS(t,regi,emiInd37_fuel)
)$( sameas(enty,"co2") AND sameas(emiMkt,"ETS") )
!! 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)
)$( sameas(enty,"co2") )
!! add fossil emissions from plastics incineration.
+ sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeFos(entySe) ),
vm_incinerationEmi(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! add fossil emissions from chemical feedstock with unknown fate
+ sum((entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt),
se2fe(entySe,entyFe,te))$( entySeFos(entySe) ),
vm_feedstockEmiUnknownFate(t,regi,entySe,entyFe,emiMkt)
)$( sameas(enty,"co2") )
!! plastic waste incineration; can be positive (fossil non-ccs) or 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
+ v_co2capturevalve(t,regi)$( sameas(enty,"co2") AND sameas(emiMkt,"ETS") )
Expand Down Expand Up @@ -644,12 +630,9 @@ q_emiAllMkt(t,regi,emi,emiMkt) ..
+ vm_emiCdr(t,regi,emi)$( sameas(emi,"co2") AND sameas(emiMkt,"ETS") )
!! Exogenous emissions
+ pm_emiExog(t,regi,emi)$( sameas(emiMkt,"other") )
!! non energy emi from chem sector (process emissions from feedstocks):
+ 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)
)
!! emission balance of carbon feedstocks contained in chemicals.
!! can be positive (fossil, emitted) or negative (non-fossil, stored in products)
+ vm_feedstocksEmiBalance(t,regi,emi,emiMkt)
;


Expand Down Expand Up @@ -839,7 +822,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
63 changes: 33 additions & 30 deletions modules/37_industry/fixed_shares/not_used.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,38 @@
# | AGPL-3.0, you are granted additional permissions described in the
# | REMIND License Exception, version 1.0 (see LICENSE file).
# | Contact: [email protected]
name, type, reason
cm_emiscen, parameter, not needed
pm_calibrate_eff_scale, parameter, not needed
pm_delta_kap, input, questionnaire
pm_emifacNonEnergy, parameter, not needed
pm_exogDemScen, input, added by codeCheck
pm_fedemand, parameter, not needed
pm_incinerationRate, parameter, not needed
pm_outflowPrcHist, 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
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_incinerationCCS, variable, does not want to play
vm_incinerationEmi, variable, not needed
vm_nonIncineratedPlastics, variable, not needed
vm_outflowPrc, variable, not needed
name, type, reason
cm_emiscen, parameter, not needed
pm_calibrate_eff_scale, parameter, not needed
pm_delta_kap, input, questionnaire
pm_emifacNonEnergy, parameter, not needed
pm_exogDemScen, input, added by codeCheck
pm_fedemand, parameter, not needed
pm_incinerationRate, parameter, not needed
pm_outflowPrcHist, 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
sm_tmp2, parameter, not needed
sm_TWa_2_MWh, input, questionnaire
vm_capFac, variable, not needed
vm_cap, variable, not needed
vm_costMatPrc, variable, not needed
v37_feedstockEmiUnknownFate, variable, not needed
v37_incinerationEmi, variable, not needed
vm_incinerationCCS, variable, not needed
v37_incineratedPlastics, variable, not needed
v37_feedstocksCarbon, variable, not needed
v37_plasticsCarbon, variable, not needed
v37_plasticWaste, variable, not needed
v37_regionalWasteIncinerationCCSshare, variable, not needed
vm_feedstocksEmiBalance, variable, not needed
vm_demFeNonEnergySector, variable, not needed
vm_wasteIncinerationEmiBalance, variable, not needed
vm_outflowPrc, variable, not needed
sm_D2020_2_D2017,input,no conversion needed
sm_EURO2023_2_D2017,input,no conversion needed
16 changes: 13 additions & 3 deletions modules/37_industry/subsectors/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,18 @@ Positive Variables
vm_emiIndCCS(ttot,all_regi,all_enty) "industry CCS emissions [GtC/a]"
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]"

!! feedstocks
v37_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]"
v37_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]"
v37_incineratedPlastics(ttot,all_regi,all_enty,all_enty,all_emiMkt) "Carbon flow: carbon contained in plastics that are not 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 [%]"
v37_regionalWasteIncinerationCCSshare(tall,all_regi) "Share of waste incineration that is captured [%]"
vm_feedstocksEmiBalance(tall,all_regi,all_enty,all_emiMkt) "Sum of chemical feedstock related emissions (positive and negative) that are accounted as non-energy, i.e. non-waste-incineration [GtC]"
vm_wasteIncinerationEmiBalance(tall,all_regi,all_enty,all_emiMkt) "Sum of plastics waste incineration related emissions (positive and negative) [GtC]"

!! process-based implementation
vm_outflowPrc(tall,all_regi,all_te,opmoPrc) "Production volume of processes in process-based model [Gt/a]"
Expand Down Expand Up @@ -120,10 +128,12 @@ $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_incineratedPlastics(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"
q37_feedstocksEmiBalance(tall,all_regi,all_enty,all_emiMkt) "sum feedstocks emission balance up in order not to clutter the core"
q37_wasteIncinerationEmiBalance(tall,all_regi,all_enty,all_emiMkt) "sum feedstocks incineration emissions up in order not to clutter the core"

!! process-based implementation
q37_demMatPrc(tall,all_regi,mat) "Material demand of processes"
Expand Down
Loading
Loading