The optimization module gives the opportunity to choose different solution algorithms.
Interface plot missing!
| Description | Unit | A | |
|---|---|---|---|
| cm_LearningSpillover | Activate Learningspillover from foreign capacity in learning technogolies | x | |
| cm_MAgPIE_Nash | run MAgPIE between Nash iterations | x | |
| cm_NDC_target_DevTol | allowed NDC emissions target deviation relative to target emissions | \(45_carbonprice = NDC\) | x |
| cm_TaxConvCheck | switch for enabling tax convergence check in nash mode | x | |
| cm_abortOnConsecFail | number of iterations of consecutive infeasibilities/failures to solve for one region, after which the run automatically switches to serial debug mode | x | |
| cm_budgetCO2_absDevTol | convergence criterion for global CO2 budget set via cm_budgetCO2from2020. It is formulated as an absolute deviation from the target budget [GtCO2]. | x | |
| cm_emiscen | policy scenario choice | x | |
| cm_implicitQttyTarget_tolerance | tolerance for regipol implicit quantity target deviations convergence. | x | |
| cm_iteration_max | number of iterations, if optimization is set to negishi or testOneRegi; is overwritten in Nash mode, except if cm_nash_autoconverge is set to 0 | x | |
| cm_iterative_target_adj | settings on iterative adjustment for CO2 tax based on in-iteration emission or forcing level. Allow iteratively generated endogenous global CO2 tax under peak budget constraint or end-of-century budget constraint. | x | |
| cm_keep_presolve_gdxes | save gdxes for all regions/solver tries/nash iterations for debugging | x | |
| cm_maxFadeOutPriceAnticip | switch to determine maximum allowed fadeout price anticipation to consider that the model converged. | x | |
| cm_nash_autoconverge | choice of nash convergence mode | x | |
| cm_nash_mode | mode for solving nash problem | x | |
| cm_peakBudgYr | date of net-zero CO2 emissions for peak budget runs without overshoot | x | |
| cm_sccConvergence | convergence indicator for SCC iteration | x | |
| cm_solver_try_max | maximum number of inner iterations within one Negishi iteration (<10) | ||
| cm_startyear | first optimized modelling time step | \(year\) | x |
| cm_tempConvergence | convergence indicator for temperature in damage iteration | x | |
| pm_FEPrice (ttot, all_regi, all_enty, sector, emiMkt) |
parameter to capture all FE prices across sectors and markets | \(tr\$2017/TWa\) | x |
| pm_FEPrice_iter (iteration, ttot, all_regi, all_enty, sector, emiMkt) |
parameter to capture all FE prices across sectors and markets [tr$2017/TWa] across iterations | x | |
| pm_NDCEmiTargetDeviation (ttot, all_regi) |
deviation of REMIND emissions to NDC target emissions in last iteration normalized to NDC target emissions | \(0-1\) | x |
| pm_NXagr (tall, all_regi) |
Net agricultural exports | x | |
| pm_SolNonInfes (all_regi) |
model status from last iteration. 1 means status 2 or 7, 0 for all other status codes | x | |
| pm_Xport0 (tall, all_regi, all_enty) |
Reference level value of export. | x | |
| pm_allTargetsConverged (ext_regi) |
boolean to store if all emission targets converged at least once | \(0 or 1\) | x |
| pm_budgetCO2eq (all_regi) |
budget for regional energy-emissions in period 1 | \(GtC\) | x |
| pm_budgetDeviation (all_regi) |
deviations from regional targets | x | |
| 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\) | x |
| pm_capCumForeign (ttot, all_regi, all_te) |
Total cumulated capacity of learning technologies of all other regions except regi | \(TW\) | x |
| 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\) | x |
| pm_co2eq0 (tall, all_regi) |
Total greenhouse gas emissions from last iteration based on vm_co2eq used in nash algorithm | \(GtCeq\) | x |
| pm_co2eqForeign (tall, all_regi) |
emissions, which are part of the climate policy, of other regions (nash relevant). | x | |
| pm_emiMktCurrent (ttot, ttot2, ext_regi, emiMktExt) |
previous iteration region emissions (from year ttot to ttot2 for budget) | \(GtCO2 or GtCO2eq\) | x |
| pm_emiMktRefYear (ttot, ttot2, ext_regi, emiMktExt) |
emissions in reference year 2005, used for calculating target deviation of year targets | \(GtCO2 or GtCO2eq\) | x |
| pm_emiMktTarget (ttot, ttot2, ext_regi, emiMktExt, target_type_47, emi_type_47) |
region emissions target | \(GtCO2 or GtCO2eq\) | x |
| pm_emiMktTarget_dev (ttot, ttot2, ext_regi, emiMktExt) |
target deviation across iterations in current emissions divided by target emissions (1 is 100%) | x | |
| pm_emiMktTarget_dev_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
parameter to save pm_emiMktTarget_dev across iterations (1 is 100%) | x | |
| pm_emiMktTarget_tolerance (ext_regi) |
tolerance for regipol emission target deviations convergence | \(#\) | x |
| pm_emicapglob (tall) |
global emission cap | \(GtC\) | x |
| pm_factorRescale_taxCO2Regi_Funneled2 (iteration, all_regi) |
regional - Multiplicative factor for rescaling the CO2 price to reach the target - Funnelled (interactive, incl. adjustments based on last iterations) | x | |
| pm_factorRescaleemiMktCO2Tax (ttot, ttot2, ext_regi, emiMktExt) |
multiplicative tax rescale factor that rescales emiMkt carbon price from iteration to iteration to reach regipol targets | \(\%\) | x |
| pm_gmt_conv | global mean temperature convergence | x | |
| pm_implicitPePriceTarget (ttot, all_regi, all_enty) |
price target for PE carrier per sector | \(2005 TerraDollar/TWyear\) | x |
| pm_implicitPePrice_NotConv (all_regi, all_enty, ttot) |
auxiliary parameter to store the price targets that did not converged | \(\%\) | x |
| pm_implicitPePrice_ignConv (all_regi, all_enty, ttot) |
auxiliary parameter to store the price targets that were ignored in the convergence check (cases: 1 = non existent price, 2 = no change in prices for the last 3 iterations) | \(#\) | x |
| pm_implicitPriceTarget (ttot, all_regi, all_enty, entySe, sector) |
price target for FE carrier per sector | \(2005 TerraDollar/TWyear\) | x |
| pm_implicitPrice_NotConv (all_regi, sector, all_enty, entySe, ttot) |
auxiliary parameter to store the price targets that did not converged | \(\%\) | x |
| pm_implicitPrice_ignConv (all_regi, sector, all_enty, entySe, ttot) |
auxiliary parameter to store the price targets that were ignored in the convergence check (cases: 1 = non existent price, 2 = no change in prices for the last 3 iterations) | \(#\) | x |
| pm_implicitQttyTarget (ttot, ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
quantity target | \(absolute: TWa or GtC; or percentage: 0.1\) | x |
| pm_implicitQttyTarget_dev (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
deviation of current iteration quantity target from target - relative for total targets, absolute (= share points) for share targets | x | |
| pm_implicitQttyTarget_isLimited (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
1 (one) if there is a hard bound on the model that does not allow the tax to change further the quantity | x | |
| pm_nfa_start (all_regi) |
initial net foreign asset | x | |
| pm_pop (tall, all_regi) |
population data | \(bn people\) | x |
| pm_prtp (all_regi) |
Pure rate of time preference | ||
| pm_pvp (ttot, all_enty) |
Price on commodity markets, [T\(/TWa] for energy commodities except uranium, uranium (peur) in [T\)/Mt Uranium], emissions permits (perm) in | \(T\$/GtC\) | x |
| pm_regionalBudget_absDevTol (all_regi) |
tolerance of deviation from regional targets in absolute terms | x | |
| pm_sccConvergenceMaxDeviation | max deviation of SCC from last iteration | \(percent\) | x |
| pm_shPerm (tall, all_regi) |
emission permit shares | \(share\) | x |
| pm_taxCO2eq (ttot, all_regi) |
CO2 tax path calculated in 45_carbonprice module [T$/GtC]. To get $/tCO2, multiply with 272 = 1 / sm_DptCO2_2_TDpGtC | x | |
| pm_taxCO2eq_anchor_iterationdiff (ttot) |
difference in global anchor carbon price to the last iteration | \(T\$/GtC\) | x |
| pm_taxCO2eq_iter (iteration, ttot, all_regi) |
CO2 tax path (pm_taxCO2eq) tracked over iterations | \(T\$/GtC\) | x |
| pm_taxemiMkt_iteration (iteration, ttot, all_regi, all_emiMkt) |
CO2 tax path per region and emissions market calculated from previous iteration | \(T\$/GtC\) | x |
| pm_ts (tall) |
(t_n+1 - t_n-1)/2 for a timestep t_n | x | |
| pm_ttot_val (ttot) |
value of ttot set element | ||
| pm_w (all_regi) |
Negishi weights | x | |
| pm_welf (tall) |
Weight parameter in the welfare function to avoid jumps with cm_less_TS | ||
| qm_budget (ttot, all_regi) |
Budget balance | x | |
| qm_co2eqCum (all_regi) |
cumulate regional emissions over time | x | |
| sm_CES_calibration_iteration | current calibration iteration number, loaded from environment variable cm_CES_calibration_iteration | x | |
| sm_DptCO2_2_TDpGtC | convert \(/tCO2 to T\)/GtC: 44/12/1000 | x | |
| sm_EJ_2_TWa | convert from Exa Joule to Tera Watt annum | x | |
| sm_budgetCO2eqGlob | budget for global energy-emissions in period 1 | x | |
| sm_endBudgetCO2eq | end time step of emission budget period 1 | x | |
| sm_eps | small number: 1e-9 | x | |
| sm_globalBudget_absDev | absolute deviation of global cumulated CO2 emissions budget from target budget | x | |
| sm_magpieIter | Count the number of MAgPIE iterations, starting with zero | x | |
| sm_magpieIterEnd | Number of MAgPIE iterations that have to be performed. Equals the number of elements defined in the set magpieIter | x | |
| sm_peakbudget_diff | difference in cumulative CO2 emissions between cumulative emissions in cm_peakBudgYr and time step of maximum cumulative CO2 emissions | \(GtCO2\) | x |
| sm_peakbudget_diff_tolerance | convergence criterion for allowed difference between cumulative emissions in peak budget year and year of maximum cumulative emissions if both years are not the same. It is formulated as an absolute deviation from the target budget | \(GtCO2\) | x |
| sm_tmp | temporary scalar that can be used locally | x | |
| sm_tmp2 | temporary scalar that can be used locally | x | |
| vm_Mport (tall, all_regi, all_enty) |
Import of traded commodity. | x | |
| vm_Xport (tall, all_regi, all_enty) |
Export of traded commodity. | x | |
| vm_capacityTradeBalance (tall, all_regi) |
Capacity trade balance term | x | |
| vm_cesIO (tall, all_regi, all_in) |
Production factor | x | |
| vm_co2eq (ttot, all_regi) |
total greenhouse gas emissions measured in co2 equivalents that are subject to carbon pricing, be aware that emissions coverage of this variable depends on switch cm_multigasscen | \(GtCeq\) | x |
| vm_cons (ttot, all_regi) |
Consumption | x | |
| vm_effGr (ttot, all_regi, all_in) |
growth of factor efficiency | x | |
| vm_emiAll (ttot, all_regi, all_enty) |
total emissions by species | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | x |
| vm_emiTe (ttot, all_regi, all_enty) |
proxy of total energy-related emissions, based on vm_emiTeDetail and taking into account industry CCS, CCU and feedstocks note: not equivalent to Emi|CO2|Energy in reporting | \(GtC, Mt CH4, Mt N, Mt SO2, Mt BC, Mt OC\) | x |
| vm_fuExtr (ttot, all_regi, all_enty, rlf) |
production (extraction) of primary energy fossil fuels, biomass and uranium (before trade) | \(TWa, Uranium: Mt Ur\) | x |
| vm_perm (ttot, all_regi) |
emission allowances | \(GtCeq\) | x |
| vm_prodPe (ttot, all_regi, all_enty) |
primary energy production (after trade but not including PE production for MAC curves, e.g. capturing methane leakage) | \(TWa, Uranium: Mt Ur\) | x |
| vm_taxrev (ttot, all_regi) |
difference between tax volume in current and previous iteration | \(T\$\) | x |
| vm_welfareGlob | Global welfare | x |
| B | C | |
|---|---|---|
| cm_LearningSpillover | ||
| cm_MAgPIE_Nash | ||
| cm_NDC_target_DevTol | ||
| cm_TaxConvCheck | ||
| cm_abortOnConsecFail | ||
| cm_budgetCO2_absDevTol | ||
| cm_emiscen | x | |
| cm_implicitQttyTarget_tolerance | ||
| cm_iteration_max | ||
| cm_iterative_target_adj | ||
| cm_keep_presolve_gdxes | x | |
| cm_maxFadeOutPriceAnticip | ||
| cm_nash_autoconverge | ||
| cm_nash_mode | ||
| cm_peakBudgYr | ||
| cm_sccConvergence | ||
| cm_solver_try_max | x | |
| cm_startyear | x | x |
| cm_tempConvergence | ||
| pm_FEPrice (ttot, all_regi, all_enty, sector, emiMkt) |
x | |
| pm_FEPrice_iter (iteration, ttot, all_regi, all_enty, sector, emiMkt) |
x | |
| pm_NDCEmiTargetDeviation (ttot, all_regi) |
||
| pm_NXagr (tall, all_regi) |
x | |
| pm_SolNonInfes (all_regi) |
x | x |
| pm_Xport0 (tall, all_regi, all_enty) |
x | |
| pm_allTargetsConverged (ext_regi) |
||
| pm_budgetCO2eq (all_regi) |
||
| pm_budgetDeviation (all_regi) |
||
| pm_capCum0 (tall, all_regi, all_te) |
||
| pm_capCumForeign (ttot, all_regi, all_te) |
x | x |
| pm_cesdata (tall, all_regi, all_in, cesParameter) |
||
| pm_co2eq0 (tall, all_regi) |
||
| pm_co2eqForeign (tall, all_regi) |
x | x |
| pm_emiMktCurrent (ttot, ttot2, ext_regi, emiMktExt) |
||
| pm_emiMktRefYear (ttot, ttot2, ext_regi, emiMktExt) |
||
| pm_emiMktTarget (ttot, ttot2, ext_regi, emiMktExt, target_type_47, emi_type_47) |
||
| pm_emiMktTarget_dev (ttot, ttot2, ext_regi, emiMktExt) |
||
| pm_emiMktTarget_dev_iter (iteration, ttot, ttot2, ext_regi, emiMktExt) |
||
| pm_emiMktTarget_tolerance (ext_regi) |
||
| pm_emicapglob (tall) |
x | |
| pm_factorRescale_taxCO2Regi_Funneled2 (iteration, all_regi) |
||
| pm_factorRescaleemiMktCO2Tax (ttot, ttot2, ext_regi, emiMktExt) |
||
| pm_gmt_conv | ||
| pm_implicitPePriceTarget (ttot, all_regi, all_enty) |
||
| pm_implicitPePrice_NotConv (all_regi, all_enty, ttot) |
||
| pm_implicitPePrice_ignConv (all_regi, all_enty, ttot) |
||
| pm_implicitPriceTarget (ttot, all_regi, all_enty, entySe, sector) |
||
| pm_implicitPrice_NotConv (all_regi, sector, all_enty, entySe, ttot) |
||
| pm_implicitPrice_ignConv (all_regi, sector, all_enty, entySe, ttot) |
||
| pm_implicitQttyTarget (ttot, ext_regi, taxType, targetType, qttyTarget, qttyTargetGroup) |
||
| pm_implicitQttyTarget_dev (ttot, ext_regi, qttyTarget, qttyTargetGroup) |
||
| pm_implicitQttyTarget_isLimited (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
||
| pm_nfa_start (all_regi) |
||
| pm_pop (tall, all_regi) |
x | |
| pm_prtp (all_regi) |
x | |
| pm_pvp (ttot, all_enty) |
x | x |
| pm_regionalBudget_absDevTol (all_regi) |
||
| pm_sccConvergenceMaxDeviation | ||
| pm_shPerm (tall, all_regi) |
x | |
| pm_taxCO2eq (ttot, all_regi) |
||
| pm_taxCO2eq_anchor_iterationdiff (ttot) |
||
| pm_taxCO2eq_iter (iteration, ttot, all_regi) |
||
| pm_taxemiMkt_iteration (iteration, ttot, all_regi, all_emiMkt) |
||
| pm_ts (tall) |
x | x |
| pm_ttot_val (ttot) |
x | |
| pm_w (all_regi) |
x | x |
| pm_welf (tall) |
x | |
| qm_budget (ttot, all_regi) |
x | |
| qm_co2eqCum (all_regi) |
||
| sm_CES_calibration_iteration | x | |
| sm_DptCO2_2_TDpGtC | ||
| sm_EJ_2_TWa | ||
| sm_budgetCO2eqGlob | ||
| sm_endBudgetCO2eq | ||
| sm_eps | ||
| sm_globalBudget_absDev | ||
| sm_magpieIter | ||
| sm_magpieIterEnd | ||
| sm_peakbudget_diff | ||
| sm_peakbudget_diff_tolerance | ||
| sm_tmp | x | |
| sm_tmp2 | x | |
| vm_Mport (tall, all_regi, all_enty) |
x | x |
| vm_Xport (tall, all_regi, all_enty) |
x | x |
| vm_capacityTradeBalance (tall, all_regi) |
x | |
| vm_cesIO (tall, all_regi, all_in) |
||
| vm_co2eq (ttot, all_regi) |
||
| vm_cons (ttot, all_regi) |
x | x |
| vm_effGr (ttot, all_regi, all_in) |
||
| vm_emiAll (ttot, all_regi, all_enty) |
||
| vm_emiTe (ttot, all_regi, all_enty) |
||
| vm_fuExtr (ttot, all_regi, all_enty, rlf) |
x | |
| vm_perm (ttot, all_regi) |
||
| vm_prodPe (ttot, all_regi, all_enty) |
x | |
| vm_taxrev (ttot, all_regi) |
x | x |
| vm_welfareGlob | x | x |
| Description | Unit | |
|---|---|---|
| pm_cumEff (tall, all_regi, all_in) |
parameter for spillover externality (aggregated productivity level) | |
| pm_fuExtrForeign (ttot, all_regi, all_enty, rlf) |
foreign fuel extraction | |
| sm_fadeoutPriceAnticip | Helper parameter, describes fadeout of price anticipation during iterations | |
| vm_costAdjNash (ttot, all_regi) |
Adjustment costs for deviation from the trade structure of the last iteration. |
Unlike in Negishi-mode, each region forms its own optimization problem in Nash mode. Regions trade on goods and resource markets, but market-clearing conditions are not part of the optimization itself. Instead, the Nash-algorithm iteratively computes solutions for all regions including their trade patterns, and adjusts prices such that the surplus on global markets vanishes. Initial values for trade patterns, prices etc. are taken from the gdx (input.gdx).
Potential benefits of a Nash-solution are a massive reduction in run-time (convergence within a few hours), and more flexibility in treating inter-regional externalities. Learning-by-doing technologies (learnte) are included by default and cause an inter-regional spill-over. This causes a welfare difference between the solution in Nash- and Negishi-mode. In Nash-mode, a subsidy on the investment cost of learning technologies can be used to internalize this spill-over externality. This subsidy is implemented in the module 22_subsidizeLearning.
Without internalizing the learning-by-doing spill-over due to the global learning curve, Nash and Negishi solution differ. This is the case in the default setting of the corresponding module: cfg\(gms\)subsidizeLearning <- “off” In Nash-mode, the subsidy internalizing this externality can be calculated. When activated by cfg\(gms\)subsidizeLearning <- “globallyOptimal” the Nash solution should be equivalent to the Negishi solution.
For Nash solution: intertemporal trade balance must be zero (couple in agricultural trade costs: pvp deflator * net export)
\[\begin{multline*} 0 = pm\_nfa\_start(regi) \cdot pm\_pvp("2005","good") + SUM\left(ttot\$\left(ttot.val ge 2005\right), pm\_ts(ttot) \cdot \left( SUM\left(trade\$\left(NOT tradeSe(trade) and NOT tradeCap(trade)\right), \left(vm\_Xport(ttot,regi,trade) - vm\_Mport(ttot,regi,trade)\right) \cdot pm\_pvp(ttot,trade) \cdot \left( 1 + sm\_fadeoutPriceAnticip \cdot p80\_etaXp(trade) \cdot \frac{ \left( \left(pm\_Xport0(ttot,regi,trade) - p80\_Mport0(ttot,regi,trade)\right) - \left(vm\_Xport(ttot,regi,trade) - vm\_Mport(ttot,regi,trade)\right) - p80\_taxrev0(ttot,regi)\$\left(ttot.val gt 2005\right)\$sameas(trade,"good") + vm\_taxrev(ttot,regi)\$\left(ttot.val gt 2005\right)\$sameas(trade,"good") \right) }{ \left(p80\_normalize0(ttot,regi,trade) + sm\_eps\right) }\right) \right) + vm\_capacityTradeBalance(ttot,regi) + pm\_pvp(ttot,"good") \cdot pm\_NXagr(ttot,regi) \right) \right) \end{multline*}\]
quadratic adjustment costs, penalizing deviations from the trade pattern of the last iteration.
\[\begin{multline*} vm\_costAdjNash(ttot,regi) = \sum_{trade\$\left(NOT tradeSe(trade)\right)}\left( pm\_pvp(ttot,trade) \cdot p80\_etaAdj(trade) \cdot \left( \left(pm\_Xport0(ttot,regi,trade) - p80\_Mport0(ttot,regi,trade)\right) - \left(vm\_Xport(ttot,regi,trade) - vm\_Mport(ttot,regi,trade)\right) \right) \cdot \frac{ \left( \left(pm\_Xport0(ttot,regi,trade) - p80\_Mport0(ttot,regi,trade)\right) - \left(vm\_Xport(ttot,regi,trade) - vm\_Mport(ttot,regi,trade)\right) \right) }{ \left(p80\_normalize0(ttot,regi,trade) + sm\_eps\right) }\right) \end{multline*}\]
link between permit budget and emission budget
\[\begin{multline*} \sum_{ttot\$\left(ttot.val lt sm\_endBudgetCO2eq and ttot.val ge cm\_startyear\right)}\left( pm\_ts(ttot) \cdot vm\_perm(ttot,regi)\right) + \sum_{ttot\$\left(ttot.val eq sm\_endBudgetCO2eq\right)}\left(\frac{pm\_ts(ttot)}{2 } \cdot vm\_perm(ttot,regi)\right) \leq pm\_budgetCO2eq(regi) - \sum_{ttot \$\left(\left(ttot.val ge 2005\right) and \left(ttot.val lt cm\_startyear\right)\right)}\left( pm\_ts(ttot) \cdot vm\_co2eq(ttot,regi)\right) \end{multline*}\]
Limitations There are no known limitations.
In Negishi mode, all regions forms a big optimization problem, as opposed to separate optimizations in Nash mode. Regions trade on goods and resource markets, and market-clearing conditions are also part of the optimization. The Negishi algorithm iteratively computes solutions for the whole globe including regional trade patterns, and adjusts the so-called Negishi weights until a Pareto optimal solution is found. Negishi weights are the coefficients of regional utilities in their sum that forms the utility function of REMIND and are computed via an intertemporal trade balance.
Initial values for the Negishi weights are taken from the gdx (input.gdx).
Limitations This realization is computationally very expensive. Unless a very specific problem has to be solved, using the Nash realization will deliver the same result in a fraction of the time.
This is a reduced model version, only containing one region. It is equivalent to the Nash realization with just one region. Prices of resources and goods are exogenously fixed to the values taken from the gdx.
Run time is some minutes.
for Nash solution: intertemporal trade balance must be zero
\[\begin{multline*} 0 = SUM\left(ttot\$\left(ttot.val ge 2005\right), pm\_ts(ttot) \cdot \left( SUM\left(trade\$\left(NOT tradeSe(trade)\right), \left(vm\_Xport(ttot,regi,trade)-vm\_Mport(ttot,regi,trade)\right) \cdot pm\_pvp(ttot,trade) \cdot \left( 1 + p80\_etaXp(trade) \cdot \frac{ \left( \left(pm\_Xport0(ttot,regi,trade) - p80\_Mport0(ttot,regi,trade)\right) - \left(vm\_Xport(ttot,regi,trade) - vm\_Mport(ttot,regi,trade)\right) \right) }{ \left(p80\_normalize0(ttot,regi,trade) + 1E-6\right) }\right) \right) + vm\_capacityTradeBalance(ttot,regi) \right) \right) \end{multline*}\]
\[\begin{multline*} vm\_costAdjNash(ttot,regi) = 0 \end{multline*}\]
Limitations This realization is only useful for testing purposes or for regions with no influence on the global prices of traded goods.
| Description | Unit | A | B | C | |
|---|---|---|---|---|---|
| o80_PriceChangePriceAnticipReg (ttot, all_enty, all_regi) |
only for display: Price change of a trade good due to price anticipation. If nothing is displayed, all values are <0.1%. | \(Percent, rounded to 0.1\%\) | x | ||
| o80_PriceChangePriceAnticipRegMaxIter (ttot, iteration) |
only for display: Largest absolute value of o80_PriceChangePriceAnticipReg until 2100/2150, tracked over iteration. | \(Percent, rounded to 0.1\%\) | x | ||
| o80_SurplusOverTolerance (ttot, all_enty, iteration) |
auxiliary parameter to track in which iterations which item surpassed the tolerance (positive/negative) | x | |||
| o80_counter_iteration_trade_ttot (ttot, all_enty, iteration) |
auxiliary parameter to display in which iteration and for which item (ttot, trade) additional convergence measures were taken | x | |||
| o80_trackSurplusSign (ttot, all_enty, iteration) |
auxiliary parameter to track how long the surplus for an item (ttot, trade) had the same sign over iterations | x | |||
| p80_DevPriceAnticipGlob (ttot, all_enty) |
Global sum of p80_DevPriceAnticipReg. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipGlobAll (ttot) |
p80_DevPriceAnticipGlob summed over all trade goods. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipGlobAllMax (ttot) |
Max of p80_DevPriceAnticipGlobAll until the given year. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipGlobAllMax2100Iter (iteration) |
Track the 2100 value of p80_DevPriceAnticipGlobAllMax over iterations. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipGlobIter (ttot, all_enty, iteration) |
Track p80_DevPriceAnticipGlob over iterations. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipGlobMax (ttot, all_enty) |
Max of p80_DevPriceAnticipGlob until the given year. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipGlobMax2100Iter (all_enty, iteration) |
Track the 2100 value of p80_DevPriceAnticipGlobMax over iterations. | \(trillion Dollar\) | x | ||
| p80_DevPriceAnticipReg (ttot, all_enty, all_regi) |
Deviation of the yearly monetary export/import expenditure due to price change anticipation effect. | \(trillion Dollar\) | x | ||
| p80_Mport0 (tall, all_regi, all_enty) |
Imports in last iteration | x | x | ||
| p80_Mport_iter (ttot, all_regi, all_enty, iteration) |
Imports over iterations | x | |||
| p80_PriceChangePriceAnticipReg (ttot, all_enty, all_regi) |
Price change of a trade good due to the price anticipation effect. | \(Percent\) | x | ||
| p80_SolNonOpt (all_regi) |
solve status | x | |||
| p80_Xport_iter (ttot, all_regi, all_enty, iteration) |
Exports over iterations | x | |||
| p80_alpha_nw (tall, all_regi) |
diagnostic parameter for new negishi routine | x | |||
| p80_convNashObjVal_iter (iteration, all_regi) |
deviation of objective value to objective value from last iteration per iteration | x | |||
| p80_convNashTaxrev_iter (iteration, ttot, all_regi) |
deviation of tax revenue relative to GDP per iteration, thus 0.01 means 1 percent | \(1\) | x | ||
| p80_count | count regions with feasible solution | x | |||
| p80_curracc (ttot, all_regi) |
current account | x | x | ||
| p80_currentaccount_bau (tall, all_regi) |
baseline current account path | x | |||
| p80_defic (iteration, all_regi) |
intertemporal trade balance deficit | x | |||
| p80_defic_sum (iteration) |
Surplus in monetary terms over all times on all commodity markets combined [trillion US$2017] (NOTE: to compare this number with the Negishi defic_sum, divide by around 100) | x | x | ||
| p80_defic_sumLast | the sum of intertemporal deficits, only for the last iteration (needed for output analysis script) | x | |||
| p80_defic_sum_rel (iteration) |
Surplus monetary value over all times on all commodity markets combined, normalized to consumption | \(\%\) | x | ||
| p80_defic_trade (all_enty) |
Surplus in monetary terms over all times on commodity markets | \(trillion US\$2017\) | x | ||
| p80_eoDeltaEmibudget | total change in permit budget | x | |||
| p80_eoEmiMarg (all_regi) |
weighted marginal utility of emissions | x | |||
| p80_eoEmibudget1RegItr (all_regi, iteration) |
corrected regional permit budgets | x | |||
| p80_eoEmibudgetDiffAbs (iteration) |
convergence indicator | x | |||
| p80_eoMargAverage | global average of marginals from nash budget equation | x | |||
| p80_eoMargDiff (all_regi) |
scaled deviation of regional marginals from global average | x | |||
| p80_eoMargDiffItr (all_regi, iteration) |
scaled deviation of regional marginals from global average | x | |||
| p80_eoMargEmiCum (all_regi) |
marginal of cumulative emissions | x | |||
| p80_eoMargPermBudg (all_regi) |
marginal of permit budget restriction | x | |||
| p80_eoWeights (all_regi) |
welfare weights | x | |||
| p80_etaAdj (all_enty) |
Adjustment costs for changes of trade pattern between iterations | x | |||
| p80_etaLT (all_enty) |
long term price ajustment elasticity | x | |||
| p80_etaLT_correct (all_enty, iteration) |
long term price correction factor in percent | x | |||
| p80_etaST (all_enty) |
short term price ajustment elasticity | x | |||
| p80_etaST_correct (tall, all_enty, iteration) |
short term price correction factor in percent | x | |||
| p80_etaST_correct_safecopy (tall, all_enty, iteration) |
auxiliary parameter to remember short term price correction factor in percent, before new convergence adjustments | x | |||
| p80_etaXp (all_enty) |
Parameter governing price anticipation on commodity markets | x | x | ||
| p80_fadeoutPriceAnticip_iter (iteration) |
Helper parameter, describes fadeout of price anticipation during iterations per iteration | x | |||
| p80_fuExtr_iter (ttot, all_regi, all_enty, rlf, iteration) |
Fuel extraction over iterations | x | |||
| p80_globalBudget_absDev_iter (iteration) |
absolute deviation of global cumulated CO2 emissions budget from target budget | x | |||
| p80_gmt_conv_iter (iteration) |
global mean temperature convergence per iteration | x | |||
| p80_handle (all_regi) |
parallel mode handle parameter | x | |||
| p80_implicitQttyTarget_dev_iter (iteration, ttot, ext_regi, qttyTarget, qttyTargetGroup) |
deviation of current iteration quantity target from target per iteration - relative for total targets, absolute (= share points) for share targets | x | |||
| p80_messageFailedMarket (tall, all_enty) |
nash display helper | x | |||
| p80_messageShow (convMessage80) |
nash display helper | x | |||
| p80_nfa (tall, all_regi) |
net foreign assets | x | |||
| p80_normalize0 (ttot, all_regi, all_enty) |
Normalization parameter for market volume | x | x | ||
| p80_normalizeLT (all_enty) |
Aggregated intertemporal market volume | x | |||
| p80_nw (iteration, all_regi) |
negishi weights | x | |||
| p80_prodPe_iter (ttot, all_regi, all_enty, iteration) |
PE production over iterations | x | |||
| p80_pvpFallback (ttot, all_enty) |
Helper parameter. Price path from input/prices_NASH.inc. Only used if reading prices from gdx fails. | x | x | ||
| p80_pvp_itr (ttot, all_enty, iteration) |
Price on commodity markets per iteration | x | |||
| p80_regionalBudget_absDev_iter (iteration, all_regi) |
absolute deviation of regional cumulated CO2 emissions target budgets | x | |||
| p80_repy (all_regi, solveinfo80) |
summary report from solver | x | |||
| p80_repyLastOptim (all_regi, solveinfo80) |
p80_repy from last iteration | x | |||
| p80_repy_iteration (all_regi, solveinfo80, iteration) |
summary report from solver in iteration | x | |||
| p80_repy_nashitr_solitr (all_regi, solveinfo80, iteration, sol_itr) |
summary report from solver in nash iteration and solver iteration | x | |||
| p80_repy_thisSolitr (all_regi, solveinfo80) |
p80_repy from the current solitr - only shows results for regions that were run in this solItr | x | |||
| p80_sccConvergenceMaxDeviation_iter (iteration) |
max deviation of SCC from last iteration per iteration | \(percent\) | x | ||
| p80_surplus (tall, all_enty, iteration) |
Surplus on commodity market | x | |||
| p80_surplusMax2100 (all_enty) |
Worst residual market surplus until 2100, absolute value. | \(TWa, trillion Dollar, GtC\) | x | ||
| p80_surplusMaxRel (all_enty, iteration, tall) |
Diagnostics for Nash: Worst residual market surplus until given year, in per cent. | x | |||
| p80_surplusMaxTolerance (all_enty) |
maximum tolerable residual value of absolute market surplus in 2100. | x | |||
| p80_surplusMax_iter (all_enty, iteration, tall) |
Diagnostics for Nash: Worst residual market surplus until given year, absolute value. | \(TWa, trillion Dollar, GtC\) | x | ||
| p80_taxrev0 (tall, all_regi) |
vm_taxrev from last iteration | x | x | ||
| p80_taxrev_agg (tall, iteration) |
vm_taxrev globally from last iteration | x | |||
| p80_trackConsecFail (all_regi) |
Parameter to keep track of consecutive solve failures of regions in Nash mode. | x | |||
| p80_trade (ttot, all_regi, all_enty) |
trade surplusses | x | |||
| p80_tradeVolume (tall, all_regi, all_enty) |
Trade volume | x | |||
| p80_tradeVolumeAll (tall, all_regi) |
Trade volume of all traded goods | x | |||
| q80_balTrade (ttot, all_enty) |
trade balance equation | x | |||
| q80_budg_intertemp (all_regi) |
interemporal trade balance (Nash mode only) | x | x | ||
| q80_budgetPermRestr (all_regi) |
constraints regional permit budget to given regional emission budget | x | |||
| q80_budget_helper (ttot, all_regi) |
Helper declaration for import from gdx | x | |||
| q80_costAdjNash (ttot, all_regi) |
calculate Nash adjustment costs (of anticipation of the difference in trade pattern, compared to the last iteration), combined for all markets | x | x | ||
| s80_after | value of time step after current interpolation time step | x | |||
| s80_alpha_avg | average of p80_alpha_nw | x | |||
| s80_before | value of time step befor current interpolation time step | x | |||
| s80_bool | helper | x | |||
| s80_cnptfile | parameter that indicates which optimality tolerance will be used | x | |||
| s80_converged | if nash converged, this is 1 | x | |||
| s80_dummy | dummy scalar | x | |||
| s80_fadeoutPriceAnticipStartingPeriod | Helper parameter, denotes iteration in which price anticipation fadeout starts | x | |||
| s80_numberIterations | display helper | x | |||
| s80_runInDebug | Is 1 if regions stayed infeasible in nash and start in debug mode automatically following the parallel mode | x |
| description | |
|---|---|
| activeConvMessage80(convMessage80) | all active convergence criterias |
| all_emiMkt | emission markets |
| all_enty | all types of quantities |
| all_in | all inputs and outputs of the CES function |
| all_regi | all regions |
| all_te | all energy technologies, including from modules |
| cesParameter | parameters of the CES functions and for calibration |
| convMessage80 | contains all convergence criteria |
| emi_type_47 | emission type used in regional target |
| enty(all_enty) | all types of quantities |
| entyFe(all_enty) | final energy types. |
| entyPe(all_enty) | Primary energy types (PE) |
| entySe(all_enty) | secondary energy types |
| ext_regi | extended regions list (includes subsets of H12 regions) |
| in(all_in) | All inputs and outputs of the CES function |
| iteration | iterator for main (Negishi/Nash) iterations |
| learnte_dyn80(all_te) | learnte for nash |
| qttyTarget | quantity target for energy carrier level (primary, secondary, final energy) or CCS or OAE |
| qttyTargetGroup | quantity target aggregated categories |
| regi(all_regi) | all regions used in the solution process |
| regi_dyn80(all_regi) | region for testOneRegi |
| rlf | cost levels of fossil fuels |
| sol_itr | iterator for inner solution process within one Negishi iteration |
| solveinfo80 | Nash solution stats |
| t(ttot) | optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps |
| tall | time index, each year from 1900 to 3000 |
| targetType | PE, SE or FE target type |
| target_type_47 | CO2 policy target type |
| taxType | PE, SE or FE tax type |
| teLearn(all_te) | Learning technologies (for which investment costs are reduced endogenously through capacity deployment). |
| trade(all_enty) | All traded commodities |
| tradeCap(all_enty) | Commodities traded via capacity mode. |
| tradePe(all_enty) | Traded primary energy commodities |
| tradeSe(all_enty) | Traded secondary energy commodities |
| ttot(tall) | time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps |
Anastasis Giannousakis, Marian Leimbach, Lavinia Baumstark, Gunnar Luderer, Anselm Schultes
01_macro, 02_welfare, 15_climate, 20_growth, 21_tax, 22_subsidizeLearning, 23_capitalMarket, 24_trade, 26_agCosts, 41_emicapregi, 45_carbonprice, 47_regipol, 51_internalizeDamages, core