From 47f072cb02c33a6178935383ab62997c95fb2194 Mon Sep 17 00:00:00 2001 From: robertpietzcker Date: Tue, 14 Jul 2026 15:07:35 +0200 Subject: [PATCH 1/3] add parameters to track PE and trade over iterations --- modules/80_optimization/nash/declarations.gms | 5 +++++ modules/80_optimization/nash/postsolve.gms | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/80_optimization/nash/declarations.gms b/modules/80_optimization/nash/declarations.gms index 0c56505c94..b00b111088 100644 --- a/modules/80_optimization/nash/declarations.gms +++ b/modules/80_optimization/nash/declarations.gms @@ -36,6 +36,11 @@ p80_defic_sum_rel(iteration) "Surplus monetary value over all tim p80_etaLT_correct(all_enty,iteration) "long term price correction factor in percent" p80_etaST_correct(tall,all_enty,iteration) "short term price correction factor in percent" +p80_Mport_iter(ttot,all_regi,all_enty,iteration) "Imports over iterations" +p80_Xport_iter(ttot,all_regi,all_enty,iteration) "Exports over iterations" +p80_prodPe_iter(ttot,all_regi,all_enty,iteration) "PE production over iterations" +p80_fuExtr_iter(ttot,all_regi,all_enty,rlf,iteration) "Fuel extraction over iterations" + p80_etaST_correct_safecopy(tall,all_enty,iteration) "auxiliary parameter to remember short term price correction factor in percent, before new convergence adjustments" 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" 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" diff --git a/modules/80_optimization/nash/postsolve.gms b/modules/80_optimization/nash/postsolve.gms index fed27621ca..79eae060a3 100644 --- a/modules/80_optimization/nash/postsolve.gms +++ b/modules/80_optimization/nash/postsolve.gms @@ -22,12 +22,27 @@ p80_normalize0(ttot,regi,tradePe)$(ttot.val ge 2005) = max(0.5 * (sum(rlf, vm_fu + p80_normalize0(ttot,regi,tradePe)$(pm_SolNonInfes(regi) eq 0) ,sm_eps); +*** track exports and imports and fuel extraction and prodPe +loop(ttot$(ttot.val ge 2005), + loop(regi, + loop(trade, + p80_Mport_iter(ttot,trade,regi,iteration) = vm_Mport.l(ttot,regi,trade); + p80_Mport_iter(ttot,trade,regi,iteration) = vm_Xport.l(ttot,regi,trade); + ); + loop(entyPE, + p80_prodPe_iter(ttot,regi,entyPE,iteration) = vm_prodPe.l(ttot,regi,entyPE); + p80_fuExtr_iter(ttot,regi,entyPE,rlf,iteration) = vm_fuExtr.l(ttot,regi,entyPE,rlf); + ); + ); +); + ***calculate residual surplus on the markets loop(ttot$(ttot.val ge 2005), loop(trade$(NOT tradeSe(trade)), - p80_surplus(ttot,trade,iteration) = sum(regi, (vm_Xport.l(ttot,regi,trade) - vm_Mport.l(ttot,regi,trade))$(pm_SolNonInfes(regi) eq 1) + p80_surplus(ttot,trade,iteration) = sum(regi, (vm_Xport.l(ttot,regi,trade) - vm_Mport.l(ttot,regi,trade))$(pm_SolNonInfes(regi) eq 1) + (pm_Xport0(ttot,regi,trade) - p80_Mport0(ttot,regi,trade) )$(pm_SolNonInfes(regi) eq 0) ); - ); + + ); ); *' calculate both the size of the price change due to the price change anticipation effect in percent, as well as From 9f6affffcb297a6de2ee48f77a22466ed713e5e7 Mon Sep 17 00:00:00 2001 From: robertpietzcker Date: Tue, 14 Jul 2026 15:15:48 +0200 Subject: [PATCH 2/3] correct capitalization --- modules/80_optimization/nash/postsolve.gms | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/80_optimization/nash/postsolve.gms b/modules/80_optimization/nash/postsolve.gms index 79eae060a3..bad1e03ddb 100644 --- a/modules/80_optimization/nash/postsolve.gms +++ b/modules/80_optimization/nash/postsolve.gms @@ -29,9 +29,9 @@ loop(ttot$(ttot.val ge 2005), p80_Mport_iter(ttot,trade,regi,iteration) = vm_Mport.l(ttot,regi,trade); p80_Mport_iter(ttot,trade,regi,iteration) = vm_Xport.l(ttot,regi,trade); ); - loop(entyPE, - p80_prodPe_iter(ttot,regi,entyPE,iteration) = vm_prodPe.l(ttot,regi,entyPE); - p80_fuExtr_iter(ttot,regi,entyPE,rlf,iteration) = vm_fuExtr.l(ttot,regi,entyPE,rlf); + loop(entyPe, + p80_prodPe_iter(ttot,regi,entyPe,iteration) = vm_prodPe.l(ttot,regi,entyPe); + p80_fuExtr_iter(ttot,regi,entyPe,rlf,iteration) = vm_fuExtr.l(ttot,regi,entyPe,rlf); ); ); ); From 446658d630963957ba09fa77409f0dee373d0e65 Mon Sep 17 00:00:00 2001 From: robertpietzcker Date: Tue, 14 Jul 2026 15:17:49 +0200 Subject: [PATCH 3/3] correct order --- modules/80_optimization/nash/postsolve.gms | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/80_optimization/nash/postsolve.gms b/modules/80_optimization/nash/postsolve.gms index bad1e03ddb..24d9abac81 100644 --- a/modules/80_optimization/nash/postsolve.gms +++ b/modules/80_optimization/nash/postsolve.gms @@ -26,8 +26,8 @@ p80_normalize0(ttot,regi,tradePe)$(ttot.val ge 2005) = max(0.5 * (sum(rlf, vm_fu loop(ttot$(ttot.val ge 2005), loop(regi, loop(trade, - p80_Mport_iter(ttot,trade,regi,iteration) = vm_Mport.l(ttot,regi,trade); - p80_Mport_iter(ttot,trade,regi,iteration) = vm_Xport.l(ttot,regi,trade); + p80_Mport_iter(ttot,regi,trade,iteration) = vm_Mport.l(ttot,regi,trade); + p80_Mport_iter(ttot,regi,trade,iteration) = vm_Xport.l(ttot,regi,trade); ); loop(entyPe, p80_prodPe_iter(ttot,regi,entyPe,iteration) = vm_prodPe.l(ttot,regi,entyPe);