diff --git a/modules/30_biomass/magpie_40/datainput.gms b/modules/30_biomass/magpie_40/datainput.gms index 3634928c6b9e33d0fa42b88ea5a613e5a8fd92e6..cedf619ae452f78c7215d3aea8638ad19c50c55d 100644 --- a/modules/30_biomass/magpie_40/datainput.gms +++ b/modules/30_biomass/magpie_40/datainput.gms @@ -85,4 +85,40 @@ loop(ttot$( (ttot.val = 2005) OR (ttot.val = 2010) ), ); display i30_bioen_price_a, i30_bioen_price_b; +*** ------------------------------------------------------------- +*** Bounds on pedem +*** ------------------------------------------------------------- + +*** To prevent regions with large carbon sequestration potentials +*** from demanding high amounts of biomass with CCS to generate +*** negative emissions rather than requiring it for energy production +*** this 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) + +if(cm_emiscen ne 1, +Execute_Loadpoint 'input_ref' v30_pedem_BAU=vm_demPe; +Execute_Loadpoint 'input_ref' v30_seprod_BAU=vm_prodSe; + +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")), + v30_pedem_BAU.l(ttot,regi,enty,enty2,te) + ) + + sum(entySe, + sum(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,"pewin",entySe,te) + + v30_seprod_BAU.l(ttot,regi,"pesol",entySe,te) + + v30_seprod_BAU.l(ttot,regi,"peur",entySe,te) + ) + ) * 100/40 !!! substitution method +; + +p30_pedemBio_BAU(ttot,regi) = + 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) + ); +); + *** EOF ./modules/30_biomass/magpie_40/datainput.gms diff --git a/modules/30_biomass/magpie_40/declarations.gms b/modules/30_biomass/magpie_40/declarations.gms index 0720058718a4d6fe33f6c53271875d407ba22edd..fa4ac1039da906a0ce312a88576b0898074b90ed 100644 --- a/modules/30_biomass/magpie_40/declarations.gms +++ b/modules/30_biomass/magpie_40/declarations.gms @@ -20,6 +20,9 @@ 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_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_pedem_BAU(ttot,all_regi) "Primary energy demand imported from reference gdx [TWa]" +p30_pedemBio_BAU(ttot,all_regi) "Primary bioenergy demand imported from reference gdx [TWa]" + *** Shift factor calculation p30_pebiolc_costs_emu_preloop(ttot,all_regi) "Bioenergy costs calculated with emulator using MAgPIE demand. For shift factor calculation [T$US]" @@ -49,6 +52,9 @@ Positive variable 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_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_seprod_BAU(tall,all_regi,all_enty,all_enty,all_te) "Secondary energy production imported from reference gdx [TWa]" + ; equations @@ -58,5 +64,6 @@ q30_pebiolc_costs(ttot,all_regi) "MAgPIE emulator: calculates the costs of peb q30_priceshift "Calculates shift factor by minimizing least squares of price differences between MAgPIE output and MAgPIE emulator" q30_limitXpBio(ttot,all_regi) "Only purpose grown bioenergy may be exported, no residues" q30_costAdj(ttot,all_regi) "Improve convergence penalizing deviations from last coupling iteration" +q30_limitTeBio(ttot,all_regi) "Limit BECCS in policy runs relative to reference scenario" ; *** EOF ./modules/30_biomass/magpie_4/declarations.gms diff --git a/modules/30_biomass/magpie_40/equations.gms b/modules/30_biomass/magpie_40/equations.gms index 7cb1f7a06449f18ff4f3cf6631c58c922a192cb5..a26224049e6e74b39ea769d5640d8b3dda88fc81 100644 --- a/modules/30_biomass/magpie_40/equations.gms +++ b/modules/30_biomass/magpie_40/equations.gms @@ -108,5 +108,12 @@ q30_limitXpBio(t,regi).. vm_Xport(t,regi,"pebiolc") =l= vm_fuExtr(t,regi,"pebiolc","1"); + +*** Limit BECCS in policy runs to 35% of total PE in BAU or to 130% of bioenergy demand in BAU +q30_limitTeBio(t,regi)$(cm_emiscen ne 1).. + sum(pe2se(enty,enty2,teBio)$(teCCS(teBio)), vm_demPe(t,regi,enty,enty2,teBio)) + =l= + max (0.35 * p30_pedem_BAU(t,regi), 1.30 * p30_pedemBio_BAU(t,regi)); + *** EOF ./modules/30_biomass/magpie_4/equations.gms diff --git a/start.R b/start.R index 9b95ff142a3ed5280427c2b532dc07fca9349db5..89230c8cdb4eb0161e39726337e50675f7842329 100755 --- a/start.R +++ b/start.R @@ -183,7 +183,7 @@ accepted <- c('--restart','--testOneRegi') known <- argv %in% accepted if (!all(known)) { file_exists <- file.exists(argv[!known]) - if (!all(file_exists)) stop("Unknown paramter provided: ",paste(argv[!known][!file_exists]," ")) + if (!all(file_exists)) stop("Unknown argument provided: ",paste(argv[!known][!file_exists]," \nAccepted arguments are '--testOneRegi', '--restart' or a path to an existing scenario_config.csv")) } ###################### Choose submission type #########################