Skip to content
Snippets Groups Projects
Commit 5daf8be0 authored by David Klein's avatar David Klein
Browse files

Change the reference scenario (for calculating the BECCS bound, see previous...

Change the reference scenario (for calculating the BECCS bound, see previous commit) from input_ref.gdx to the values of the own previous nash iteration.
parent e517fa63
No related branches found
No related tags found
1 merge request!132Reintroduce biomass bound. Further improvements (not relevant for the model behaviour)
...@@ -9,12 +9,6 @@ ...@@ -9,12 +9,6 @@
*** Bounds on pedem *** Bounds on pedem
*** ------------------------------------------------------------- *** -------------------------------------------------------------
*** To prevent RUS and MEA from demanding high amounts of biomass
*** just because of their capacity to store negative emissions a
*** general rule for all regions is applied that limits the PE
*** demand of BECCS technologies in policy runs to 30% of the total
*** PE of the baseline scenario (see q30_limitTeBio)
*** ------------------------------------------------------------- *** -------------------------------------------------------------
*** Bounds on 1st generation biomass annual production *** Bounds on 1st generation biomass annual production
*** ------------------------------------------------------------- *** -------------------------------------------------------------
......
...@@ -89,36 +89,35 @@ display i30_bioen_price_a, i30_bioen_price_b; ...@@ -89,36 +89,35 @@ display i30_bioen_price_a, i30_bioen_price_b;
*** Bounds on pedem *** Bounds on pedem
*** ------------------------------------------------------------- *** -------------------------------------------------------------
*** To prevent regions with large carbon sequestration potentials *** To prevent RUS and MEA from demanding high amounts of biomass
*** from demanding high amounts of biomass with CCS to generate *** just because of their capacity to store negative emissions a
*** negative emissions rather than requiring it for energy production *** general rule for all regions is applied that limits the PE
*** this general rule for all regions is applied that limits the PE
*** demand of BECCS technologies in policy runs to 30% of the total *** demand of BECCS technologies in policy runs to 30% of the total
*** PE of the baseline scenario (see q30_limitTeBio) *** PE of the baseline scenario (see q30_limitTeBio)
if(cm_emiscen ne 1, ***if(cm_emiscen ne 1,
Execute_Loadpoint 'input_ref' v30_pedem_BAU=vm_demPe; ***Execute_Loadpoint 'input_ref' v30_pedem_BAU=vm_demPe;
Execute_Loadpoint 'input_ref' v30_seprod_BAU=vm_prodSe; ***Execute_Loadpoint 'input_ref' v30_seprod_BAU=vm_prodSe;
***
p30_pedem_BAU(ttot,regi) = ***p30_pedem_BAU(ttot,regi) =
sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")), *** sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
v30_pedem_BAU.l(ttot,regi,enty,enty2,te) *** v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
) *** )
+ sum(entySe, *** + sum(entySe,
sum(te, *** sum(te,
v30_seprod_BAU.l(ttot,regi,"pegeo",entySe,te) *** v30_seprod_BAU.l(ttot,regi,"pegeo",entySe,te)
+ v30_seprod_BAU.l(ttot,regi,"pehyd",entySe,te) *** + v30_seprod_BAU.l(ttot,regi,"pehyd",entySe,te)
+ v30_seprod_BAU.l(ttot,regi,"pewin",entySe,te) *** + v30_seprod_BAU.l(ttot,regi,"pewin",entySe,te)
+ v30_seprod_BAU.l(ttot,regi,"pesol",entySe,te) *** + v30_seprod_BAU.l(ttot,regi,"pesol",entySe,te)
+ v30_seprod_BAU.l(ttot,regi,"peur",entySe,te) *** + v30_seprod_BAU.l(ttot,regi,"peur",entySe,te)
) *** )
) * 100/40 !!! substitution method *** ) * 100/40 !!! substitution method
; ***;
***
p30_pedemBio_BAU(ttot,regi) = ***p30_pedemBio_BAU(ttot,regi) =
sum(pe2se(enty,enty2,te)$(sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")), *** sum(pe2se(enty,enty2,te)$(sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
v30_pedem_BAU.l(ttot,regi,enty,enty2,te) *** v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
); *** );
); ***);
*** EOF ./modules/30_biomass/magpie_40/datainput.gms *** EOF ./modules/30_biomass/magpie_40/datainput.gms
...@@ -20,8 +20,8 @@ p30_max200_path(tall) "Time path of global maximal peb ...@@ -20,8 +20,8 @@ p30_max200_path(tall) "Time path of global maximal peb
p30_maxprod_residue(ttot,all_regi) "Maximal potential of residues enhanced by demand of biotr [TWa]" p30_maxprod_residue(ttot,all_regi) "Maximal potential of residues enhanced by demand of biotr [TWa]"
p30_pebiolc_pricemag(tall,all_regi) "Prices for lignocellulosic purpose grown bioenergy from MAgPIE [T$US/TWa]" p30_pebiolc_pricemag(tall,all_regi) "Prices for lignocellulosic purpose grown bioenergy from MAgPIE [T$US/TWa]"
p30_pebiolc_demandmag(tall,all_regi) "Production of lignocellulosic purpose grown bioenergy from MAgPIE [TWa]" p30_pebiolc_demandmag(tall,all_regi) "Production of lignocellulosic purpose grown bioenergy from MAgPIE [TWa]"
p30_pedem_BAU(ttot,all_regi) "Primary energy demand imported from reference gdx [TWa]" p30_demPe(ttot,all_regi) "Primary energy demand imported from gdx or previous iteration [TWa]"
p30_pedemBio_BAU(ttot,all_regi) "Primary bioenergy demand imported from reference gdx [TWa]" ***p30_pedemBio_BAU(ttot,all_regi) "Primary bioenergy demand imported from reference gdx [TWa]"
*** Shift factor calculation *** Shift factor calculation
...@@ -52,8 +52,8 @@ Positive variable ...@@ -52,8 +52,8 @@ Positive variable
v30_priceshift(ttot,all_regi) "Regional translation factor that shifts emulator prices to better fit actual MAgPIE prices [-]" v30_priceshift(ttot,all_regi) "Regional translation factor that shifts emulator prices to better fit actual MAgPIE prices [-]"
v30_pricemult(ttot,all_regi) "Regional multiplication factor that sclaes emulator prices to better fit actual MAgPIE prices [-]" v30_pricemult(ttot,all_regi) "Regional multiplication factor that sclaes emulator prices to better fit actual MAgPIE prices [-]"
v30_multcost(ttot,all_regi) "Cost markup factor for deviations from demand of last coupling iteration [-]" v30_multcost(ttot,all_regi) "Cost markup factor for deviations from demand of last coupling iteration [-]"
v30_pedem_BAU(tall,all_regi,all_enty,all_enty,all_te) "Primary energy demand imported from refernce gdx [TWa]" ***v30_pedem_BAU(tall,all_regi,all_enty,all_enty,all_te) "Primary energy demand imported from refernce gdx [TWa]"
v30_seprod_BAU(tall,all_regi,all_enty,all_enty,all_te) "Secondary energy production imported from reference gdx [TWa]" ***v30_seprod_BAU(tall,all_regi,all_enty,all_enty,all_te) "Secondary energy production imported from reference gdx [TWa]"
; ;
......
...@@ -113,7 +113,7 @@ q30_limitXpBio(t,regi).. ...@@ -113,7 +113,7 @@ q30_limitXpBio(t,regi)..
q30_limitTeBio(t,regi)$(cm_emiscen ne 1).. q30_limitTeBio(t,regi)$(cm_emiscen ne 1)..
sum(pe2se(enty,enty2,teBio)$(teCCS(teBio)), vm_demPe(t,regi,enty,enty2,teBio)) sum(pe2se(enty,enty2,teBio)$(teCCS(teBio)), vm_demPe(t,regi,enty,enty2,teBio))
=l= =l=
max (0.35 * p30_pedem_BAU(t,regi), 1.30 * p30_pedemBio_BAU(t,regi)); 0.5 * p30_demPe(t,regi);
*** EOF ./modules/30_biomass/magpie_4/equations.gms *** EOF ./modules/30_biomass/magpie_4/equations.gms
*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
*** | authors, and contributors see CITATION.cff file. This file is part
*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
*** | AGPL-3.0, you are granted additional permissions described in the
*** | REMIND License Exception, version 1.0 (see LICENSE file).
*** | Contact: remind@pik-potsdam.de
*** SOF ./modules/30_biomass/magpie_40/postsolve.gm
p30_demPe(ttot,regi) =
sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
vm_demPe.l(ttot,regi,enty,enty2,te)
)
+ sum(entySe,
sum(te,
vm_prodSe.l(ttot,regi,"pegeo",entySe,te)
+ vm_prodSe.l(ttot,regi,"pehyd",entySe,te)
+ vm_prodSe.l(ttot,regi,"pewin",entySe,te)
+ vm_prodSe.l(ttot,regi,"pesol",entySe,te)
+ vm_prodSe.l(ttot,regi,"peur",entySe,te)
)
) * 100/40 !!! substitution method
;
*** EOF ./modules/30_biomass/magpie_40/postsolve.gms
*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
*** | authors, and contributors see CITATION.cff file. This file is part
*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
*** | AGPL-3.0, you are granted additional permissions described in the
*** | REMIND License Exception, version 1.0 (see LICENSE file).
*** | Contact: remind@pik-potsdam.de
*** SOF ./modules/30_biomass/magpie_40/presolve.gms
*** save level value of all taxes
p30_demPe(ttot,regi) =
sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
vm_demPe.l(ttot,regi,enty,enty2,te)
)
+ sum(entySe,
sum(te,
vm_prodSe.l(ttot,regi,"pegeo",entySe,te)
+ vm_prodSe.l(ttot,regi,"pehyd",entySe,te)
+ vm_prodSe.l(ttot,regi,"pewin",entySe,te)
+ vm_prodSe.l(ttot,regi,"pesol",entySe,te)
+ vm_prodSe.l(ttot,regi,"peur",entySe,te)
)
) * 100/40 !!! substitution method
;
*** EOF ./modules/30_biomass/magpie_40/presolve.gms
...@@ -17,6 +17,8 @@ $Ifi "%phase%" == "datainput" $include "./modules/30_biomass/magpie_40/datainput ...@@ -17,6 +17,8 @@ $Ifi "%phase%" == "datainput" $include "./modules/30_biomass/magpie_40/datainput
$Ifi "%phase%" == "equations" $include "./modules/30_biomass/magpie_40/equations.gms" $Ifi "%phase%" == "equations" $include "./modules/30_biomass/magpie_40/equations.gms"
$Ifi "%phase%" == "preloop" $include "./modules/30_biomass/magpie_40/preloop.gms" $Ifi "%phase%" == "preloop" $include "./modules/30_biomass/magpie_40/preloop.gms"
$Ifi "%phase%" == "bounds" $include "./modules/30_biomass/magpie_40/bounds.gms" $Ifi "%phase%" == "bounds" $include "./modules/30_biomass/magpie_40/bounds.gms"
$Ifi "%phase%" == "presolve" $include "./modules/30_biomass/magpie_40/presolve.gms"
$Ifi "%phase%" == "postsolve" $include "./modules/30_biomass/magpie_40/postsolve.gms"
$Ifi "%phase%" == "output" $include "./modules/30_biomass/magpie_40/output.gms" $Ifi "%phase%" == "output" $include "./modules/30_biomass/magpie_40/output.gms"
*######################## R SECTION END (PHASES) ############################### *######################## R SECTION END (PHASES) ###############################
*** EOF ./modules/30_biomass/magpie_linear.gms *** EOF ./modules/30_biomass/magpie_linear.gms
...@@ -15,16 +15,16 @@ if (exists("outputdirs")) { ...@@ -15,16 +15,16 @@ if (exists("outputdirs")) {
} else { } else {
# This is the case if this script was called directly via Rscript # This is the case if this script was called directly via Rscript
listofruns <- list( listofruns <- list(
#list(period = "both", set = "cpl-Base", dirs = c("C_SDP-Base-rem-5", "C_SSP1-Base-rem-5", "C_SSP2-Base-rem-5", "C_SSP5-Base-rem-5")), list(period = "both", set = "cpl-Base", dirs = c("C_SDP-Base-rem-5", "C_SSP1-Base-rem-5", "C_SSP2-Base-rem-5", "C_SSP5-Base-rem-5")),
#list(period = "both", set = "cpl-PkBudg900", dirs = c("C_SDP-PkBudg900-rem-5", "C_SSP1-PkBudg900-rem-5", "C_SSP2-PkBudg900-rem-5", "C_SSP5-PkBudg900-rem-5")), list(period = "both", set = "cpl-PkBudg900", dirs = c("C_SDP-PkBudg900-rem-5", "C_SSP1-PkBudg900-rem-5", "C_SSP2-PkBudg900-rem-5", "C_SSP5-PkBudg900-rem-5")),
#list(period = "both", set = "cpl-PkBudg1100", dirs = c("C_SDP-PkBudg1100-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP5-PkBudg1100-rem-5")), list(period = "both", set = "cpl-PkBudg1100", dirs = c("C_SDP-PkBudg1100-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP5-PkBudg1100-rem-5")),
#list(period = "both", set = "cpl-PkBudg1300", dirs = c("C_SDP-PkBudg1300-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP5-PkBudg1300-rem-5")), list(period = "both", set = "cpl-PkBudg1300", dirs = c("C_SDP-PkBudg1300-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP5-PkBudg1300-rem-5")),
#list(period = "both", set = "cpl-NPi", dirs = c("C_SDP-NPi-rem-5", "C_SSP1-NPi-rem-5", "C_SSP2-NPi-rem-5", "C_SSP5-NPi-rem-5")), list(period = "both", set = "cpl-NPi", dirs = c("C_SDP-NPi-rem-5", "C_SSP1-NPi-rem-5", "C_SSP2-NPi-rem-5", "C_SSP5-NPi-rem-5")),
#list(period = "both", set = "cpl-SDP", dirs = c("C_SDP-Base-rem-5", "C_SDP-NPi-rem-5", "C_SDP-PkBudg1300-rem-5", "C_SDP-PkBudg1100-rem-5", "C_SDP-PkBudg1000-rem-5")), list(period = "both", set = "cpl-SDP", dirs = c("C_SDP-Base-rem-5", "C_SDP-NPi-rem-5", "C_SDP-PkBudg1300-rem-5", "C_SDP-PkBudg1100-rem-5", "C_SDP-PkBudg1000-rem-5")),
#list(period = "both", set = "cpl-SSP1", dirs = c("C_SSP1-Base-rem-5", "C_SSP1-NPi-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP1-PkBudg900-rem-5")), list(period = "both", set = "cpl-SSP1", dirs = c("C_SSP1-Base-rem-5", "C_SSP1-NPi-rem-5", "C_SSP1-PkBudg1300-rem-5", "C_SSP1-PkBudg1100-rem-5", "C_SSP1-PkBudg900-rem-5")),
list(period = "both", set = "cpl-SSP2", dirs = c("C_SSP2-Base-rem-5", "C_SSP2-NPi-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP2-PkBudg900-rem-5")), #, "C_SSP2-NDC-rem-5" list(period = "both", set = "cpl-SSP2", dirs = c("C_SSP2-Base-rem-5", "C_SSP2-NPi-rem-5", "C_SSP2-PkBudg1300-rem-5", "C_SSP2-PkBudg1100-rem-5", "C_SSP2-PkBudg900-rem-5", "C_SSP2-NDC-rem-5")), #
#list(period = "both", set = "cpl-SSP5", dirs = c("C_SSP5-Base-rem-5", "C_SSP5-NPi-rem-5", "C_SSP5-PkBudg1300-rem-5", "C_SSP5-PkBudg1100-rem-5", "C_SSP5-PkBudg900-rem-5")), list(period = "both", set = "cpl-SSP5", dirs = c("C_SSP5-Base-rem-5", "C_SSP5-NPi-rem-5", "C_SSP5-PkBudg1300-rem-5", "C_SSP5-PkBudg1100-rem-5", "C_SSP5-PkBudg900-rem-5")),
#list(period = "both", set = "cpl-PkBudg900-plant-vgl", dirs = c("C_SDP-PkBudg900-plant-rem-5", "C_SDP-PkBudg900-rem-5", "C_SSP2-PkBudg900-plant-rem-5", "C_SSP2-PkBudg900-rem-5")), #list(period = "both", set = "cpl-PkBudg900-plant-vgl", dirs = c("C_SDP-PkBudg900-plant-rem-5", "C_SDP-PkBudg900-rem-5", "C_SSP2-PkBudg900-plant-rem-5", "C_SSP2-PkBudg900-rem-5")),
#list(period = "both", set = "cpl-PkBudg900-plant", dirs = c("C_SDP-PkBudg900-plant-rem-5", "C_SSP1-PkBudg900-plant-rem-5", "C_SSP2-PkBudg900-plant-rem-5", "C_SSP5-PkBudg900-plant-rem-5")), #list(period = "both", set = "cpl-PkBudg900-plant", dirs = c("C_SDP-PkBudg900-plant-rem-5", "C_SSP1-PkBudg900-plant-rem-5", "C_SSP2-PkBudg900-plant-rem-5", "C_SSP5-PkBudg900-plant-rem-5")),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment