Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
dc2796b
Initial plan
Copilot Feb 24, 2026
b8f84f2
Add gdpScen floor cost scenario with GDP-based regional differentiation
Copilot Feb 24, 2026
7d7c232
Fix gdpScen: use GDP MER per capita vs global average; declare new pa…
Copilot Feb 24, 2026
d9f557d
Update datainput.gms
lecfab Feb 24, 2026
109bad4
Apply lecfab's datainput changes to other files: rename gdpScen->gdpB…
Copilot Feb 24, 2026
8aae6d0
Update datainput.gms
lecfab Feb 24, 2026
f2da5e8
Update declarations.gms
lecfab Feb 24, 2026
88ba612
Update declarations.gms
lecfab Feb 24, 2026
b644da1
Update datainput.gms
lecfab Feb 24, 2026
ef50264
Update datainput.gms
lecfab Feb 24, 2026
cd9acf7
Update equations.gms
lecfab Feb 24, 2026
65995f4
Remove techtrans; refactor q_costTeCapital with macros to eliminate r…
Copilot Feb 24, 2026
7c12508
Revert $macro refactoring, restore expanded expressions in q_costTeCa…
Copilot Feb 24, 2026
8fb125f
Add macro_costRegi and macro_costGlob; simplify q_costTeCapital further
Copilot Feb 24, 2026
5f1f4ae
Style: lowercase and/or/not, symbolic comparisons, spaces around $, r…
Copilot Feb 24, 2026
c0c8e87
Style: spaces on both sides of $; simplify gdpBased description in ma…
Copilot Feb 24, 2026
5fe16dc
Update equations.gms
lecfab Feb 24, 2026
f4fe93c
Update equations.gms
lecfab Feb 24, 2026
6aaa912
Rename c_teNoLearngConvEndYr, c_LearnTeConvStartYear, c_LearnTeConvEn…
Copilot Feb 24, 2026
7dd9b32
Fix ordering: move floor cost scenarios after REG_techcosts block to …
Copilot Mar 4, 2026
c4a2a35
investment cost trajectories for learning and non-learning techs
lecfab Mar 5, 2026
0ef9098
conversion scalars more consistent
lecfab Mar 5, 2026
ff154ee
conversion scalars more consistent
lecfab Mar 5, 2026
6284a1a
Update core/datainput.gms
lecfab Mar 5, 2026
73cd1c5
Update core/datainput.gms
lecfab Mar 5, 2026
79ca046
missing )
lecfab Mar 5, 2026
9004e36
floorcost pricestruc: use global average instead of fm_dataglob(inco0…
lecfab Mar 15, 2026
df23b08
simplify $ifelse
lecfab Mar 15, 2026
500251a
Merge branch 'develop' of github.com:remindmodel/remind into copilot/…
lecfab Apr 30, 2026
58a9617
comment on learning
lecfab May 4, 2026
77f2a6c
Merge branch 'develop' of github.com:remindmodel/remind into copilot/…
lecfab May 21, 2026
8164fb1
removing legacy values for capCum over tall and all_te
lecfab May 21, 2026
29ab35a
remove bound on vm_costTeCapital as it is determined by equation
lecfab May 21, 2026
ebe475e
gdpBased floor cost: exception for CHA demanded by Robert
lecfab Jun 1, 2026
032cbb3
sum over regi2 instead of regi
lecfab Jun 2, 2026
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
6 changes: 2 additions & 4 deletions core/bounds.gms
Original file line number Diff line number Diff line change
Expand Up @@ -150,10 +150,6 @@ vm_deltaCap.lo(t,regi,"bioh2c","1") $ (t.val <= 2030) = 0;
vm_costTeCapital.fx(ttot,regi,teNoLearn) = pm_inco0_t("2005",regi,teNoLearn); !! use 2005 value for the past
vm_costTeCapital.fx(t, regi,teNoLearn) = pm_inco0_t(t,regi,teNoLearn);

*** RP: theoretically, floor costs represent the lower bound of investment costs for learnTe. However, with regional
*** variations of 2015 costs and long-term costs being high in SSP3/SSP5, this can be different -> set lower bound to 0.2
vm_costTeCapital.lo(t,regi,teLearn) = 0.2 * pm_data(regi,"floorcost",teLearn);

*' No battery storage in 2010
vm_cap.up("2010",regi,teStor,"1") = 0;

Expand Down Expand Up @@ -530,6 +526,8 @@ loop(all_te $ (
);
);

*** remove legacy values for timesteps and technologies that are not required
vm_capCum(tall,all_regi,all_te).l $ (not (ttot(tall) and regi(all_regi) and te(all_te))) = 0;

*** H2 Curtailment (TODO: RLDC removal)
*** Fixing h2curt value to zero to avoid the model to generate SE out of nothing.
Expand Down
207 changes: 92 additions & 115 deletions core/datainput.gms

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions core/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ pm_taxCO2eq_anchor_iterationdiff(ttot) "difference in global ancho
pm_cesdata(tall,all_regi,all_in,cesParameter) "parameters of the CES function: efficiency parameters (xi, eff, effgr) [unitless], target quantities of CES calibration (quantity) [unit of CES node, see set all_in], CES prices resulting from calibration (price) [T$/unit of CES node]"
f_pop(tall,all_regi,all_GDPpopScen) "population data for all possible scenarios [million people]"
pm_pop(tall,all_regi) "population data [bn people]"
pm_gdp(tall,all_regi) "GDP data [trn US$ 2005]"
pm_gdp(tall,all_regi) "GDP MER data [trn US$ 2005]"
p_developmentState(tall,all_regi) "level of development based on GDP per capita, 0 is low income, 1 is high income"
f_lab(tall,all_regi,all_GDPpopScen) "labour data for all possible scenarios [million people]"
pm_lab(tall,all_regi) "data for labour [bn people]"
Expand Down Expand Up @@ -210,17 +210,17 @@ pm_teAnnuity(all_te) "Annuity factor of a techno
*** parameters used for floor costs calculation
p_maxRegTechCost2015(all_te) "highest historical regional investment cost in 2015, used to calculate regionally-differentiated floor costs of learning technologies"
p_maxRegTechCost2020(all_te) "highest historical regional investment cost in 2020, used to calculate regionally-differentiated floor costs of learning technologies"
p_gdppcap2050_PPP(all_regi) "regional GDP PPP per capita in 2050 [thousand $/capita]"
p_maxPPP2050 "maximum income GDP PPP among regions in 2050 [T$]"
p_GDPpCap2050(all_regi) "regional GDP per capita in 2050 [$/capita]"
p_GDPpCap2050_world "global average GDP per capita in 2050 [$/capita]"
p_maxSpvCost "maximum spv investment cost among regions [T$/TW]"
p_oldFloorCostdata(all_regi,all_te) "print old floor cost data [T$/TW]"

*** parameters for capacity equations
pm_tsu2opTimeYr(ttot,opTimeYr) "auxiliary parameter to map time steps to past time steps: counts the number of model timesteps between years ttot-opTimeYr and ttot, used for q_transPe2se and q_cap equations [unitless]"

*** parameters used for endogenous technology learning implementation
pm_capCum0(tall,all_regi,all_te) "Total cumulated capacity of learning technologies from last iteration used for learning curves based on vm_capCum[TW]"
p_capCum(tall, all_regi,all_te) "Total cumulated capacity of learning technologies from input.gdx used for learning curves based on vm_capCum[TW]"
pm_capCum0(tall,all_regi,all_te) "Total cumulated capacity of learning technologies from last iteration used for learning curves based on vm_capCum [TW]"
p_capCum(tall, all_regi,all_te) "Total cumulated capacity of learning technologies from input.gdx used for learning curves based on vm_capCum [TW]"
pm_capCumForeign(ttot,all_regi,all_te) "Total cumulated capacity of learning technologies of all other regions except regi [TW]"

*** early retirement parameters
Expand Down Expand Up @@ -635,19 +635,20 @@ sm_giga_2_non "giga to non" /1e+9/,
sm_trillion_2_non "trillion to non" /1e+12/,

*** energy units
pm_conv_TWa_EJ "conversion from TWa to EJ" /31.536/,
s_zj_2_twa "zeta joule to tw year" /31.7098/,
sm_EJ_2_TWa "multiplicative factor to convert from EJ to TWa" /31.71e-03/,
sm_GJ_2_TWa "multiplicative factor to convert from GJ to TWa" /31.71e-12/,
sm_TWa_2_TWh "tera Watt year to Tera Watt hour" /8.76e+3/,
sm_TWa_2_MWh "tera Watt year to Mega Watt hour" /8.76e+9/,
sm_TWa_2_kWh "tera Watt year to kilo Watt hour" /8.76e+12/,
sm_h2kg_2_h2kWh "convert kilogramme of hydrogen to kwh energy value." /32.5/,
sm_DptCO2_2_TDpGtC "Conversion multiplier to go from $/tCO2 to T$/GtC: 44/12/1000" /0.00366667/,
sm_tBC_2_TWa "t biochar to TWa biochar (28700 [MJ/tBC]*10^-12[EJ/MJ]/31.536[EJ/TWa])" /9.101e-10/,
s_ZJ_2_TWa "convert from Zeta Joule to Tera Watt annum" /31.71/,
sm_EJ_2_TWa "convert from Exa Joule to Tera Watt annum" /31.71e-03/,
sm_GJ_2_TWa "convert from Giga Joule to Tera Watt annum" /31.71e-12/,
sm_TWa_2_EJ "convert from Tera Watt annum to Exa Joule" /31.54/,
sm_DpGJ_2_TDpTWa "convert $/GJ to T$/TWa" /31.54e-03/
sm_TWa_2_TWh "convert Tera Watt annum to Tera Wh" /8.76e+3/,
sm_TWa_2_MWh "convert Tera Watt annum to Mega Wh" /8.76e+9/,
sm_TWa_2_kWh "convert Tera Watt annum to kilo Wh" /8.76e+12/,
sm_h2kg_2_h2kWh "convert kg of hydrogen to kWh energy value" /32.5/,
sm_tBC_2_TWa "t biochar to TWa biochar (28700 [MJ/tBC]*10^-12[EJ/MJ]/31.536[EJ/TWa])" /9.101e-10/,

*** emissions units
sm_c_2_co2 "conversion from c to co2" /3.666666666667/,
sm_c_2_co2 "convert mass from carbon to CO2 (44/12)" /3.66667/,
sm_DptCO2_2_TDpGtC "convert $/tCO2 to T$/GtC: 44/12/1000" /0.00366667/,
s_NO2_2_N "convert NO2 to N [14 / (14 + 2 * 16)]" / .304 /
sm_tgn_2_pgc "conversion factor 100-yr GWP from TgN to PgCeq"
sm_tgch4_2_pgc "conversion factor 100-yr GWP from TgCH4 to PgCeq"
Expand All @@ -659,11 +660,10 @@ s_gwpCH4_AR4 "Global Warming Potentials of CH4 as in the AR4, us
s_gwpN2O_AR4 "Global Warming Potentials of N2O as in the AR4, used in the MACCs" /298/

*** monetary units
s_DpKWa_2_TDpTWa "convert Dollar per kWa to TeraDollar per TeraWattYear" /0.001/
s_DpKW_2_TDpTW "convert Dollar per kW to TeraDollar per TeraWatt" /0.001/
sm_DpGJ_2_TDpTWa "multipl. factor to convert (Dollar per GJoule) to (TerraDollar per TWyear)" / 31.54e-03/
s_DpKWa_2_TDpTWa "convert Dollar per kWa to Tera Dollar per TWa" /0.001/
s_DpKW_2_TDpTW "convert Dollar per kW to Tera Dollar per TW" /0.001/
s_D2010_2_D2017 "Convert US$2010 to US$2017" /1.1491/
sm_D2015_2_D2017 "Convert US$2015 to US$2017" /1.0292/
sm_D2015_2_D2017 "Convert US$2015 to US$2017" /1.0292/
sm_D2005_2_D2017 "Convert US$2005 to US$2017" /1.231/
sm_D2020_2_D2017 "Convert US$2020 to US$2017" /0.9469/
sm_EURO2023_2_D2017 "Convert EURO 2023 to US$2017" /0.8915/
Expand Down
102 changes: 23 additions & 79 deletions core/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ qm_deltaCapCumNet(ttot,regi,teLearn)$(ord(ttot) lt card(ttot) AND pm_ttot_val(tt
*' Initial values for cumulated capacities (learning technologies only):
*' (except for tech_stat 4 technologies that have no standing capacities in 2005 and ccap0 refers to another year)
***---------------------------------------------------------------------------
q_capCumNet(t0,regi,teLearn)$(NOT (pm_data(regi,"tech_stat",teLearn) eq 4))..
q_capCumNet(t0,regi,teLearn)$(pm_data(regi,"tech_stat",teLearn) < 4)..
vm_capCum(t0,regi,teLearn)
=e=
pm_data(regi,"ccap0",teLearn);
Expand Down Expand Up @@ -455,92 +455,36 @@ q_limitGeopot(t,regi,peReComp(enty),rlf)..
*' In equations.gms, the investment costs equation `q_costTeCapital` corresponds to $I = a'\times C^{b'} + F$,
*' with variations depending on time period and floor cost scenarios.

q_costTeCapital(t,regi,teLearn)$(NOT (pm_data(regi,"tech_stat",teLearn) eq 4 AND t.val le 2020)) ..

$macro macro_capCumGlob (sum(regi2, vm_capCum(t,regi2,teLearn)) + pm_capCumForeign(t,regi,teLearn))
$macro macro_costRegi (pm_data(regi,"floorcost",teLearn) + pm_data(regi,"learnMult_wFC",teLearn) * macro_capCumGlob ** pm_data(regi,"learnExp_wFC",teLearn))
$macro macro_costGlob (fm_dataglob("floorcost",teLearn) + fm_dataglob("learnMult_wFC",teLearn) * macro_capCumGlob ** fm_dataglob("learnExp_wFC",teLearn))

q_costTeCapital(t,regi,teLearn) $ (pm_data(regi,"tech_stat",teLearn) < 4 or t.val > 2020) ..
vm_costTeCapital(t,regi,teLearn)
=e=
*** until 2005: using global estimates better matches historic values
+ ( fm_dataglob("floorcost",teLearn)
+ ( fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** fm_dataglob("learnExp_wFC",teLearn)
)
)$( t.val le 2005 )
macro_costGlob $ (t.val <= 2005)

*** 2005 to 2020: linear transition from global 2005 to regional 2020
*** to phase-in the observed 2020 regional variation from input-data
+ ( (2020 - t.val) / (2020-2005)
* ( fm_dataglob("floorcost",teLearn)
+ fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** fm_dataglob("learnExp_wFC",teLearn)
)
+ macro_interpolate(t.val, 2005, 2020, macro_costGlob, macro_costRegi) $ (t.val > 2005 and t.val <= 2020)

+ (t.val - 2005) / (2020-2005)
* ( pm_data(regi,"floorcost",teLearn)
+ pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** pm_data(regi,"learnExp_wFC",teLearn)
)
)$( (t.val gt 2005) AND (t.val le 2020) )

$ifthen.floorscen %cm_floorCostScen% == "default"
*** from 2020 to c_LearnTeConvStartYear: use regional values
+ ( pm_data(regi,"floorcost",teLearn)
+ pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** pm_data(regi,"learnExp_wFC",teLearn)
)$( (t.val gt 2020) AND (t.val lt c_LearnTeConvStartYear) )

*** c_LearnTeConvStartYear to c_LearnTeConvEndYear: assuming linear convergence of regional learning curves to global values
+ ( (pm_ttot_val(t) - c_LearnTeConvStartYear) / (c_LearnTeConvEndYear-c_LearnTeConvStartYear)
* ( fm_dataglob("floorcost",teLearn)
+ fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** fm_dataglob("learnExp_wFC",teLearn)
)
*** after 2020 for specific cm_floorCostScen: regional capital costs
$if %cm_floorCostScen% == "pricestruc" + macro_costRegi $ (t.val > 2020)
$if %cm_floorCostScen% == "gdpBased" + macro_costRegi $ (t.val > 2020)

$ifthen.default %cm_floorCostScen% == "default"
*** from 2020 to c_teLearnConvStartYr: regional capital costs
+ macro_costRegi $ (t.val > 2020 and t.val <= c_teLearnConvStartYr)

*** c_teLearnConvStartYr to c_teLearnConvEndYr: linear convergence from regional costs to global costs
+ macro_interpolate(t.val, c_teLearnConvStartYr, c_teLearnConvEndYr, macro_costRegi, macro_costGlob) $ (t.val > c_teLearnConvStartYr and t.val < c_teLearnConvEndYr)

*** after c_teLearnConvEndYr: global capital costs
+ macro_costGlob $ (t.val >= c_teLearnConvEndYr)
$endif.default

+ (c_LearnTeConvEndYear - pm_ttot_val(t)) / (c_LearnTeConvEndYear-c_LearnTeConvStartYear)
* ( pm_data(regi,"floorcost",teLearn)
+ pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** pm_data(regi,"learnExp_wFC",teLearn)
)
)$( t.val ge c_LearnTeConvStartYear AND t.val le c_LearnTeConvEndYear )
$endif.floorscen

$ifthen.floorscen %cm_floorCostScen% == "pricestruc"
+ ( pm_data(regi,"floorcost",teLearn)
+ pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** pm_data(regi,"learnExp_wFC",teLearn)
)$( t.val ge 2020 AND t.val le 2100 )
$endif.floorscen

$ifthen.floorscen %cm_floorCostScen% == "techtrans"
+ ( pm_data(regi,"floorcost",teLearn)
+ pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) ** pm_data(regi,"learnExp_wFC",teLearn)
)$( t.val ge 2020 AND t.val le 2100 )
$endif.floorscen

$ifthen.floorscen %cm_floorCostScen% == "default"
*** after c_LearnTeConvEndYear: globally harmonized costs
+ ( fm_dataglob("floorcost",teLearn)
+ fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
) **(fm_dataglob("learnExp_wFC",teLearn))
)$(t.val gt c_LearnTeConvEndYear)
$endif.floorscen
;
*' @stop

Expand Down
16 changes: 8 additions & 8 deletions core/loop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ putclose runtime gyear(jnow):0:0 "-" gmonth(jnow):0:0 "-" gday(jnow):0:0 " " gho
*** Track of changes between iterations
***---------------------------------------------------------
loop(entyPe$(NOT sameas(entyPe,"peur")),
o_negitr_cumulative_peprod(iteration,entyPe) = 0.031536
o_negitr_cumulative_peprod(iteration,entyPe) = sm_TWa_2_EJ / 1000
* sum(regi,
sum(ttot$( (ttot.val lt 2100) AND (ttot.val gt 2005)), vm_prodPe.l(ttot,regi,entyPe) * pm_ts(ttot) )
+ sum(ttot$(ttot.val eq 2005), vm_prodPe.l(ttot,regi,entyPe) * pm_ts(ttot) * 0.5 )
Expand All @@ -112,20 +112,20 @@ sum(regi,
);
o_negitr_cumulative_CO2_emineg_co2luc(iteration) =
sum(regi,
sum(ttot$( (ttot.val lt 2100) AND (ttot.val gt 2005)), 3.6667 * vm_emiMacSector.l(ttot,regi,"co2luc") * pm_ts(ttot) )
+ sum(ttot$(ttot.val eq 2005), 3.6667 * vm_emiMacSector.l(ttot,regi,"co2luc") * pm_ts(ttot) * 0.5 )
+ sum(ttot$(ttot.val eq 2100), 3.6667 * vm_emiMacSector.l(ttot,regi,"co2luc") * ( pm_ttot_val(ttot)- pm_ttot_val(ttot-1) ) * 0.5 )
sum(ttot$( (ttot.val lt 2100) AND (ttot.val gt 2005)), sm_c_2_co2 * vm_emiMacSector.l(ttot,regi,"co2luc") * pm_ts(ttot) )
+ sum(ttot$(ttot.val eq 2005), sm_c_2_co2 * vm_emiMacSector.l(ttot,regi,"co2luc") * pm_ts(ttot) * 0.5 )
+ sum(ttot$(ttot.val eq 2100), sm_c_2_co2 * vm_emiMacSector.l(ttot,regi,"co2luc") * ( pm_ttot_val(ttot)- pm_ttot_val(ttot-1) ) * 0.5 )
);

o_negitr_cumulative_CO2_emineg_cement(iteration) =
sum(regi,
sum(ttot$( (ttot.val lt 2100) AND (ttot.val gt 2005)), 3.6667 * vm_emiMacSector.l(ttot,regi,"co2cement_process") * pm_ts(ttot) )
+ sum(ttot$(ttot.val eq 2005), 3.6667 * vm_emiMacSector.l(ttot,regi,"co2cement_process") * pm_ts(ttot) * 0.5 )
+ sum(ttot$(ttot.val eq 2100), 3.6667 * vm_emiMacSector.l(ttot,regi,"co2cement_process") * ( pm_ttot_val(ttot)- pm_ttot_val(ttot-1) ) * 0.5 )
sum(ttot$( (ttot.val lt 2100) AND (ttot.val gt 2005)), sm_c_2_co2 * vm_emiMacSector.l(ttot,regi,"co2cement_process") * pm_ts(ttot) )
+ sum(ttot$(ttot.val eq 2005), sm_c_2_co2 * vm_emiMacSector.l(ttot,regi,"co2cement_process") * pm_ts(ttot) * 0.5 )
+ sum(ttot$(ttot.val eq 2100), sm_c_2_co2 * vm_emiMacSector.l(ttot,regi,"co2cement_process") * ( pm_ttot_val(ttot)- pm_ttot_val(ttot-1) ) * 0.5 )
);
o_negitr_cumulative_CO2_emieng_seq(iteration)
=
3.6667
sm_c_2_co2
* sum(regi,
sum((ttot,emi2te(enty,enty2,te,"cco2"))$( ttot.val gt 2005 AND ttot.val lt 2100 ),
vm_emiTeDetail.l(ttot,regi,enty,enty2,te,"cco2")
Expand Down
18 changes: 9 additions & 9 deletions main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -1195,19 +1195,19 @@ parameter
cm_H2InBuildOnlyAfter = 2150; !! def = 2150 (rule out H2 in buildings)
*' For all years until the given year, FE demand for H2 in buildings is set to zero
parameter
c_teNoLearngConvEndYr "Year at which regional costs of non-learning technologies converge"
c_teNoLearnConvEndYr "Year at which regional costs of non-learning technologies converge"
;
c_teNoLearngConvEndYr = 2070; !! def = 2070
c_teNoLearnConvEndYr = 2070; !! def = 2070
*'
parameter
c_LearnTeConvStartYear "start year of cost convergence of learning technologies"
c_teLearnConvStartYr "start year of cost convergence of learning technologies"
;
c_LearnTeConvStartYear = 2025; !! def = 2025
c_teLearnConvStartYr = 2025; !! def = 2025
*'
parameter
c_LearnTeConvEndYear "end year of cost convergence of learning technologies"
c_teLearnConvEndYr "end year of cost convergence of learning technologies"
;
c_LearnTeConvEndYear = 2080; !! def = 2080
c_teLearnConvEndYr = 2080; !! def = 2080
*'
parameter
c_earlyRetiValidYr "Year before which the early retirement rate designated by c_tech_earlyreti_rate holds"
Expand Down Expand Up @@ -1691,15 +1691,15 @@ $setglobal cm_in_limit_price_change "ue_steel_primary, kap_steel_primary" !! d
*** cm_calibration_string "def = off, else = additional string to include in the calibration name to be used" label for your calibration run to keep calibration files with different setups apart (e.g. with low elasticities, high elasticities)
$setglobal cm_calibration_string off !! def = off
*** cm_techcosts - use regionalized or globally homogenous technology costs for certain technologies
*** (REG) regionalized technology costs with linear convergence between 2020 and year c_teNoLearngConvEndYr
*** (REG) regionalized technology costs with linear convergence between 2020 and year c_teNoLearnConvEndYr
*** (REG2040) regionalized technology costs given by p_inco0 until 2040, then stable without convergence
*** (GLO) globally homogenous technology costs
$setglobal cm_techcosts REG !! def = REG !! regexp = REG|REG2040|GLO
*** cm_floorCostScen regionally differentiated floor cost scenarios
*** (default) uniform floor cost (almost no regional differentiation)
*** (pricestruc) regionally differentiated floor costs, the differentiated costs have the same ratio between regions as the ratio between 2020 tech cost values
*** (techtrans) regionally differentiated floor costs, which are the universal global floor costs in the default case time the MER PPP price ratios. new floor cost = MER/PPP * old floor cost
$setglobal cm_floorCostScen default !! def = default
*** (gdpBased) regionally differentiated floor costs based on GDP per capita in 2050: regions with above-average GDP get higher floor costs (up to 1.5x), regions with below-average GDP get lower floor costs (down to 0.5x)
$setglobal cm_floorCostScen default !! def = default !! regexp = default|pricestruc|gdpBased
*** cfg$gms$cm_EDGEtr_scen "the EDGE-T scenario" # def <- "Mix1". For calibration runs: Mix1. Mix2, Mix3, Mix4 also available - numbers after the "mix" denote policy strength, with 1 corresponding roughly to Baseline/NPI, 2= NDC, 3= Budg1500, 4 = Budg800
*** The following descriptions are based on scenario results for EUR in 2050 unless specified otherwise.
*** Whenever we give numbers, please be aware that they are just there to estimate the ballpark.
Expand Down
Loading
Loading