Skip to content

Commit

Permalink
Merge branch 'remindmodel:develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
fpiontek committed Jun 18, 2024
2 parents 82e3be7 + 0acd4a7 commit cffaa7d
Show file tree
Hide file tree
Showing 22 changed files with 691 additions and 411 deletions.
11 changes: 9 additions & 2 deletions .Rprofile
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,19 @@ if (file.exists("renv.lock") && file.exists("README.md") && !file.exists("renv/o
message("moved legacy renv.lock to renv/old_renv.lock")
}

# do not check if library and renv.lock are in sync, because normally renv.lock does not exist
options(renv.config.synchronized.check = FALSE)

source("renv/activate.R")

renvVersion <- "0.16.0"
# when increasing renvVersion first commit new version's activate script and
# put that commit's hash into the download.file call below
renvVersion <- "1.0.7"
if (packageVersion("renv") != renvVersion) {
renvLockExisted <- file.exists(renv::paths$lockfile())
renv::upgrade(version = renvVersion, reload = TRUE, prompt = FALSE)
renv::install(paste0("renv@", renvVersion))
message("Downloading 'renv/activate.R' of renv version 1.0.7")
download.file("https://raw.githubusercontent.com/remindmodel/remind/b83bb1811ff08d8ee5ba8e834af5dd0080d10e66/renv/activate.R", "renv/activate.R")
if (!renvLockExisted) {
unlink(renv::paths$lockfile())
}
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,8 @@ abstract: REMIND (REgional Model of Investment and Development) is a numerical
technology, policy and climate constraints. It also accounts for regional trade
characteristics on goods, energy fuels, and emissions allowances. All greenhouse
gas emissions due to human activities are represented in the model.
version: "3.3.0.dev338"
date-released: 2024-06-12
version: "3.3.0.dev376"
date-released: 2024-06-14
repository-code: https://github.com/remindmodel/remind
keywords:
- energy
Expand Down
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Imports:
luscale,
lusweave,
magclass,
magpie4,
magpie4 (>= 2.3.10),
magpiesets,
mip (>= 0.148.12),
modelstats,
Expand Down
2 changes: 1 addition & 1 deletion config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ cfg$validationmodel_name <- "VALIDATIONREMIND"

#### model version of the overall model (used for run statistics only).
# automatically generated for development versions, updated by hand for releases
cfg$model_version <- "3.3.0.dev338"
cfg$model_version <- "3.3.0.dev376"

#### settings ####
cfg$gms <- list()
Expand Down
2 changes: 2 additions & 0 deletions core/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -590,6 +590,8 @@ sm_tgch4_2_pgc "conversion factor 100-yr

s_MtCH4_2_TWa "Energy content of methane. MtCH4 --> TWa: 1 MtCH4 = 1.23 * 10^6 toe * 42 GJ/toe * 10^-9 EJ/GJ * 1 TWa/31.536 EJ = 0.001638 TWa (BP statistical review)" /0.001638/

sm_h2kg_2_h2kWh "convert kilogramme of hydrogen to kwh energy value." /32.5/

s_D2015_2_D2005 "Convert $2015 to $2005 by dividing by 1.2: 1/1.2 = 0.8333" /0.8333/
sm_DptCO2_2_TDpGtC "Conversion multiplier to go from $/tCO2 to T$/GtC: 44/12/1000" /0.00366667/

Expand Down
4 changes: 4 additions & 0 deletions modules/24_trade/capacity/not_used.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ pm_gdp,input,questionnaire
pm_SEPrice, parameter, not yet used in capacity realization
pm_prodFEReference, parameter, not needed
sm_TWa_2_TWh, parameter, not needed
sm_trillion_2_non, parameter, not needed
sm_GJ_2_TWa, parameter, not needed
sm_TWa_2_kWh, parameter, not needed
sm_h2kg_2_h2kWh, parameter, not needed
28 changes: 20 additions & 8 deletions modules/24_trade/se_trade/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,23 @@ display pm_XPortsPrice;

*** Setting Xport price bound to avoid unrealists trading prices.
*** Lower bound: avoiding epsilon values (caused by using equation marginals for setting prices) or unrealistic small values for secondary energy prices
*** - H2 and seliqsyn exporting prices -> minimun price = 1$/kg (1$/kg = 0.0301 $/Kwh = 0.0301 / (10^12/10^9*8760) T$/TWa = 0.264 T$/TWa)
*** - seliqbio exporting prices -> minimun price = 5 US$2005/GJ (5/31.71 = 0.158 T$/TWa)
pm_XPortsPrice(t,regi,"seh2") = max(0.264, pm_XPortsPrice(t,regi,"seh2"));
pm_XPortsPrice(t,regi,"seliqsyn") = max(0.264, pm_XPortsPrice(t,regi,"seliqsyn"));
pm_XPortsPrice(t,regi,"seliqbio") = max(0.158, pm_XPortsPrice(t,regi,"seliqbio"));
*** - H2 and seliqsyn minimum exporting prices = 1$/kg (1$/kg = 0.0308 $/Kwh = 0.0308 / (10^12/(10^9*8760)) T$/TWa = 0.27 T$/TWa)
*** - seliqbio minimum exporting prices = 5 US$2005/GJ (5/31.71 = 0.158 T$/TWa)
pm_XPortsPrice(t,regi,"seh2") = max( 1 / sm_h2kg_2_h2kWh * sm_TWa_2_kWh / sm_trillion_2_non, pm_XPortsPrice(t,regi,"seh2"));
pm_XPortsPrice(t,regi,"seliqsyn") = max( 1 / sm_h2kg_2_h2kWh * sm_TWa_2_kWh / sm_trillion_2_non, pm_XPortsPrice(t,regi,"seliqsyn"));
pm_XPortsPrice(t,regi,"seliqbio") = max( 5 / sm_trillion_2_non * sm_GJ_2_TWa, pm_XPortsPrice(t,regi,"seliqbio"));

display pm_XPortsPrice;

*** Upper bound: model marginal prices are not necessarily competitive when we enforce exogenously traded quantities.
*** This could cause the secondary energy trade flows to "eat" a bigger amount of the country trade budget than they should,
*** which could cause infeasibilities in the equations `q23_limit_debt_growth` and `qm_budget`.
*** The below upper bounds limits avoids this issue by enforcing a maximum secondary energy traded price.
*** - H2 and seliqsyn maximum exporting prices = linear decrease from 5$/kg by 2020 to 2$/kg by 2050 and onward
*** - seliqbio maximum exporting prices = linear decrease from 30 US$2005/GJ by 2020 to 10$/kg by 2050 and onward
pm_XPortsPrice(t,regi,"seh2") = min( max(5 + (t.val-2020)*(2-5)/(2050-2020),2) / sm_h2kg_2_h2kWh * sm_TWa_2_kWh / sm_trillion_2_non, pm_XPortsPrice(t,regi,"seh2"));
pm_XPortsPrice(t,regi,"seliqsyn") = min( max(5 + (t.val-2020)*(2-5)/(2050-2020),2) / sm_h2kg_2_h2kWh * sm_TWa_2_kWh / sm_trillion_2_non, pm_XPortsPrice(t,regi,"seliqsyn"));
pm_XPortsPrice(t,regi,"seliqbio") = min( max(30 + (t.val-2020)*(10-30)/(2050-2020),2) / sm_trillion_2_non * sm_GJ_2_TWa, pm_XPortsPrice(t,regi,"seliqbio"));

display pm_XPortsPrice;

Expand Down Expand Up @@ -63,12 +75,12 @@ $offtext
vm_Xport.fx(t,regi,tradeSe)$(sum(regi2,p24_seTradeCapacity(t,regi,regi2,tradeSe)) gt 0) = sum(regi2,p24_seTradeCapacity(t,regi,regi2,tradeSe));
vm_Xport.l(t,regi,tradeSe)$(sum(regi2,p24_seTradeCapacity(t,regi,regi2,tradeSe)) gt 0) = sum(regi2,p24_seTradeCapacity(t,regi,regi2,tradeSe));

*** Mport price. Calculates the secondary energy price seen by the importing country as a weighted average of prices observed in countries with capacity to export (regi2) to the country (regi) and their existent capacity connections with the importing country
pm_MPortsPrice(t,regi,tradeSe)$(sum(regi2,p24_seTradeCapacity(t,regi2,regi,tradeSe)) gt 0) =
*** Mport price. Calculates the secondary energy price seen by the importing country as a weighted average of prices observed in countries with capacity to export (regi2, regi3, regi4) to the country (regi) and their existent capacity connections with the importing country
pm_MPortsPrice(t,regi,tradeSe)$(sum(regi4,p24_seTradeCapacity(t,regi4,regi,tradeSe)) gt 0) =
sum(regi2$p24_seTradeCapacity(t,regi2,regi,tradeSe),
pm_XPortsPrice(t,regi2,tradeSe)
*(
p24_seTradeCapacity(t,regi,regi2,tradeSe)
p24_seTradeCapacity(t,regi2,regi,tradeSe)
/
sum(regi3$p24_seTradeCapacity(t,regi3,regi,tradeSe), p24_seTradeCapacity(t,regi3,regi,tradeSe))
)
Expand Down
4 changes: 4 additions & 0 deletions modules/24_trade/standard/not_used.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ pm_ttot_val,parameter,only used in capacity realization
pm_ts,parameter,only used in capacity realization
pm_prodFEReference, parameter, not needed
sm_TWa_2_TWh, parameter, not needed
sm_trillion_2_non, parameter, not needed
sm_GJ_2_TWa, parameter, not needed
sm_TWa_2_kWh, parameter, not needed
sm_h2kg_2_h2kWh, parameter, not needed
19 changes: 13 additions & 6 deletions modules/37_industry/subsectors/bounds.gms
Original file line number Diff line number Diff line change
Expand Up @@ -139,17 +139,17 @@ $ifthen.cm_subsec_model_steel "%cm_subsec_model_steel%" == "processes"
if (cm_startyear eq 2005,
loop(regi,
loop(tePrc2opmoPrc(tePrc,opmoPrc),
vm_outflowPrc.fx('2005',regi,tePrc,opmoPrc) = pm_outflowPrcIni(regi,tePrc,opmoPrc);
vm_outflowPrc.fx("2005",regi,tePrc,opmoPrc) = pm_outflowPrcIni(regi,tePrc,opmoPrc);
);
);

loop(regi,
loop(ttot$(ttot.val ge 2005 AND ttot.val le 2020),
vm_outflowPrc.fx(ttot,regi,'eaf','pri') = 0.;
vm_outflowPrc.fx(ttot,regi,'idr','ng') = 0.;
vm_outflowPrc.fx(ttot,regi,'idr','h2') = 0.;
vm_outflowPrc.fx(ttot,regi,'bfcc','standard') = 0.;
vm_outflowPrc.fx(ttot,regi,'idrcc','ng') = 0.;
vm_outflowPrc.fx(ttot,regi,"eaf","pri") = 0.;
vm_outflowPrc.fx(ttot,regi,"idr","ng") = 0.;
vm_outflowPrc.fx(ttot,regi,"idr","h2") = 0.;
vm_outflowPrc.fx(ttot,regi,"bfcc","standard") = 0.;
vm_outflowPrc.fx(ttot,regi,"idrcc","ng") = 0.;
);
);
);
Expand All @@ -171,5 +171,12 @@ loop ((ue_industry_dyn37(in),regi_groupExt(regi_fxDem37(ext_regi),regi)),
);
$endif.fixedUE_scenario

*** fix plastic waste to zero until 2010, and possible to reference scenario
*** values between 2015 and cm_startyear
v37_plasticWaste.fx(t,regi,entySe,entyFe,emiMkt)$(
t.val lt max(2015, cm_startyear)
AND sefe(entySe,entyFe)
AND entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) )
= v37_plasticWaste.l(t,regi,entySe,entyFe,emiMkt)$( t.val ge 2015 );

*** EOF ./modules/37_industry/subsectors/bounds.gms
32 changes: 18 additions & 14 deletions modules/37_industry/subsectors/datainput.gms
Original file line number Diff line number Diff line change
Expand Up @@ -672,14 +672,14 @@ pm_specFeDem(tall,all_regi,all_enty,all_te,opmoPrc) = 0.;
pm_outflowPrcIni(all_regi,all_te,opmoPrc) = 0.;
$ifthen.cm_subsec_model_steel "%cm_subsec_model_steel%" == "processes"
if (cm_startyear eq 2005,
pm_outflowPrcIni(regi,'bof','unheated') = pm_fedemand('2005',regi,'ue_steel_primary');
pm_outflowPrcIni(regi,'bf','standard') = p37_specMatDem("pigiron","bof","unheated") * pm_outflowPrcIni(regi,'bof','unheated');
pm_outflowPrcIni(regi,'eaf','sec') = pm_fedemand('2005',regi,'ue_steel_secondary');
pm_outflowPrcIni(regi,'eaf','pri') = 0.;
pm_outflowPrcIni(regi,'idr','ng') = 0.;
pm_outflowPrcIni(regi,'idr','h2') = 0.;
pm_outflowPrcIni(regi,'bfcc','standard') = 0.;
pm_outflowPrcIni(regi,'idrcc','ng') = 0.;
pm_outflowPrcIni(regi,"bof","unheated") = pm_fedemand("2005",regi,"ue_steel_primary");
pm_outflowPrcIni(regi,"bf","standard") = p37_specMatDem("pigiron","bof","unheated") * pm_outflowPrcIni(regi,"bof","unheated");
pm_outflowPrcIni(regi,"eaf","sec") = pm_fedemand("2005",regi,"ue_steel_secondary");
pm_outflowPrcIni(regi,"eaf","pri") = 0.;
pm_outflowPrcIni(regi,"idr","ng") = 0.;
pm_outflowPrcIni(regi,"idr","h2") = 0.;
pm_outflowPrcIni(regi,"bfcc","standard") = 0.;
pm_outflowPrcIni(regi,"idrcc","ng") = 0.;

loop(ttot$(ttot.val ge 2005 AND ttot.val le 2020),
pm_specFeDem(ttot,regi,"feh2s","idr","h2") = p37_specFeDemTarget("feh2s","idr","h2");
Expand All @@ -694,12 +694,12 @@ if (cm_startyear eq 2005,
pm_specFeDem(ttot,regi,"fegas","idrcc","ng") = p37_specFeDemTarget("fegas","idrcc","ng");
pm_specFeDem(ttot,regi,"feels","idrcc","ng") = p37_specFeDemTarget("feels","idrcc","ng");

pm_specFeDem(ttot,regi,"fesos","bf","standard") = pm_fedemand(ttot,regi,'feso_steel') * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,'ue_steel_primary') );
pm_specFeDem(ttot,regi,"fehos","bf","standard") = pm_fedemand(ttot,regi,'feli_steel') * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,'ue_steel_primary') );
pm_specFeDem(ttot,regi,"fegas","bf","standard") = pm_fedemand(ttot,regi,'fega_steel') * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,'ue_steel_primary') );
pm_specFeDem(ttot,regi,"feels","bf","standard") = pm_fedemand(ttot,regi,'feel_steel_primary') * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,'ue_steel_primary') );
pm_specFeDem(ttot,regi,"fesos","bf","standard") = pm_fedemand(ttot,regi,"feso_steel") * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,"ue_steel_primary") );
pm_specFeDem(ttot,regi,"fehos","bf","standard") = pm_fedemand(ttot,regi,"feli_steel") * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,"ue_steel_primary") );
pm_specFeDem(ttot,regi,"fegas","bf","standard") = pm_fedemand(ttot,regi,"fega_steel") * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,"ue_steel_primary") );
pm_specFeDem(ttot,regi,"feels","bf","standard") = pm_fedemand(ttot,regi,"feel_steel_primary") * sm_EJ_2_TWa / ( p37_specMatDem("pigiron","bof","unheated") * pm_fedemand(ttot,regi,"ue_steel_primary") );

pm_specFeDem(ttot,regi,"feels","eaf","sec") = pm_fedemand(ttot,regi,'feel_steel_secondary') * sm_EJ_2_TWa / pm_fedemand(ttot,regi,'ue_steel_secondary');
pm_specFeDem(ttot,regi,"feels","eaf","sec") = pm_fedemand(ttot,regi,"feel_steel_secondary") * sm_EJ_2_TWa / pm_fedemand(ttot,regi,"ue_steel_secondary");
pm_specFeDem(ttot,regi,"feels","eaf","pri") = pm_specFeDem(ttot,regi,"feels","eaf","sec");
);

Expand All @@ -723,8 +723,12 @@ if (cm_startyear eq 2005,
);

if (cm_startyear gt 2005,
Execute_Loadpoint 'input_ref' pm_specFeDem = pm_specFeDem;
Execute_Loadpoint "input_ref" pm_specFeDem = pm_specFeDem;
);
$endif.cm_subsec_model_steel

if (cm_startyear gt 2005,
execute_load "input_ref.gdx" v37_plasticWaste.l = v37_plasticWaste.l;
);

*** EOF ./modules/37_industry/subsectors/datainput.gms
55 changes: 26 additions & 29 deletions modules/37_industry/subsectors/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -81,51 +81,48 @@ $endif.exogDem_scen
*' energy mix, as that is what can be captured); vm_emiIndBase itself is not used for emission
*' accounting, just as a CCS baseline.
***------------------------------------------------------
q37_emiIndBase(t,regi,enty,secInd37)$( entyFeCC37(enty) OR sameas(enty,"co2cement_process") ) ..
vm_emiIndBase(t,regi,enty,secInd37)
q37_emiIndBase(t,regi,enty,secInd37)$( entyFeCC37(enty)
OR sameas(enty,"co2cement_process") ) ..
vm_emiIndBase(t,regi,enty,secInd37)
=e=
sum((secInd37_2_pf(secInd37,ppfen_industry_dyn37(in)),fe2ppfEn(entyFeCC37(enty),in)),
( vm_cesIO(t,regi,in)
- ( p37_chemicals_feedstock_share(t,regi)
* vm_cesIO(t,regi,in)
)$( in_chemicals_feedstock_37(in) )
)
*
sum(se2fe(entySeFos,enty,te),
pm_emifac(t,regi,entySeFos,enty,te,"co2")
)
)$(NOT secInd37Prc(secInd37))
+
(s37_clinker_process_CO2
* sum(se2fe(entySeFos,enty,te),
pm_emifac(t,regi,entySeFos,enty,te,"co2")
)
)$( NOT secInd37Prc(secInd37) )
+ ( s37_clinker_process_CO2
* p37_clinker_cement_ratio(t,regi)
* vm_cesIO(t,regi,"ue_cement")
/ sm_c_2_co2)$(sameas(enty,"co2cement_process") AND sameas(secInd37,"cement"))
+
sum((secInd37_tePrc(secInd37,tePrc),tePrc2opmoPrc(tePrc,opmoPrc)),
v37_emiPrc(t,regi,enty,tePrc,opmoPrc)
)$(secInd37Prc(secInd37))
/ sm_c_2_co2
)$( sameas(enty,"co2cement_process") AND sameas(secInd37,"cement") )
+ sum((secInd37_tePrc(secInd37,tePrc),tePrc2opmoPrc(tePrc,opmoPrc)),
v37_emiPrc(t,regi,enty,tePrc,opmoPrc)
)$( secInd37Prc(secInd37) )
;

***------------------------------------------------------
*' Compute maximum possible CCS level in industry sub-sectors given the current
*' CO2 price.
***------------------------------------------------------
q37_emiIndCCSmax(t,regi,emiInd37)$(
NOT sum(secInd37Prc,secInd37_2_emiInd37(secInd37Prc,emiInd37)) ) ..
NOT sum(secInd37Prc, secInd37_2_emiInd37(secInd37Prc,emiInd37)) ) ..
v37_emiIndCCSmax(t,regi,emiInd37)
=e=
!! map sub-sector emissions to sub-sector MACs
!! otherInd has no CCS, therefore no MAC, cement has both fuel and process
!! emissions under the same MAC
sum(emiMac2mac(emiInd37,macInd37),
!! add cement process emissions, which are calculated in core/preloop
!! from a econometric fit and might not correspond to energy use (FIXME)
( sum((secInd37_2_emiInd37(secInd37,emiInd37),entyFe),
vm_emiIndBase(t,regi,entyFe,secInd37)
)$( NOT sameas(emiInd37,"co2cement_process") )
+ ( vm_emiIndBase(t,regi,"co2cement_process","cement")
)$( sameas(emiInd37,"co2cement_process") )
)
!! map sub-sector emissions to sub-sector MACs
!! otherInd has no CCS, therefore no MAC, cement has both fuel and process
!! emissions under the same MAC
sum(emiMac2mac(emiInd37,macInd37),
( sum((secInd37_2_emiInd37(secInd37,emiInd37),entyFeCC37),
vm_emiIndBase(t,regi,entyFeCC37,secInd37)
)$( NOT sameas(emiInd37,"co2cement_process") )
+ ( vm_emiIndBase(t,regi,"co2cement_process","cement")
)$( sameas(emiInd37,"co2cement_process") )
)
* pm_macSwitch(macInd37) !! sub-sector CCS available or not
* pm_macAbatLev(t,regi,macInd37) !! abatement level at current price
)
Expand Down Expand Up @@ -176,8 +173,8 @@ q37_IndCCSCost(t,regi,emiInd37)$(
=e=
1e-3
* pm_macSwitch(emiInd37)
* ( sum((enty,secInd37_2_emiInd37(secInd37,emiInd37)),
vm_emiIndBase(t,regi,enty,secInd37)
* ( sum((entyFeCC37,secInd37_2_emiInd37(secInd37,emiInd37)),
vm_emiIndBase(t,regi,entyFeCC37,secInd37)
)$( NOT sameas(emiInd37,"co2cement_process") )
+ ( vm_emiIndBase(t,regi,"co2cement_process","cement")
)$( sameas(emiInd37,"co2cement_process") )
Expand Down
4 changes: 2 additions & 2 deletions modules/37_industry/subsectors/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ pm_IndstCO2Captured(ttot,regi,entySe,entyFe(entyFeCC37),secInd37,emiMkt)$(
vm_emiIndCCS.l(ttot,regi,emiInd37)
) !! subsector captured energy emissions

/ sum(entyFE2,
vm_emiIndBase.l(ttot,regi,entyFE2,secInd37)
/ sum(entyFeCC37_2,
vm_emiIndBase.l(ttot,regi,entyFeCC37_2,secInd37)
) !! subsector total energy emissions
) !! subsector capture share
;
Expand Down
10 changes: 3 additions & 7 deletions modules/37_industry/subsectors/sets.gms
Original file line number Diff line number Diff line change
Expand Up @@ -624,14 +624,10 @@ pf_quan_target_dyn29(pf_quan_target_dyn37) = YES;
$endif.calibrate

teMat2rlf(tePrc,"1") = YES;
alias(tePrc,teCCPrc);
alias(tePrc,tePrc1);
alias(tePrc,tePrc2);
alias(opmoPrc,opmoCCPrc);
alias(opmoPrc,opmoPrc1);
alias(opmoPrc,opmoPrc2);
alias(tePrc,teCCPrc,tePrc1,tePrc2);
alias(opmoPrc,opmoCCPrc,opmoPrc1,opmoPrc2);
alias(route,route2);

alias(entyFeCC37,entyFeCC37_2);
alias(secInd37_2_pf,secInd37_2_pf2);
alias(fe2ppfEn37,fe2ppfEn37_2);
*** EOF ./modules/37_industry/subsectors/sets.gms
2 changes: 1 addition & 1 deletion modules/46_carbonpriceRegi/netZero/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ p46_emi_actual(nz_reg2080(all_regi))$(nz_reg_CO2(all_regi))
);

***calculate relative change of overall price required to bring emissions to zero
p46_factorRescaleCO2Tax(nz_reg)=(1+((p46_emi_actual(nz_reg)-p46_offset(nz_reg))/p46_emi_2020(nz_reg)))**2;
p46_factorRescaleCO2Tax(nz_reg)=(max(0.3, (1+((p46_emi_actual(nz_reg)-p46_offset(nz_reg))/p46_emi_2020(nz_reg)))))**2;

***calculate relative change in markup, taking into account change in tax
***add a small amount at the end to avoid division by zero in case of mark-up being not necessary
Expand Down
4 changes: 2 additions & 2 deletions renv/.gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
sandbox/
archive/
library/
local/
cellar/
lock/
python/
sandbox/
staging/
archive/
old_renv.lock
Loading

0 comments on commit cffaa7d

Please sign in to comment.