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

fix recycling of implicit tax from BECCS qtty target in regipol #1745

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from
Draft
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
https://github.com/remindmodel/development_issues/issues/274
- **MAGICC7** fix climate data for time before cm_startyear on reference run
[[#1744](https://github.com/remindmodel/remind/pull/1744)]
- **regipol** fix recycling of implicit tax from BECCS qtty target
[[#1745](https://github.com/remindmodel/remind/pull/1745)]
- **scripts** fix tax convergence reporting in modelSummary
[[#1728](https://github.com/remindmodel/remind/pull/1728)]
- **scripts** cleanup non-existing realizations from settings_config.csv
Expand Down
2 changes: 1 addition & 1 deletion main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -1331,7 +1331,7 @@ $setGlobal cm_vehiclesSubsidies off !! def = off
*** cm_implicitQttyTarget "2050.GLO.sub.s.FE.electricity 0.8". The p47_implicitQttyTargetTax parameter will contain the subsidy necessary to achieve that goal.
*** Enforce a subsidy (sub) that guarantees a minimum share (s) of electricity in final energy (FE.electricity) equal to 80% (0.8) from 2050 (2050) onward in all World (GLO) regions.
*** The p47_implicitQttyTargetTax parameter will contain the subsidy necessary to achieve that goal.
*** To limit CCS to 8 GtCO2 and BECCS to 5 GtCO2, use "2050.GLO.tax.t.CCS.all 8000, 2050.GLO.tax.t.CCS.biomass 5000"
*** To limit CCS to 8 GtCO2 and BECCS (only Pe2Se, not industry) to 5 GtCO2, use "2050.GLO.tax.t.CCS.all 8000, 2050.GLO.tax.t.CCS.biomass 5000"
*** Example on how to use the switch with cm_implicitQttyTargetType = scenario:
*** cm_implicitQttyTarget "EU27_RpEUEff,EU27_bio4"
*** "EU27_RpEUEff" -> Enforce a tax that guarantees total FE will be lower or equal to the RePowerEU target for 2030.
Expand Down
2 changes: 2 additions & 0 deletions modules/47_regipol/none/not_used.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,5 @@ vm_emiTeMkt,input,added by codeCheck
pm_emiMktTarget_tolerance,switch,not needed
sm_globalBudget_dev,input,questionnaire
pm_allTargetsConverged,input,questionnaire
sm_eps,input,not needed
vm_co2capture,input,not needed
33 changes: 18 additions & 15 deletions modules/47_regipol/regiCarbonPrice/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,24 @@ q47_implicitQttyTargetTax(t,regi)$(t.val ge max(2010,cm_startyear))..
vm_taxrevimplicitQttyTargetTax(t,regi)
=e=
sum((qttyTarget,qttyTargetGroup)$p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup),
(
p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) * sum(entyPe$energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,entyPe), sum(pe2se(entyPe,entySe,te), vm_demPe(t,regi,entyPe,entySe,te)))
)$(sameas(qttyTarget,"PE"))
+
(
p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) * sum(entySe$energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,entySe), sum(se2fe(entySe,entyFe,te), vm_demSe(t,regi,entySe,entyFe,te)))
)$(sameas(qttyTarget,"SE"))
+
(
p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) * sum(entySe$energyQttyTargetANDGroup2enty("FE",qttyTargetGroup,entySe), sum(se2fe(entySe,entyFe,te), sum((sector,emiMkt)$(entyFe2Sector(entyFe,sector) AND sector2emiMkt(sector,emiMkt)), vm_demFeSector(t,regi,entySe,entyFe,sector,emiMkt))))
)$(sameas(qttyTarget,"FE") or sameas(qttyTarget,"FE_wo_b") or sameas(qttyTarget,"FE_wo_n_e") or sameas(qttyTarget,"FE_wo_b_wo_n_e"))
+
(
p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) * sum(ccs2te(ccsCo2(enty),enty2,te), sum(teCCS2rlf(te,rlf),vm_co2CCS(t,regi,enty,enty2,te,rlf)))
)$(sameas(qttyTarget,"CCS"))
p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) * (
( sum(entyPe$energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,entyPe), sum(pe2se(entyPe,entySe,te), vm_demPe(t,regi,entyPe,entySe,te)))
)$(sameas(qttyTarget,"PE"))
+
( sum(entySe$energyQttyTargetANDGroup2enty(qttyTarget,qttyTargetGroup,entySe), sum(se2fe(entySe,entyFe,te), vm_demSe(t,regi,entySe,entyFe,te)))
)$(sameas(qttyTarget,"SE"))
+
( sum(entySe$energyQttyTargetANDGroup2enty("FE",qttyTargetGroup,entySe), sum(se2fe(entySe,entyFe,te), sum((sector,emiMkt)$(entyFe2Sector(entyFe,sector) AND sector2emiMkt(sector,emiMkt)), vm_demFeSector.l(t,regi,entySe,entyFe,sector,emiMkt))))
)$(sameas(qttyTarget,"FE") or sameas(qttyTarget,"FE_wo_b") or sameas(qttyTarget,"FE_wo_n_e") or sameas(qttyTarget,"FE_wo_b_wo_n_e"))
+
( sum(ccs2te(ccsCo2(enty),enty2,te), sum(teCCS2rlf(te,rlf),vm_co2CCS(t,regi,enty,enty2,te,rlf)))
)$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"all"))
+
( !! only supply side BECCS
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail(t,regi,enty,enty2,te,enty3)
* sum(teCCS2rlf(te,rlf), vm_co2CCS.l(t,regi,"cco2","ico2",te,rlf)) / (sum(teCCS2rlf(te,rlf), vm_co2capture.l(t,regi,"cco2","ico2",te,rlf))+sm_eps)) !! pm_share_CCS_CCO2
)$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"biomass"))
)
)
-
p47_implicitQttyTargetTax0(t,regi)
Expand Down
12 changes: 4 additions & 8 deletions modules/47_regipol/regiCarbonPrice/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ $ENDIF.emiMkt
$ifthen.cm_implicitQttyTarget not "%cm_implicitQttyTarget%" == "off"

*** saving previous iteration value for implicit tax revenue recycling
*** the same line exists in presolve.gms, don't forget to update there
*** similar lines exists in equations.gms and presolve.gms, don't forget to update there
p47_implicitQttyTargetTax_prevIter(t,regi,qttyTarget,qttyTargetGroup) = p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup);
p47_implicitQttyTargetTax0(t,regi) =
sum((qttyTarget,qttyTargetGroup)$p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup),
Expand All @@ -497,11 +497,9 @@ p47_implicitQttyTargetTax0(t,regi) =
( sum(ccs2te(ccsCo2(enty),enty2,te), sum(teCCS2rlf(te,rlf),vm_co2CCS.l(t,regi,enty,enty2,te,rlf)))
)$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"all"))
+
(( !! Supply side BECCS
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail.l(t,regi,enty,enty2,te,enty3))
!! Industry BECCS (using biofuels in Industry with CCS)
+ sum((emiMkt,entySe,secInd37,entyFe)$entySeBio(entySe), pm_IndstCO2Captured(t,regi,entySe,entyFe,secInd37,emiMkt))
) * pm_share_CCS_CCO2(t,regi) )$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"biomass"))
( !! Only supply side BECCS
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail.l(t,regi,enty,enty2,te,enty3)) * pm_share_CCS_CCO2(t,regi)
)$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"biomass"))
)
)
;
Expand Down Expand Up @@ -529,8 +527,6 @@ loop((ttot,ext_regi,taxType,targetType,qttyTarget,qttyTargetGroup)$pm_implicitQt
+
sum(regi$regi_groupExt(ext_regi,regi), ( !! Supply side BECCS
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail.l(ttot,regi,enty,enty2,te,enty3))
!! Industry BECCS (using biofuels in Industry with CCS)
+ sum((emiMkt,entySe,secInd37,entyFe)$entySeBio(entySe), pm_IndstCO2Captured(ttot,regi,entySe,entyFe,secInd37,emiMkt))
) * pm_share_CCS_CCO2(ttot,regi))$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"biomass"))
);
if(sameas(targetType,"s"), !!relative target (s=share) (not applied to CCS)
Expand Down
10 changes: 4 additions & 6 deletions modules/47_regipol/regiCarbonPrice/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ $ENDIF.emiMkt
$ifthen.cm_implicitQttyTarget not "%cm_implicitQttyTarget%" == "off"

*** saving value for implicit tax revenue recycling
*** the same line exists in postsolve.gms, don't forget to update there
*** similar lines exists in equations.gms and postsolve.gms, don't forget to update there
p47_implicitQttyTargetTax0(t,regi) =
sum((qttyTarget,qttyTargetGroup)$p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup),
p47_implicitQttyTargetTax(t,regi,qttyTarget,qttyTargetGroup) * (
Expand All @@ -51,11 +51,9 @@ p47_implicitQttyTargetTax0(t,regi) =
( sum(ccs2te(ccsCo2(enty),enty2,te), sum(teCCS2rlf(te,rlf),vm_co2CCS.l(t,regi,enty,enty2,te,rlf)))
)$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"all"))
+
(( !! Supply side BECCS
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail.l(t,regi,enty,enty2,te,enty3))
!! Industry BECCS (using biofuels in Industry with CCS)
+ sum((emiMkt,entySe,secInd37,entyFe)$entySeBio(entySe), pm_IndstCO2Captured(t,regi,entySe,entyFe,secInd37,emiMkt))
) * pm_share_CCS_CCO2(t,regi) )$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"biomass"))
( !! Only supply side BECCS
sum(emiBECCS2te(enty,enty2,te,enty3),vm_emiTeDetail.l(t,regi,enty,enty2,te,enty3)) * pm_share_CCS_CCO2(t,regi)
)$(sameas(qttyTarget,"CCS") AND sameas(qttyTargetGroup,"biomass"))
)
)
;
Expand Down
Loading