VeraGrid 5.4.7__tar.gz → 5.4.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. {veragrid-5.4.7 → veragrid-5.4.8}/PKG-INFO +1 -1
  2. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/base_diagram_widget.py +1 -1
  3. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridReduce/grid_reduce.py +31 -12
  4. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/MainWindow.py +71 -61
  5. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Model/diagrams.py +14 -3
  6. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/__version__.py +1 -1
  7. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ExecuteVeraGrid.py +0 -0
  8. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/AboutDialogue/__init__.py +0 -0
  9. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/AboutDialogue/about_dialogue.py +0 -0
  10. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/AboutDialogue/gui.py +0 -0
  11. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/AboutDialogue/icons_rc.py +0 -0
  12. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/AboutDialogue/update_gui_file.py +0 -0
  13. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Analysis/AnalysisDialogue.py +0 -0
  14. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Analysis/__init__.py +0 -0
  15. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Analysis/gui.py +0 -0
  16. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Analysis/icons_rc.py +0 -0
  17. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Analysis/object_plot_analysis.py +0 -0
  18. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Analysis/update_gui_file.py +0 -0
  19. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ContingencyPlanner/__init__.py +0 -0
  20. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  21. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ContingencyPlanner/gui.py +0 -0
  22. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ContingencyPlanner/icons_rc.py +0 -0
  23. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  24. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/CoordinatesInput/__init__.py +0 -0
  25. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  26. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/CoordinatesInput/gui.py +0 -0
  27. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/CoordinatesInput/icons_rc.py +0 -0
  28. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/CoordinatesInput/update_gui_file.py +0 -0
  29. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/__init__.py +0 -0
  30. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
  31. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/generator_editor.py +0 -0
  32. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/line_editor.py +0 -0
  33. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
  34. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
  35. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/transformer_editor.py +0 -0
  36. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
  37. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  38. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
  39. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  40. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  41. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  42. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  43. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  44. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
  45. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  46. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  47. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  48. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  49. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
  50. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
  51. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
  52. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  53. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  54. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  55. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  56. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  57. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  58. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  59. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/__init__.py +0 -0
  60. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
  61. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  62. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  63. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  64. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  65. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  66. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  67. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  68. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  69. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  70. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  71. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  72. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  73. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics_3term.py +0 -0
  74. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  75. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  76. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  77. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  78. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  79. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  80. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  81. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  82. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  83. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  84. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  85. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  86. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  87. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
  88. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  89. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  90. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  91. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  92. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  93. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  94. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  95. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
  96. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  97. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/__init__.py +0 -0
  98. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/diagrams_model.py +0 -0
  99. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/generic_graphics.py +0 -0
  100. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Diagrams/graphics_manager.py +0 -0
  101. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridGenerator/__init__.py +0 -0
  102. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  103. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridGenerator/gui.py +0 -0
  104. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridGenerator/icons_rc.py +0 -0
  105. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridGenerator/update_gui_file.py +0 -0
  106. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/__init__.py +0 -0
  107. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/build_diff_tree.py +0 -0
  108. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/grid_diff.py +0 -0
  109. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/grid_diff_gui.py +0 -0
  110. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/grid_merge.py +0 -0
  111. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/grid_merge_gui.py +0 -0
  112. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridMerge/update_gui_file.py +0 -0
  113. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridReduce/__init__.py +0 -0
  114. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridReduce/grid_reduce_gui.py +0 -0
  115. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/GridReduce/update_gui_file.py +0 -0
  116. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadCatalogue/SelectComponents.py +0 -0
  117. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadCatalogue/__init__.py +0 -0
  118. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  119. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadCatalogue/icons_rc.py +0 -0
  120. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadCatalogue/update_gui_file.py +0 -0
  121. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadDesigner/__init__.py +0 -0
  122. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadDesigner/icons_rc.py +0 -0
  123. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadDesigner/load_designer.py +0 -0
  124. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadDesigner/load_designer_ui.py +0 -0
  125. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/LoadDesigner/update_gui_file.py +0 -0
  126. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/ConsoleLog.py +0 -0
  127. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/ConsoleLogController.py +0 -0
  128. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Model/__init__.py +0 -0
  129. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  130. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Model/data_base.py +0 -0
  131. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Model/time_events.py +0 -0
  132. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/README.txt +0 -0
  133. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Results/__init__.py +0 -0
  134. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Results/results.py +0 -0
  135. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  136. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  137. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Server/__init__.py +0 -0
  138. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Server/server.py +0 -0
  139. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  140. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  141. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/__init__.py +0 -0
  142. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/base_gui.py +0 -0
  143. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/io.py +0 -0
  144. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/SubClasses/simulations.py +0 -0
  145. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/VeraGridMain.py +0 -0
  146. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/__init__.py +0 -0
  147. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/icons_rc.py +0 -0
  148. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/object_select_window.py +0 -0
  149. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Main/update_gui_file.py +0 -0
  150. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/__init__.py +0 -0
  151. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/excel_dialog.py +0 -0
  152. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  153. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/icons_rc.py +0 -0
  154. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/models_dialogue.py +0 -0
  155. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/profile_dialogue.py +0 -0
  156. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  157. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  158. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/ProfilesInput/update_gui_file.py +0 -0
  159. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RmsModelEditor/__init__.py +0 -0
  160. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RmsModelEditor/block_editor.py +0 -0
  161. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RmsModelEditor/icons_rc.py +0 -0
  162. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RmsModelEditor/rms_model_editor.py +0 -0
  163. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RmsModelEditor/rms_model_editor_dialogue.py +0 -0
  164. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RmsModelEditor/update_gui_file.py +0 -0
  165. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RosetaExplorer/MainWindow.py +0 -0
  166. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  167. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RosetaExplorer/__init__.py +0 -0
  168. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RosetaExplorer/icons_rc.py +0 -0
  169. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  170. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/RosetaExplorer/update_gui_file.py +0 -0
  171. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SigmaAnalysis/__init__.py +0 -0
  172. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SigmaAnalysis/gui.py +0 -0
  173. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SigmaAnalysis/icons_rc.py +0 -0
  174. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  175. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  176. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SolarPowerWizard/__init__.py +0 -0
  177. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SolarPowerWizard/gui.py +0 -0
  178. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SolarPowerWizard/icons_rc.py +0 -0
  179. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  180. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  181. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SubstationDesigner/__init__.py +0 -0
  182. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SubstationDesigner/substation_designer.py +0 -0
  183. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
  184. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SubstationDesigner/update_gui_file.py +0 -0
  185. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SyncDialogue/__init__.py +0 -0
  186. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SyncDialogue/gui.py +0 -0
  187. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SyncDialogue/icons_rc.py +0 -0
  188. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SyncDialogue/sync_dialogue.py +0 -0
  189. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SyncDialogue/update_gui_file.py +0 -0
  190. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SystemScaler/__init__.py +0 -0
  191. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SystemScaler/icons_rc.py +0 -0
  192. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SystemScaler/system_scaler.py +0 -0
  193. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SystemScaler/system_scaler_ui.py +0 -0
  194. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/SystemScaler/update_gui_file.py +0 -0
  195. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  196. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TowerBuilder/__init__.py +0 -0
  197. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TowerBuilder/icons_rc.py +0 -0
  198. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TowerBuilder/table_models.py +0 -0
  199. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TowerBuilder/tower_builder.py +0 -0
  200. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TowerBuilder/update_gui_file.py +0 -0
  201. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TreeModelViewer/MainWindow.py +0 -0
  202. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  203. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TreeModelViewer/__init__.py +0 -0
  204. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TreeModelViewer/icons_rc.py +0 -0
  205. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/TreeModelViewer/update_gui_file.py +0 -0
  206. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Visualization/__init__.py +0 -0
  207. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Visualization/visualization.py +0 -0
  208. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Widgets/__init__.py +0 -0
  209. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Widgets/custom_qrangeslider.py +0 -0
  210. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/Widgets/matplotlibwidget.py +0 -0
  211. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/WindPowerWizard/__init__.py +0 -0
  212. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/WindPowerWizard/gui.py +0 -0
  213. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/WindPowerWizard/icons_rc.py +0 -0
  214. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/WindPowerWizard/update_gui_file.py +0 -0
  215. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  216. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/__init__.py +0 -0
  217. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/associations_model.py +0 -0
  218. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/general_dialogues.py +0 -0
  219. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/gui_functions.py +0 -0
  220. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/messages.py +0 -0
  221. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/object_model.py +0 -0
  222. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/object_proxy_model.py +0 -0
  223. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/pandas_model.py +0 -0
  224. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/plot_config.py +0 -0
  225. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/profiles_model.py +0 -0
  226. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/python_console.py +0 -0
  227. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/python_highlighter.py +0 -0
  228. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/results_model.py +0 -0
  229. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/table_view_header_wrap.py +0 -0
  230. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/themes.py +0 -0
  231. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/toast_widget.py +0 -0
  232. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/update_gui_all.py +0 -0
  233. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/update_gui_common.py +0 -0
  234. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Gui/wrappable_table_model.py +0 -0
  235. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/LICENSE.txt +0 -0
  236. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Session/__init__.py +0 -0
  237. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Session/export_results_driver.py +0 -0
  238. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Session/file_handler.py +0 -0
  239. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Session/server_driver.py +0 -0
  240. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Session/session.py +0 -0
  241. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/Session/synchronization_driver.py +0 -0
  242. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/__init__.py +0 -0
  243. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/darkdetect/__init__.py +0 -0
  244. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/darkdetect/_dummy.py +0 -0
  245. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/darkdetect/_linux_detect.py +0 -0
  246. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/darkdetect/_mac_detect.py +0 -0
  247. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/darkdetect/_windows_detect.py +0 -0
  248. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/__init__.py +0 -0
  249. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_color.py +0 -0
  250. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  251. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  252. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  253. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_main.py +0 -0
  254. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  255. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  256. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  257. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  258. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  259. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  260. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  261. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  262. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  263. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  264. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  265. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_style_loader.py +0 -0
  266. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  267. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_template/engine.py +0 -0
  268. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_template/filter.py +0 -0
  269. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/_util.py +0 -0
  270. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  271. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  272. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  273. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  274. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  275. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  276. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  277. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  278. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  279. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  280. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  281. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  282. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  283. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  284. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  285. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  286. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/__init__.py +0 -0
  287. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/VeraGrid.ico +0 -0
  288. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/VeraGrid.svg +0 -0
  289. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/__init__.py +0 -0
  290. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/cables.csv +0 -0
  291. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/sequence_lines.csv +0 -0
  292. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/transformers.csv +0 -0
  293. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/data/wires.csv +0 -0
  294. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/plugins.py +0 -0
  295. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/templates.py +0 -0
  296. {veragrid-5.4.7 → veragrid-5.4.8}/VeraGrid/update.py +0 -0
  297. {veragrid-5.4.7 → veragrid-5.4.8}/setup.cfg +0 -0
  298. {veragrid-5.4.7 → veragrid-5.4.8}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: VeraGrid
3
- Version: 5.4.7
3
+ Version: 5.4.8
4
4
  Summary: VeraGrid is a Power Systems simulation program intended for professional use and research
5
5
  Home-page: https://github.com/SanPen/VeraGrid
6
6
  Author: Santiago Peñate Vera et. Al.
@@ -521,7 +521,7 @@ class BaseDiagramWidget(QSplitter):
521
521
  any_plot = True
522
522
 
523
523
  elif isinstance(results, StochasticPowerFlowResults):
524
- loading_table = results.mdl(result_type=ResultTypes.BranchLoadingAverage)
524
+ loading_table = results.mdl(result_type=ResultTypes.BranchLoadingCDF)
525
525
  loading_table.convert_to_cdf()
526
526
  loading_table.plot_device(ax=ax_2, device_idx=i, title="Stochastic loading")
527
527
  any_plot = True
@@ -16,6 +16,8 @@ from VeraGridEngine.Devices.Substation.bus import Bus
16
16
  from VeraGridEngine.Devices.multi_circuit import MultiCircuit
17
17
  from VeraGridEngine.Topology.GridReduction.di_shi_grid_reduction import di_shi_reduction
18
18
  from VeraGridEngine.Topology.GridReduction.ptdf_grid_reduction import ptdf_reduction
19
+ from VeraGridEngine.Topology.GridReduction.ward_equivalents import ward_standard_reduction
20
+
19
21
  from VeraGridEngine.basic_structures import Logger
20
22
  from VeraGridEngine.enumerations import GridReductionMethod
21
23
 
@@ -27,9 +29,10 @@ class GridReduceDialogue(QtWidgets.QDialog):
27
29
 
28
30
  def __init__(self, grid: MultiCircuit, session: SimulationSession, selected_buses_set: Set[Bus]):
29
31
  """
30
-
31
- :param grid:
32
- :param session:
32
+ GridMergeDialogue
33
+ :param grid: MultiCircuit instance
34
+ :param session: SimulationSession instance to query the power flow
35
+ :param selected_buses_set: Set of buses (Bus objects) to reduce
33
36
  """
34
37
  QtWidgets.QDialog.__init__(self)
35
38
  self.ui = Ui_ReduceDialog()
@@ -39,13 +42,11 @@ class GridReduceDialogue(QtWidgets.QDialog):
39
42
  self.logger = Logger()
40
43
  self.logs_dialogue: LogsDialogue | None = None
41
44
 
42
- lmdl = get_list_model(list(selected_buses_set))
43
- self.ui.listView.setModel(lmdl)
45
+ self.ui.listView.setModel(get_list_model(list(selected_buses_set)))
44
46
 
45
- methods = [GridReductionMethod.DiShi, GridReductionMethod.PTDF]
47
+ methods = [GridReductionMethod.DiShi, GridReductionMethod.PTDF, GridReductionMethod.Ward]
46
48
  self.methods_dict = {m.value: m for m in methods}
47
- cmdl = get_list_model([m.value for m in methods])
48
- self.ui.methodComboBox.setModel(cmdl)
49
+ self.ui.methodComboBox.setModel(get_list_model([m.value for m in methods]))
49
50
 
50
51
  self._grid: MultiCircuit = grid
51
52
  self._session: SimulationSession = session
@@ -70,6 +71,8 @@ class GridReduceDialogue(QtWidgets.QDialog):
70
71
  title="Grid reduction?")
71
72
 
72
73
  if ok:
74
+
75
+ # convert the set of buses to bus indices
73
76
  reduction_bus_indices = np.array([self._grid.buses.index(b) for b in self._selected_buses_set],
74
77
  dtype=int)
75
78
 
@@ -82,12 +85,27 @@ class GridReduceDialogue(QtWidgets.QDialog):
82
85
  warning_msg("Run a power flow first! or select another method", "Grid reduction")
83
86
  return
84
87
 
88
+ # NOTE: self._grid gets reduced in-place
85
89
  grid_reduced, logger = di_shi_reduction(
86
90
  grid=self._grid,
87
91
  reduction_bus_indices=reduction_bus_indices,
88
- pf_res=pf_res,
89
- add_power_loads=True,
90
- use_linear=False
92
+ V0=pf_res.voltage
93
+ )
94
+
95
+ elif method == GridReductionMethod.Ward:
96
+
97
+ # get the previous power flow
98
+ _, pf_res = self._session.power_flow
99
+
100
+ if pf_res is None:
101
+ warning_msg("Run a power flow first! or select another method", "Grid reduction")
102
+ return
103
+
104
+ # NOTE: self._grid gets reduced in-place
105
+ grid_reduced, logger = ward_standard_reduction(
106
+ grid=self._grid,
107
+ reduction_bus_indices=reduction_bus_indices,
108
+ V0=pf_res.voltage
91
109
  )
92
110
 
93
111
  elif method == GridReductionMethod.PTDF:
@@ -98,7 +116,8 @@ class GridReduceDialogue(QtWidgets.QDialog):
98
116
  warning_msg("Run a linear analysis first! or select another method", "Grid reduction")
99
117
  return
100
118
 
101
- logger = ptdf_reduction(
119
+ # NOTE: self._grid gets reduced in-place
120
+ grid_reduced, logger = ptdf_reduction(
102
121
  grid=self._grid,
103
122
  reduction_bus_indices=reduction_bus_indices,
104
123
  PTDF=lin_res.PTDF
@@ -31,7 +31,7 @@ class Ui_mainWindow(object):
31
31
  def setupUi(self, mainWindow):
32
32
  if not mainWindow.objectName():
33
33
  mainWindow.setObjectName(u"mainWindow")
34
- mainWindow.resize(1198, 742)
34
+ mainWindow.resize(1390, 847)
35
35
  mainWindow.setBaseSize(QSize(0, 0))
36
36
  font = QFont()
37
37
  font.setPointSize(10)
@@ -2931,52 +2931,61 @@ class Ui_mainWindow(object):
2931
2931
  self.groupBox.setFont(font6)
2932
2932
  self.gridLayout_18 = QGridLayout(self.groupBox)
2933
2933
  self.gridLayout_18.setObjectName(u"gridLayout_18")
2934
+ self.opfGEPCheckBox = QCheckBox(self.groupBox)
2935
+ self.opfGEPCheckBox.setObjectName(u"opfGEPCheckBox")
2936
+ self.opfGEPCheckBox.setFont(font7)
2937
+
2938
+ self.gridLayout_18.addWidget(self.opfGEPCheckBox, 8, 0, 1, 2)
2939
+
2940
+ self.fixOpfCheckBox = QCheckBox(self.groupBox)
2941
+ self.fixOpfCheckBox.setObjectName(u"fixOpfCheckBox")
2942
+ self.fixOpfCheckBox.setFont(font7)
2943
+
2944
+ self.gridLayout_18.addWidget(self.fixOpfCheckBox, 9, 0, 1, 2)
2945
+
2934
2946
  self.label_10 = QLabel(self.groupBox)
2935
2947
  self.label_10.setObjectName(u"label_10")
2936
2948
  self.label_10.setFont(font7)
2937
2949
 
2938
2950
  self.gridLayout_18.addWidget(self.label_10, 0, 0, 1, 1)
2939
2951
 
2940
- self.opfZonalGroupByComboBox = QComboBox(self.groupBox)
2941
- self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox")
2942
- self.opfZonalGroupByComboBox.setFont(font7)
2943
-
2944
- self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1)
2945
-
2946
2952
  self.opfUnitCommitmentCheckBox = QCheckBox(self.groupBox)
2947
2953
  self.opfUnitCommitmentCheckBox.setObjectName(u"opfUnitCommitmentCheckBox")
2948
2954
  self.opfUnitCommitmentCheckBox.setFont(font7)
2949
2955
 
2950
2956
  self.gridLayout_18.addWidget(self.opfUnitCommitmentCheckBox, 5, 0, 1, 1)
2951
2957
 
2952
- self.label_132 = QLabel(self.groupBox)
2953
- self.label_132.setObjectName(u"label_132")
2958
+ self.opfContingencyToleranceSpinBox = QDoubleSpinBox(self.groupBox)
2959
+ self.opfContingencyToleranceSpinBox.setObjectName(u"opfContingencyToleranceSpinBox")
2960
+ self.opfContingencyToleranceSpinBox.setFont(font7)
2961
+ self.opfContingencyToleranceSpinBox.setDecimals(4)
2962
+ self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000)
2963
+ self.opfContingencyToleranceSpinBox.setValue(0.050000000000000)
2954
2964
 
2955
- self.gridLayout_18.addWidget(self.label_132, 4, 0, 1, 2)
2965
+ self.gridLayout_18.addWidget(self.opfContingencyToleranceSpinBox, 3, 1, 1, 1)
2956
2966
 
2957
- self.opf_time_grouping_comboBox = QComboBox(self.groupBox)
2958
- self.opf_time_grouping_comboBox.setObjectName(u"opf_time_grouping_comboBox")
2959
- self.opf_time_grouping_comboBox.setFont(font7)
2967
+ self.considerContingenciesOpfCheckBox = QCheckBox(self.groupBox)
2968
+ self.considerContingenciesOpfCheckBox.setObjectName(u"considerContingenciesOpfCheckBox")
2969
+ self.considerContingenciesOpfCheckBox.setFont(font7)
2960
2970
 
2961
- self.gridLayout_18.addWidget(self.opf_time_grouping_comboBox, 1, 1, 1, 1)
2971
+ self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox, 6, 0, 1, 2)
2962
2972
 
2963
- self.mip_solver_comboBox = QComboBox(self.groupBox)
2964
- self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox")
2965
- self.mip_solver_comboBox.setFont(font7)
2973
+ self.opfZonalGroupByComboBox = QComboBox(self.groupBox)
2974
+ self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox")
2975
+ self.opfZonalGroupByComboBox.setFont(font7)
2966
2976
 
2967
- self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1)
2977
+ self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1)
2968
2978
 
2969
- self.fixOpfCheckBox = QCheckBox(self.groupBox)
2970
- self.fixOpfCheckBox.setObjectName(u"fixOpfCheckBox")
2971
- self.fixOpfCheckBox.setFont(font7)
2979
+ self.save_mip_checkBox = QCheckBox(self.groupBox)
2980
+ self.save_mip_checkBox.setObjectName(u"save_mip_checkBox")
2981
+ self.save_mip_checkBox.setFont(font7)
2972
2982
 
2973
- self.gridLayout_18.addWidget(self.fixOpfCheckBox, 8, 0, 1, 2)
2983
+ self.gridLayout_18.addWidget(self.save_mip_checkBox, 12, 0, 1, 2)
2974
2984
 
2975
- self.considerContingenciesOpfCheckBox = QCheckBox(self.groupBox)
2976
- self.considerContingenciesOpfCheckBox.setObjectName(u"considerContingenciesOpfCheckBox")
2977
- self.considerContingenciesOpfCheckBox.setFont(font7)
2985
+ self.label_132 = QLabel(self.groupBox)
2986
+ self.label_132.setObjectName(u"label_132")
2978
2987
 
2979
- self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox, 6, 0, 1, 2)
2988
+ self.gridLayout_18.addWidget(self.label_132, 4, 0, 1, 2)
2980
2989
 
2981
2990
  self.label_4 = QLabel(self.groupBox)
2982
2991
  self.label_4.setObjectName(u"label_4")
@@ -2984,15 +2993,17 @@ class Ui_mainWindow(object):
2984
2993
 
2985
2994
  self.gridLayout_18.addWidget(self.label_4, 1, 0, 1, 1)
2986
2995
 
2987
- self.save_mip_checkBox = QCheckBox(self.groupBox)
2988
- self.save_mip_checkBox.setObjectName(u"save_mip_checkBox")
2989
- self.save_mip_checkBox.setFont(font7)
2996
+ self.label_103 = QLabel(self.groupBox)
2997
+ self.label_103.setObjectName(u"label_103")
2998
+ self.label_103.setFont(font7)
2990
2999
 
2991
- self.gridLayout_18.addWidget(self.save_mip_checkBox, 11, 0, 1, 2)
3000
+ self.gridLayout_18.addWidget(self.label_103, 2, 0, 1, 1)
2992
3001
 
2993
- self.verticalSpacer_18 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
3002
+ self.mip_solver_comboBox = QComboBox(self.groupBox)
3003
+ self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox")
3004
+ self.mip_solver_comboBox.setFont(font7)
2994
3005
 
2995
- self.gridLayout_18.addItem(self.verticalSpacer_18, 12, 0, 1, 1)
3006
+ self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1)
2996
3007
 
2997
3008
  self.label_104 = QLabel(self.groupBox)
2998
3009
  self.label_104.setObjectName(u"label_104")
@@ -3000,26 +3011,21 @@ class Ui_mainWindow(object):
3000
3011
 
3001
3012
  self.gridLayout_18.addWidget(self.label_104, 3, 0, 1, 1)
3002
3013
 
3003
- self.label_103 = QLabel(self.groupBox)
3004
- self.label_103.setObjectName(u"label_103")
3005
- self.label_103.setFont(font7)
3014
+ self.verticalSpacer_18 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
3006
3015
 
3007
- self.gridLayout_18.addWidget(self.label_103, 2, 0, 1, 1)
3016
+ self.gridLayout_18.addItem(self.verticalSpacer_18, 13, 0, 1, 1)
3008
3017
 
3009
- self.opfContingencyToleranceSpinBox = QDoubleSpinBox(self.groupBox)
3010
- self.opfContingencyToleranceSpinBox.setObjectName(u"opfContingencyToleranceSpinBox")
3011
- self.opfContingencyToleranceSpinBox.setFont(font7)
3012
- self.opfContingencyToleranceSpinBox.setDecimals(4)
3013
- self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000)
3014
- self.opfContingencyToleranceSpinBox.setValue(0.050000000000000)
3018
+ self.opf_time_grouping_comboBox = QComboBox(self.groupBox)
3019
+ self.opf_time_grouping_comboBox.setObjectName(u"opf_time_grouping_comboBox")
3020
+ self.opf_time_grouping_comboBox.setFont(font7)
3015
3021
 
3016
- self.gridLayout_18.addWidget(self.opfContingencyToleranceSpinBox, 3, 1, 1, 1)
3022
+ self.gridLayout_18.addWidget(self.opf_time_grouping_comboBox, 1, 1, 1, 1)
3017
3023
 
3018
- self.opfGEPCheckBox = QCheckBox(self.groupBox)
3019
- self.opfGEPCheckBox.setObjectName(u"opfGEPCheckBox")
3020
- self.opfGEPCheckBox.setFont(font7)
3024
+ self.useGslkAsCostsOpfCheckBox = QCheckBox(self.groupBox)
3025
+ self.useGslkAsCostsOpfCheckBox.setObjectName(u"useGslkAsCostsOpfCheckBox")
3026
+ self.useGslkAsCostsOpfCheckBox.setFont(font7)
3021
3027
 
3022
- self.gridLayout_18.addWidget(self.opfGEPCheckBox, 7, 0, 1, 2)
3028
+ self.gridLayout_18.addWidget(self.useGslkAsCostsOpfCheckBox, 7, 0, 1, 2)
3023
3029
 
3024
3030
 
3025
3031
  self.gridLayout_10.addWidget(self.groupBox, 3, 3, 1, 1)
@@ -4799,7 +4805,7 @@ class Ui_mainWindow(object):
4799
4805
  mainWindow.setCentralWidget(self.centralwidget)
4800
4806
  self.menuBar = QMenuBar(mainWindow)
4801
4807
  self.menuBar.setObjectName(u"menuBar")
4802
- self.menuBar.setGeometry(QRect(0, 0, 1198, 21))
4808
+ self.menuBar.setGeometry(QRect(0, 0, 1390, 37))
4803
4809
  self.menuBar.setFont(font)
4804
4810
  self.menuProject = QMenu(self.menuBar)
4805
4811
  self.menuProject.setObjectName(u"menuProject")
@@ -5851,40 +5857,44 @@ class Ui_mainWindow(object):
5851
5857
  #endif // QT_CONFIG(tooltip)
5852
5858
  self.ips_control_Qlimits_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control Q limits", None))
5853
5859
  self.groupBox.setTitle(QCoreApplication.translate("mainWindow", u"Linear settings", None))
5854
- self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None))
5855
5860
  #if QT_CONFIG(tooltip)
5856
- self.opfUnitCommitmentCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply unit commitment technique", None))
5861
+ self.opfGEPCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply generation expansion planning", None))
5857
5862
  #endif // QT_CONFIG(tooltip)
5858
- self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None))
5859
- self.label_132.setText("")
5863
+ self.opfGEPCheckBox.setText(QCoreApplication.translate("mainWindow", u"Generation expansion planning", None))
5860
5864
  #if QT_CONFIG(tooltip)
5861
- self.opf_time_grouping_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>Choose the time grouping to possibly shorten the solution time.</p><p>This splits the time series by week, month, etc. and the subproblems are solved sequentially.</p></body></html>", None))
5865
+ self.fixOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Fix infeasible problems and rey with the relaxed problem. Applies to OPF and NTC", None))
5862
5866
  #endif // QT_CONFIG(tooltip)
5867
+ self.fixOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Fix infeasibilities and retry", None))
5868
+ self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None))
5863
5869
  #if QT_CONFIG(tooltip)
5864
- self.mip_solver_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Choose the external mixed integer programming solver", None))
5870
+ self.opfUnitCommitmentCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply unit commitment technique", None))
5865
5871
  #endif // QT_CONFIG(tooltip)
5872
+ self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None))
5866
5873
  #if QT_CONFIG(tooltip)
5867
- self.fixOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Fix infeasible problems and rey with the relaxed problem. Applies to OPF and NTC", None))
5874
+ self.opfContingencyToleranceSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"LODF matrix tolerance choosing contingencies", None))
5868
5875
  #endif // QT_CONFIG(tooltip)
5869
- self.fixOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Fix infeasibilities and retry", None))
5870
5876
  #if QT_CONFIG(tooltip)
5871
5877
  self.considerContingenciesOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Consider the contingencies when dispatching", None))
5872
5878
  #endif // QT_CONFIG(tooltip)
5873
5879
  self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Compute contingencies", None))
5874
- self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None))
5875
5880
  #if QT_CONFIG(tooltip)
5876
5881
  self.save_mip_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>The program will save the MIP file in .lp format in the user VeraGrid folder before running a linear optimization study.</p></body></html>", None))
5877
5882
  #endif // QT_CONFIG(tooltip)
5878
5883
  self.save_mip_checkBox.setText(QCoreApplication.translate("mainWindow", u"Save MIP file", None))
5879
- self.label_104.setText(QCoreApplication.translate("mainWindow", u"Contingency tolerance", None))
5884
+ self.label_132.setText("")
5885
+ self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None))
5880
5886
  self.label_103.setText(QCoreApplication.translate("mainWindow", u"Zone grouping", None))
5881
5887
  #if QT_CONFIG(tooltip)
5882
- self.opfContingencyToleranceSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"LODF matrix tolerance choosing contingencies", None))
5888
+ self.mip_solver_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Choose the external mixed integer programming solver", None))
5883
5889
  #endif // QT_CONFIG(tooltip)
5890
+ self.label_104.setText(QCoreApplication.translate("mainWindow", u"Contingency tolerance", None))
5884
5891
  #if QT_CONFIG(tooltip)
5885
- self.opfGEPCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply generation expansion planning", None))
5892
+ self.opf_time_grouping_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>Choose the time grouping to possibly shorten the solution time.</p><p>This splits the time series by week, month, etc. and the subproblems are solved sequentially.</p></body></html>", None))
5886
5893
  #endif // QT_CONFIG(tooltip)
5887
- self.opfGEPCheckBox.setText(QCoreApplication.translate("mainWindow", u"Generation expansion planning", None))
5894
+ #if QT_CONFIG(tooltip)
5895
+ self.useGslkAsCostsOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Instead of using the generation, loads cost for dispatching, use the GLSK (Generation, Load Shift Keys)", None))
5896
+ #endif // QT_CONFIG(tooltip)
5897
+ self.useGslkAsCostsOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Use GSLK as costs", None))
5888
5898
  self.label_73.setText(QCoreApplication.translate("mainWindow", u"Optimal Power Flow", None))
5889
5899
  self.groupBox_2.setTitle(QCoreApplication.translate("mainWindow", u"General settings", None))
5890
5900
  self.label_128.setText(QCoreApplication.translate("mainWindow", u"Verbose", None))
@@ -74,9 +74,9 @@ class VideoExportWorker(QtCore.QThread):
74
74
 
75
75
  self.filename = filename
76
76
  self.diagram = diagram
77
- self.fps = fps
78
- self.start_idx = start_idx
79
- self.end_idx = end_idx
77
+ self.fps: int = fps
78
+ self.start_idx: int = start_idx
79
+ self.end_idx: int = end_idx
80
80
  self.current_study = current_study
81
81
  self.grid_colour_function: Callable[[ALL_EDITORS, str, int, bool], None] = grid_colour_function
82
82
 
@@ -273,6 +273,7 @@ class DiagramsMain(CompiledArraysMain):
273
273
  self.ui.palette_comboBox.currentTextChanged.connect(self.set_diagrams_palette)
274
274
  self.ui.tile_provider_comboBox.currentTextChanged.connect(self.set_diagrams_map_tile_provider)
275
275
 
276
+ # TODO: this lambda calls to colour twice is the simulation is run the first time
276
277
  self.ui.available_results_to_color_comboBox.currentTextChanged.connect(lambda: self.colour_diagrams(False))
277
278
 
278
279
  # sliders
@@ -1231,6 +1232,8 @@ class DiagramsMain(CompiledArraysMain):
1231
1232
  """
1232
1233
  nbus = self.circuit.get_bus_number()
1233
1234
  nbr = self.circuit.get_branch_number(add_vsc=False, add_hvdc=False, add_switch=True)
1235
+ nhvdc = self.circuit.get_hvdc_number()
1236
+ nvsc = self.circuit.get_vsc_number()
1234
1237
 
1235
1238
  bus_active = self.circuit.get_bus_actives(t_idx=t_idx)
1236
1239
  br_active = self.circuit.get_branch_actives(t_idx=t_idx, add_vsc=False, add_hvdc=False, add_switch=True)
@@ -1245,6 +1248,14 @@ class DiagramsMain(CompiledArraysMain):
1245
1248
  loadings=np.zeros(nbr, dtype=complex),
1246
1249
  br_active=br_active,
1247
1250
  hvdc_active=hvdc_active,
1251
+ hvdc_loading=np.zeros(nhvdc, dtype=float),
1252
+ hvdc_Pf=np.zeros(nhvdc, dtype=float),
1253
+ hvdc_Pt=np.zeros(nhvdc, dtype=float),
1254
+ vsc_active=vsc_active,
1255
+ vsc_loading=np.zeros(nvsc, dtype=float),
1256
+ vsc_Pf=np.zeros(nvsc, dtype=float),
1257
+ vsc_Pt=np.zeros(nvsc, dtype=float),
1258
+ vsc_Qt=np.zeros(nvsc, dtype=float),
1248
1259
  use_flow_based_width=use_flow_based_width,
1249
1260
  min_branch_width=min_branch_width,
1250
1261
  max_branch_width=max_branch_width,
@@ -6,7 +6,7 @@ import datetime
6
6
  _current_year_ = datetime.datetime.now().year
7
7
 
8
8
  # remember to keep a three-number version!!!
9
- __VeraGrid_VERSION__ = "5.4.7"
9
+ __VeraGrid_VERSION__ = "5.4.8"
10
10
 
11
11
  url = 'https://github.com/SanPen/VeraGrid'
12
12