Skip to content
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
1 change: 1 addition & 0 deletions core/datainput.gms
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@ loop(emi2te(enty,enty2,te,enty3)$teCCS(te),
);

*** Allocate emission factors to pm_emifac
option pm_emifac:3:3:1; !! improve display formatting
pm_emifac(ttot,regi,enty,enty2,te,"co2")$emi2te(enty,enty2,te,"co2") = fm_dataemiglob(enty,enty2,te,"co2");
pm_emifac(ttot,regi,enty,enty2,te,"cco2")$emi2te(enty,enty2,te,"cco2") = fm_dataemiglob(enty,enty2,te,"cco2");
*JeS scale N2O energy emissions to EDGAR
Expand Down
22 changes: 19 additions & 3 deletions modules/36_buildings/simple/datainput.gms
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,30 @@ p36_floorspace(ttot,regi) = p36_floorspace_scen(ttot,regi,"%cm_demScen%") * 1e-3


*** UE demand for reporting
Parameter
f36_uedemand_build(tall,all_regi,all_demScen,all_rcp_scen,all_in) "useful energy demand in buildings"
*** read-in of f36_uedemand_build(tall,all_regi,all_demScen,all_rcp_scen,all_in) "useful energy demand in buildings" from f36_uedemand_build.cs4r

Parameter f36_uedemand_build(tall,all_regi,all_demScen,all_rcp_scen,all_in) "useful energy demand in buildings"
/
$onverbatim
$Offlisting
$ondelim
$include "./modules/36_buildings/simple/input/f36_uedemand_build.cs4r"
$include "../../modules/36_buildings/simple/input/f36_uedemand_build.cs4r"
$offdelim
$Onlisting
$offverbatim
/
;


*$Offlisting
*table f_cf(tall,all_regi,all_te) "installed capacity availability"
*$ondelim
*$include "./core/input/f_cf.cs3r"
*$offdelim
*;
*$Onlisting


p36_uedemand_build(ttot,regi,in) = f36_uedemand_build(ttot,regi,"%cm_demScen%","%cm_rcp_scen_build%",in);


Expand Down
13 changes: 13 additions & 0 deletions modules/47_regipol/regiCarbonPrice/datainput.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@
*** | Contact: [email protected]
*** SOF ./modules/47_regipol/regiCarbonPrice/datainput.gms

*' RP: improve formatting of output: always have the iteration separate to allow easy comparison over iterations.
*' For non-iteration values show time and regi down, and the other two sets to the right
option p47_implicitQttyTarget_dev_iter:3:1:4;
option p47_implicitQttyTargetTaxRescale_iter:3:1:4;
option p47_implicitQttyTargetTax_iter:3:1:4;
option p47_implicitQttyTargetCurrent_iter:3:1:4;
option p47_implicitQttyTargetCurrent:3:2:2;
option pm_implicitQttyTarget:3:2:2;
option p47_implicitQttyTargetTax_prevIter:3:2:2;
option pm_implicitQttyTarget_dev:3:2:2;
option p47_implicitQttyTargetTax:3:2:2;
option p47_implicitQttyTargetTaxRescale:3:2:2;

*** initialize regipol target deviation parameter
pm_emiMktTarget_dev(ttot,ttot2,ext_regi,emiMktExt) = 0;

Expand Down
39 changes: 34 additions & 5 deletions modules/47_regipol/regiCarbonPrice/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -435,11 +435,38 @@ loop((ttot,ext_regi,taxType,targetType,qttyTarget,qttyTargetGroup)$pm_implicitQt
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) = (1 - pm_implicitQttyTarget_dev(ttot,ext_regi,qttyTarget,qttyTargetGroup) ) ** 2;
);
);
*** dampen rescale factor with increasing iterations to help convergence if the last two iteration deviations where not in the same direction
if((iteration.val gt 3) and (p47_implicitQttyTarget_dev_iter(iteration, ttot,ext_regi,qttyTarget,qttyTargetGroup)*p47_implicitQttyTarget_dev_iter(iteration-1, ttot,ext_regi,qttyTarget,qttyTargetGroup) < 0),
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) =
max(min( 2 * EXP( -0.15 * iteration.val ) + 1.01 ,p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup)),1/ ( 2 * EXP( -0.15 * iteration.val ) + 1.01));
option p47_implicitQttyTargetTaxRescale:3:0:4; display "p47_implicitQttyTargetTaxRescale before dampening: ", p47_implicitQttyTargetTaxRescale;
*** dampen rescale factor when closer than 1.5 / 0.75 to reduce oscillations
if( p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) > 1,
if( p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) > 2.5, !! prevent numeric explosion
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) = 2.5;
);
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) =
( p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) - 1 )
* exp( (p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) - 1.5 ) * 2 )
+ 1
else !! if rescale is <1, do the same procedure on (1/rescale)
if( p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) < 0.4, !! prevent numeric explosion
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) = 0.4;
);
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) =
1
/ (
( (1 / p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) ) - 1 )
* exp( ( ( 1 / p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) ) - 1.5 ) * 2 )
+ 1
)
);
option p47_implicitQttyTargetTaxRescale:3:0:4; display "p47_implicitQttyTargetTaxRescale after dampening: ", p47_implicitQttyTargetTaxRescale;

*** put a bound around the rescale factor with increasing iterations to help convergence if the last two iteration deviations where not in the same direction
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup) =
max( min( 2 * EXP( -0.08 * iteration.val ) + 1.01 ,
p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup)
),
1 / ( 2 * EXP( -0.08 * iteration.val ) + 1.01)
);
option p47_implicitQttyTargetTaxRescale:3:0:4; display "p47_implicitQttyTargetTaxRescale after boundaries: ", p47_implicitQttyTargetTaxRescale;
);

p47_implicitQttyTargetTaxRescale_iter(iteration,ttot,ext_regi,qttyTarget,qttyTargetGroup) = p47_implicitQttyTargetTaxRescale(ttot,ext_regi,qttyTarget,qttyTargetGroup);
Expand Down Expand Up @@ -495,7 +522,9 @@ loop((ttot,ext_regi,taxType,targetType,qttyTarget,qttyTargetGroup)$pm_implicitQt

p47_implicitQttyTargetTax_iter(iteration,ttot,all_regi,qttyTarget,qttyTargetGroup) = p47_implicitQttyTargetTax(ttot,all_regi,qttyTarget,qttyTargetGroup);

display p47_implicitQttyTargetCurrent, pm_implicitQttyTarget, p47_implicitQttyTargetTax_prevIter, pm_implicitQttyTarget_dev, p47_implicitQttyTarget_dev_iter, p47_implicitQttyTargetTax, p47_implicitQttyTargetTaxRescale, p47_implicitQttyTargetTaxRescale_iter, p47_implicitQttyTargetTax_iter, p47_implicitQttyTargetCurrent_iter, p47_implicitQttyTargetTax0;
option p47_implicitQttyTargetTaxRescale:3:2:2; !! update formatting for general overview
display p47_implicitQttyTargetCurrent, pm_implicitQttyTarget, p47_implicitQttyTargetTax_prevIter, pm_implicitQttyTarget_dev, p47_implicitQttyTarget_dev_iter, p47_implicitQttyTargetTax,
p47_implicitQttyTargetTaxRescale, p47_implicitQttyTargetTaxRescale_iter, p47_implicitQttyTargetTax_iter, p47_implicitQttyTargetCurrent_iter, p47_implicitQttyTargetTax0;

$endIf.cm_implicitQttyTarget

Expand Down