GridCal 5.1.6__tar.gz → 5.1.7__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 (228) hide show
  1. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CascadingSteps/cascading_steps.py +4 -4
  2. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/diagram_editor_widget.py +2 -1
  3. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +1 -1
  4. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Results/results.py +1 -1
  5. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +2 -1
  6. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/base_gui.py +1 -1
  7. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/io.py +16 -7
  8. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/simulations.py +45 -57
  9. GridCal-5.1.7/GridCal/Session/session.py +683 -0
  10. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/__version__.py +1 -1
  11. {GridCal-5.1.6 → GridCal-5.1.7}/PKG-INFO +1 -1
  12. GridCal-5.1.6/GridCal/Session/session.py +0 -598
  13. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/ExecuteGridCal.py +0 -0
  14. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
  15. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
  16. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/AboutDialogue/gui.py +0 -0
  17. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
  18. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
  19. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
  20. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Analysis/__init__.py +0 -0
  21. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Analysis/gui.py +0 -0
  22. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Analysis/icons_rc.py +0 -0
  23. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
  24. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
  25. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
  26. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CascadingSteps/gui.py +0 -0
  27. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
  28. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ConsoleWidget.py +0 -0
  29. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
  30. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  31. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
  32. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
  33. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  34. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
  35. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  36. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
  37. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
  38. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
  39. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/__init__.py +0 -0
  40. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/dc_line_graphics.py +0 -0
  41. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/hvdc_graphics.py +0 -0
  42. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/line_editor.py +0 -0
  43. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/line_graphics.py +0 -0
  44. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/line_graphics_template.py +0 -0
  45. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/series_reactance_graphics.py +0 -0
  46. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/switch_graphics.py +0 -0
  47. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/transformer2w_graphics.py +0 -0
  48. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/transformer3w_graphics.py +0 -0
  49. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/transformer_editor.py +0 -0
  50. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/upfc_graphics.py +0 -0
  51. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/vsc_graphics.py +0 -0
  52. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/winding_graphics.py +0 -0
  53. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/__init__.py +0 -0
  54. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_node_graphics.py +0 -0
  55. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_p2x_graphics.py +0 -0
  56. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_path_graphics.py +0 -0
  57. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_pump_graphics.py +0 -0
  58. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_turbine_graphics.py +0 -0
  59. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/__init__.py +0 -0
  60. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/battery_graphics.py +0 -0
  61. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/controllable_shunt_graphics.py +0 -0
  62. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/current_injection_graphics.py +0 -0
  63. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/external_grid_graphics.py +0 -0
  64. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/generator_graphics.py +0 -0
  65. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/injections_template_graphics.py +0 -0
  66. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/load_graphics.py +0 -0
  67. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/shunt_graphics.py +0 -0
  68. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/static_generator_graphics.py +0 -0
  69. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/__init__.py +0 -0
  70. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/bus_graphics.py +0 -0
  71. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/busbar_graphics.py +0 -0
  72. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/cn_graphics.py +0 -0
  73. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/__init__.py +0 -0
  74. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/generic_graphics.py +0 -0
  75. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/matplotlibwidget.py +0 -0
  76. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/DiagramEditorWidget/terminal_item.py +0 -0
  77. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/__init__.py +0 -0
  78. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/image_layer.py +0 -0
  79. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/layer_types.py +0 -0
  80. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/place.py +0 -0
  81. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/point_layer.py +0 -0
  82. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/polygon_layer.py +0 -0
  83. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/polyline_layer.py +0 -0
  84. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Layers/text_layer.py +0 -0
  85. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Schema/Connector.py +0 -0
  86. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Schema/Line.py +0 -0
  87. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Schema/Nodes.py +0 -0
  88. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Schema/SchemaManager.py +0 -0
  89. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Schema/Substations.py +0 -0
  90. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Schema/__init__.py +0 -0
  91. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/__init__.py +0 -0
  92. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py +0 -0
  93. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/cartodb.py +0 -0
  94. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/gmt_local.py +0 -0
  95. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapbox.py +0 -0
  96. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapquest.py +0 -0
  97. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py +0 -0
  98. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py +0 -0
  99. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py +0 -0
  100. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py +0 -0
  101. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  102. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  103. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  104. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  105. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  106. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  107. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  108. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
  109. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
  110. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/logger.py +0 -0
  111. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/map_events.py +0 -0
  112. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  113. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/MapWidget/node_widget.py +0 -0
  114. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/__init__.py +0 -0
  115. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
  116. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
  117. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GeneralDialogues.py +0 -0
  118. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GridGenerator/__init__.py +0 -0
  119. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  120. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GridGenerator/gui.py +0 -0
  121. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
  122. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
  123. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/GuiFunctions.py +0 -0
  124. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
  125. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
  126. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
  127. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
  128. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
  129. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/ConsoleLog.py +0 -0
  130. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
  131. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/GridCalMain.py +0 -0
  132. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/MainWindow.py +0 -0
  133. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
  134. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  135. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
  136. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
  137. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
  138. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
  139. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  140. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
  141. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  142. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  143. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
  144. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/__init__.py +0 -0
  145. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/icons_rc.py +0 -0
  146. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/object_select_window.py +0 -0
  147. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Main/update_gui_file.py +0 -0
  148. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
  149. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
  150. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  151. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
  152. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
  153. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
  154. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
  155. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  156. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  157. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
  158. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
  159. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
  160. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  161. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
  162. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
  163. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
  164. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
  165. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
  166. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
  167. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  168. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  169. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
  170. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
  171. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
  172. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  173. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  174. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
  175. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SyncDialogue/gui.py +0 -0
  176. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
  177. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
  178. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
  179. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SystemScaler/__init__.py +0 -0
  180. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
  181. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
  182. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
  183. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
  184. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  185. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
  186. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/gui.py +0 -0
  187. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
  188. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
  189. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/test_.py +0 -0
  190. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
  191. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
  192. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  193. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
  194. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
  195. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
  196. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Visualization/__init__.py +0 -0
  197. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Visualization/palettes.py +0 -0
  198. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Visualization/visualization.py +0 -0
  199. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Widgets/__init__.py +0 -0
  200. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
  201. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
  202. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
  203. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
  204. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
  205. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
  206. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  207. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/__init__.py +0 -0
  208. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/messages.py +0 -0
  209. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/plot_config.py +0 -0
  210. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/themes.py +0 -0
  211. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/update_gui_all.py +0 -0
  212. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Gui/update_gui_common.py +0 -0
  213. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/LICENSE.txt +0 -0
  214. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Session/__init__.py +0 -0
  215. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Session/export_results_driver.py +0 -0
  216. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Session/file_handler.py +0 -0
  217. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Session/results_model.py +0 -0
  218. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/Session/synchronization_driver.py +0 -0
  219. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/__init__.py +0 -0
  220. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/data/__init__.py +0 -0
  221. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/data/cables.csv +0 -0
  222. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/data/sequence_lines.csv +0 -0
  223. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/data/transformers.csv +0 -0
  224. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/data/wires.csv +0 -0
  225. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/templates.py +0 -0
  226. {GridCal-5.1.6 → GridCal-5.1.7}/GridCal/update.py +0 -0
  227. {GridCal-5.1.6 → GridCal-5.1.7}/setup.cfg +0 -0
  228. {GridCal-5.1.6 → GridCal-5.1.7}/setup.py +0 -0
@@ -67,7 +67,7 @@ class CascadingStepsGUI(QtWidgets.QDialog):
67
67
  options = self.gridcal_main.get_selected_power_flow_options()
68
68
  options.solver_type = SolverType.LM
69
69
  max_isl = self.gridcal_main.ui.cascading_islands_spinBox.value()
70
- drv = sim.Cascading(self.gridcal_main.circuit.copy(), options, max_additional_islands=max_isl)
70
+ drv = sim.CascadingDriver(self.gridcal_main.circuit.copy(), options, max_additional_islands=max_isl)
71
71
 
72
72
  self.gridcal_main.session.run(drv,
73
73
  post_func=self.gridcal_main.post_cascade,
@@ -101,9 +101,9 @@ class CascadingStepsGUI(QtWidgets.QDialog):
101
101
  max_isl = self.gridcal_main.ui.cascading_islands_spinBox.value()
102
102
  n_lsh_samples = self.gridcal_main.ui.max_iterations_stochastic_spinBox.value()
103
103
 
104
- drv = sim.Cascading(self.gridcal_main.circuit.copy(), options,
105
- max_additional_islands=max_isl,
106
- n_lhs_samples_=n_lsh_samples)
104
+ drv = sim.CascadingDriver(self.gridcal_main.circuit.copy(), options,
105
+ max_additional_islands=max_isl,
106
+ n_lhs_samples_=n_lsh_samples)
107
107
 
108
108
  self.gridcal_main.session.run(drv,
109
109
  post_func=self.gridcal_main.post_cascade,
@@ -937,7 +937,8 @@ class DiagramEditorWidget(QSplitter):
937
937
  # add fluid node reference for later
938
938
  # fluid_node_dict[idtag] = graphic_object
939
939
  self.graphics_manager.add_device(elm=location.api_object, graphic=graphic_object)
940
- self.graphics_manager.add_device(elm=location.api_object.bus, graphic=graphic_object)
940
+ if location.api_object.bus is not None:
941
+ self.graphics_manager.add_device(elm=location.api_object.bus, graphic=graphic_object)
941
942
 
942
943
  # map the internal bus
943
944
  # if location.api_object.bus is not None:
@@ -649,7 +649,7 @@ class DiagramsMain(CompiledArraysMain):
649
649
  else:
650
650
  info_msg(f"{current_study} only has values for the snapshot")
651
651
 
652
- elif current_study == sim.ContingencyAnalysisTimeSeries.tpe.value:
652
+ elif current_study == sim.ContingencyAnalysisTimeSeriesDriver.tpe.value:
653
653
  if t_idx is not None:
654
654
  results: sim.ContingencyAnalysisTimeSeriesResults = self.session.get_results(
655
655
  sim.SimulationTypes.ContingencyAnalysisTS_run)
@@ -297,7 +297,7 @@ class ResultsMain(SimulationsMain):
297
297
  """
298
298
  Copy the results from the OPF time series to the profiles
299
299
  """
300
- drv, results = self.session.get_driver_results(sim.SimulationTypes.OPFTimeSeries_run)
300
+ results = self.session.optimal_power_flow_ts
301
301
 
302
302
  if results is not None:
303
303
 
@@ -293,7 +293,8 @@ class ConfigurationMain(ResultsMain):
293
293
  },
294
294
  "file": {
295
295
  "store_results_in_file": self.ui.saveResultsCheckBox,
296
- "current_boundary_set": self.current_boundary_set
296
+ "current_boundary_set": self.current_boundary_set,
297
+ "cgmes_selected_version": self.ui.cgmes_version_comboBox
297
298
  }
298
299
  }
299
300
 
@@ -650,7 +650,7 @@ class BaseMainGui(QMainWindow):
650
650
  branches = self.circuit.get_branches()
651
651
 
652
652
  if len(branches) > 0:
653
- pf_drv, pf_results = self.session.get_driver_results(sim.SimulationTypes.PowerFlow_run)
653
+ pf_results = self.session.power_flow()
654
654
 
655
655
  if pf_results is not None:
656
656
  factor = self.ui.branch_rating_doubleSpinBox.value()
@@ -37,6 +37,7 @@ from GridCalEngine.Compilers.circuit_to_newton_pa import NEWTON_PA_AVAILABLE
37
37
  from GridCalEngine.Compilers.circuit_to_pgm import PGM_AVAILABLE
38
38
  from GridCalEngine.IO.gridcal.contingency_parser import import_contingencies_from_json, export_contingencies_json_file
39
39
  from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at
40
+ from GridCalEngine.enumerations import CGMESVersions
40
41
 
41
42
 
42
43
  class IoMain(ConfigurationMain):
@@ -60,6 +61,9 @@ class IoMain(ConfigurationMain):
60
61
  '.ejson2', '.ejson3',
61
62
  '.xml', '.rawx', '.zip', '.dpx', '.epc']
62
63
 
64
+ self.cgmes_version_dict = {x.value: x for x in [CGMESVersions.v2_4_15, CGMESVersions.v3_0_0]}
65
+ self.ui.cgmes_version_comboBox.setModel(gf.get_list_model(list(self.cgmes_version_dict.keys())))
66
+
63
67
  self.ui.actionNew_project.triggered.connect(self.new_project)
64
68
  self.ui.actionOpen_file.triggered.connect(self.open_file)
65
69
  self.ui.actionAdd_circuit.triggered.connect(self.add_circuit)
@@ -518,17 +522,20 @@ class IoMain(ConfigurationMain):
518
522
  """
519
523
 
520
524
  if self.ui.saveResultsCheckBox.isChecked():
521
- sessions = [self.session]
525
+ sessions_data = self.session.get_save_data()
522
526
  else:
523
- sessions = list()
527
+ sessions_data = list()
524
528
 
525
529
  # get json files to store
526
530
  json_files = {"gui_config": self.get_gui_config_data()}
527
531
 
532
+ cgmes_version = self.cgmes_version_dict[self.ui.cgmes_version_comboBox.currentText()]
533
+
528
534
  options = filedrv.FileSavingOptions(cgmes_boundary_set=self.current_boundary_set,
529
535
  simulation_drivers=self.get_simulations(),
530
- sessions=sessions,
531
- dictionary_of_json_files=json_files)
536
+ sessions_data=sessions_data,
537
+ dictionary_of_json_files=json_files,
538
+ cgmes_version=cgmes_version)
532
539
 
533
540
  return options
534
541
 
@@ -759,10 +766,12 @@ class IoMain(ConfigurationMain):
759
766
  session_name = path[0]
760
767
  study_name = path[1]
761
768
  if self.last_file_driver is not None:
762
- data_dict, json_files = self.last_file_driver.load_session_objects(session_name=session_name,
763
- study_name=study_name)
769
+ data_dict = self.last_file_driver.load_session_objects(session_name=session_name,
770
+ study_name=study_name)
764
771
 
765
- self.session.register_driver_from_disk_data(self.circuit, study_name, data_dict)
772
+ self.session.register_driver_from_disk_data(grid=self.circuit,
773
+ study_name=study_name,
774
+ data_dict=data_dict)
766
775
 
767
776
  self.update_available_results()
768
777
  else:
@@ -630,7 +630,7 @@ class SimulationsMain(TimeEventsMain):
630
630
  """
631
631
  if use_opf:
632
632
 
633
- drv, opf_time_series_results = self.session.get_driver_results(SimulationTypes.OPFTimeSeries_run)
633
+ opf_time_series_results = self.session.optimal_power_flow_ts
634
634
 
635
635
  if opf_time_series_results is None:
636
636
  if use_opf:
@@ -765,16 +765,12 @@ class SimulationsMain(TimeEventsMain):
765
765
  """
766
766
  # update the results in the circuit structures
767
767
 
768
- drv, results = self.session.get_driver_results(sim.SimulationTypes.PowerFlow_run)
768
+ results = self.session.power_flow
769
769
 
770
770
  if results is not None:
771
771
  self.ui.progress_label.setText('Colouring power flow results in the grid...')
772
- # QtGui.QGuiApplication.processEvents()
773
-
774
772
  self.remove_simulation(sim.SimulationTypes.PowerFlow_run)
775
-
776
773
  self.update_available_results()
777
-
778
774
  self.colour_diagrams()
779
775
 
780
776
  else:
@@ -793,7 +789,7 @@ class SimulationsMain(TimeEventsMain):
793
789
  if len(self.circuit.buses) > 0:
794
790
  if not self.session.is_this_running(sim.SimulationTypes.ShortCircuit_run):
795
791
 
796
- pf_drv, pf_results = self.session.get_driver_results(sim.SimulationTypes.PowerFlow_run)
792
+ pf_results = self.session.power_flow
797
793
 
798
794
  if pf_results is not None:
799
795
 
@@ -861,15 +857,13 @@ class SimulationsMain(TimeEventsMain):
861
857
 
862
858
  """
863
859
  # update the results in the circuit structures
864
- drv, results = self.session.get_driver_results(sim.SimulationTypes.ShortCircuit_run)
865
- self.remove_simulation(sim.SimulationTypes.ShortCircuit_run)
860
+ results = self.session.short_circuit
861
+
866
862
  if results is not None:
867
863
 
868
864
  self.ui.progress_label.setText('Colouring short circuit results in the grid...')
869
- QtGui.QGuiApplication.processEvents()
870
-
865
+ self.remove_simulation(sim.SimulationTypes.ShortCircuit_run)
871
866
  self.update_available_results()
872
-
873
867
  self.colour_diagrams()
874
868
 
875
869
  else:
@@ -927,12 +921,10 @@ class SimulationsMain(TimeEventsMain):
927
921
  Returns:
928
922
 
929
923
  """
930
- drv, results = self.session.get_driver_results(sim.SimulationTypes.LinearAnalysis_run)
931
-
932
924
  self.remove_simulation(sim.SimulationTypes.LinearAnalysis_run)
933
925
 
934
926
  # update the results in the circuit structures
935
- # if not drv.__cancel__:
927
+ results = self.session.linear_power_flow
936
928
  if results is not None:
937
929
 
938
930
  self.ui.progress_label.setText('Colouring PTDF results in the grid...')
@@ -982,10 +974,10 @@ class SimulationsMain(TimeEventsMain):
982
974
  Returns:
983
975
 
984
976
  """
985
- drv, results = self.session.get_driver_results(sim.SimulationTypes.LinearAnalysis_TS_run)
986
977
  self.remove_simulation(sim.SimulationTypes.LinearAnalysis_TS_run)
987
978
 
988
979
  # update the results in the circuit structures
980
+ results = self.session.linear_power_flow_ts
989
981
  if results is not None:
990
982
 
991
983
  # expand the clusters
@@ -1071,11 +1063,10 @@ class SimulationsMain(TimeEventsMain):
1071
1063
  Returns:
1072
1064
 
1073
1065
  """
1074
- drv, results = self.session.get_driver_results(sim.SimulationTypes.ContingencyAnalysis_run)
1075
1066
  self.remove_simulation(sim.SimulationTypes.ContingencyAnalysis_run)
1076
1067
 
1077
1068
  # update the results in the circuit structures
1078
- # if not drv.__cancel__:
1069
+ results = self.session.contingency
1079
1070
  if results is not None:
1080
1071
 
1081
1072
  self.ui.progress_label.setText('Colouring contingency analysis results in the grid...')
@@ -1106,11 +1097,11 @@ class SimulationsMain(TimeEventsMain):
1106
1097
 
1107
1098
  self.LOCK()
1108
1099
 
1109
- drv = sim.ContingencyAnalysisTimeSeries(grid=self.circuit,
1110
- options=self.get_contingency_options(),
1111
- time_indices=self.get_time_indices(),
1112
- clustering_results=self.get_clustering_results(),
1113
- engine=self.get_preferred_engine())
1100
+ drv = sim.ContingencyAnalysisTimeSeriesDriver(grid=self.circuit,
1101
+ options=self.get_contingency_options(),
1102
+ time_indices=self.get_time_indices(),
1103
+ clustering_results=self.get_clustering_results(),
1104
+ engine=self.get_preferred_engine())
1114
1105
 
1115
1106
  self.session.run(drv,
1116
1107
  post_func=self.post_contingency_analysis_ts,
@@ -1133,11 +1124,10 @@ class SimulationsMain(TimeEventsMain):
1133
1124
  Returns:
1134
1125
 
1135
1126
  """
1136
- drv, results = self.session.get_driver_results(sim.SimulationTypes.ContingencyAnalysisTS_run)
1137
1127
  self.remove_simulation(sim.SimulationTypes.ContingencyAnalysisTS_run)
1138
1128
 
1139
1129
  # update the results in the circuit structures
1140
- # if not drv.__cancel__:
1130
+ results = self.session.contingency_ts
1141
1131
  if results is not None:
1142
1132
 
1143
1133
  # expand the clusters
@@ -1184,7 +1174,7 @@ class SimulationsMain(TimeEventsMain):
1184
1174
  sense_hvdc_br = np.array([sense for i, bus, sense in lst_hvdc_br])
1185
1175
 
1186
1176
  if self.ui.usePfValuesForAtcCheckBox.isChecked():
1187
- pf_drv, pf_results = self.session.get_driver_results(sim.SimulationTypes.PowerFlow_run)
1177
+ pf_results = self.session.power_flow
1188
1178
  if pf_results is not None:
1189
1179
  Pf = pf_results.Sf.real
1190
1180
  Pf_hvdc = pf_results.hvdc_Pf.real
@@ -1250,11 +1240,10 @@ class SimulationsMain(TimeEventsMain):
1250
1240
  Returns:
1251
1241
 
1252
1242
  """
1253
- drv, results = self.session.get_driver_results(sim.SimulationTypes.NetTransferCapacity_run)
1254
1243
  self.remove_simulation(sim.SimulationTypes.NetTransferCapacity_run)
1244
+ results = self.session.net_transfer_capacity
1255
1245
 
1256
1246
  # update the results in the circuit structures
1257
- # if not drv.__cancel__:
1258
1247
  if results is not None:
1259
1248
 
1260
1249
  self.ui.progress_label.setText('Colouring ATC results in the grid...')
@@ -1301,7 +1290,7 @@ class SimulationsMain(TimeEventsMain):
1301
1290
  sense_hvdc_br = np.array([sense for i, bus, sense in lst_hvdc_br])
1302
1291
 
1303
1292
  if self.ui.usePfValuesForAtcCheckBox.isChecked():
1304
- pf_drv, pf_results = self.session.get_driver_results(sim.SimulationTypes.TimeSeries_run)
1293
+ pf_results = self.session.power_flow_ts
1305
1294
  if pf_results is not None:
1306
1295
  Pf = pf_results.Sf.real
1307
1296
  Pf_hvdc = pf_results.hvdc_Pf.real
@@ -1372,11 +1361,10 @@ class SimulationsMain(TimeEventsMain):
1372
1361
  Returns:
1373
1362
 
1374
1363
  """
1375
- drv, results = self.session.get_driver_results(sim.SimulationTypes.NetTransferCapacityTS_run)
1376
1364
  self.remove_simulation(sim.SimulationTypes.NetTransferCapacityTS_run)
1377
1365
 
1378
1366
  # update the results in the circuit structures
1379
- # if not drv.__cancel__:
1367
+ results = self.session.net_transfer_capacity_ts
1380
1368
  if results is not None:
1381
1369
 
1382
1370
  # expand the clusters
@@ -1401,7 +1389,7 @@ class SimulationsMain(TimeEventsMain):
1401
1389
 
1402
1390
  if len(self.circuit.buses) > 0:
1403
1391
 
1404
- pf_drv, pf_results = self.session.get_driver_results(sim.SimulationTypes.PowerFlow_run)
1392
+ pf_drv, pf_results = self.session.power_flow_driver_and_results
1405
1393
 
1406
1394
  if pf_results is not None:
1407
1395
 
@@ -1503,7 +1491,7 @@ class SimulationsMain(TimeEventsMain):
1503
1491
  pf_options = self.get_selected_power_flow_options()
1504
1492
 
1505
1493
  # create object
1506
- drv = sim.ContinuationPowerFlowDriver(circuit=self.circuit,
1494
+ drv = sim.ContinuationPowerFlowDriver(grid=self.circuit,
1507
1495
  options=vc_options,
1508
1496
  inputs=vc_inputs,
1509
1497
  pf_options=pf_options)
@@ -1521,7 +1509,7 @@ class SimulationsMain(TimeEventsMain):
1521
1509
  # lock the UI
1522
1510
  self.LOCK()
1523
1511
 
1524
- pf_drv.run_at(start_idx)
1512
+ pf_drv.run_at(start_idx) # TODO: inspect this
1525
1513
 
1526
1514
  # get the power Injections array to get the initial and end points
1527
1515
  Sprof = self.circuit.get_Sbus_prof()
@@ -1532,7 +1520,7 @@ class SimulationsMain(TimeEventsMain):
1532
1520
  pf_options = self.get_selected_power_flow_options()
1533
1521
 
1534
1522
  # create object
1535
- drv = sim.ContinuationPowerFlowDriver(circuit=self.circuit,
1523
+ drv = sim.ContinuationPowerFlowDriver(grid=self.circuit,
1536
1524
  options=vc_options,
1537
1525
  inputs=vc_inputs,
1538
1526
  pf_options=pf_options)
@@ -1555,7 +1543,7 @@ class SimulationsMain(TimeEventsMain):
1555
1543
  Actions performed after the voltage stability. Launched by the thread after its execution
1556
1544
  :return:
1557
1545
  """
1558
- drv, results = self.session.get_driver_results(sim.SimulationTypes.ContinuationPowerFlow_run)
1546
+ results = self.session.continuation_power_flow
1559
1547
 
1560
1548
  if results is not None:
1561
1549
 
@@ -1620,7 +1608,7 @@ class SimulationsMain(TimeEventsMain):
1620
1608
  @return:
1621
1609
  """
1622
1610
 
1623
- drv, results = self.session.get_driver_results(sim.SimulationTypes.TimeSeries_run)
1611
+ results = self.session.power_flow_ts
1624
1612
 
1625
1613
  if results is not None:
1626
1614
 
@@ -1690,7 +1678,7 @@ class SimulationsMain(TimeEventsMain):
1690
1678
  @return:
1691
1679
  """
1692
1680
 
1693
- drv, results = self.session.get_driver_results(sim.SimulationTypes.StochasticPowerFlow)
1681
+ results = self.session.stochastic_power_flow
1694
1682
 
1695
1683
  if results is not None:
1696
1684
 
@@ -1712,10 +1700,9 @@ class SimulationsMain(TimeEventsMain):
1712
1700
  """
1713
1701
 
1714
1702
  # update the results in the circuit structures
1715
- drv, results = self.session.get_driver_results(sim.SimulationTypes.Cascade_run)
1716
-
1717
1703
  self.remove_simulation(sim.SimulationTypes.Cascade_run)
1718
1704
 
1705
+ results = self.session.cascade
1719
1706
  n = len(results.events)
1720
1707
 
1721
1708
  if n > 0:
@@ -1802,7 +1789,7 @@ class SimulationsMain(TimeEventsMain):
1802
1789
  ips_iterations = self.ui.ips_iterations_spinBox.value()
1803
1790
  ips_trust_radius = self.ui.ips_trust_radius_doubleSpinBox.value()
1804
1791
  ips_init_with_pf = self.ui.ips_initialize_with_pf_checkBox.isChecked()
1805
- pf_results = self.session.get_driver_results(SimulationTypes.PowerFlow_run)
1792
+ pf_results = self.session.power_flow
1806
1793
 
1807
1794
  options = sim.OptimalPowerFlowOptions(solver=solver,
1808
1795
  time_grouping=time_grouping,
@@ -1863,7 +1850,7 @@ class SimulationsMain(TimeEventsMain):
1863
1850
  """
1864
1851
  Actions to run after the OPF simulation
1865
1852
  """
1866
- drv, results = self.session.get_driver_results(sim.SimulationTypes.OPF_run)
1853
+ results = self.session.optimal_power_flow
1867
1854
 
1868
1855
  if results is not None:
1869
1856
 
@@ -1932,7 +1919,7 @@ class SimulationsMain(TimeEventsMain):
1932
1919
  Post OPF Time Series
1933
1920
  """
1934
1921
 
1935
- drv, results = self.session.get_driver_results(sim.SimulationTypes.OPFTimeSeries_run)
1922
+ results = self.session.optimal_power_flow_ts
1936
1923
 
1937
1924
  if results is not None:
1938
1925
 
@@ -1961,12 +1948,12 @@ class SimulationsMain(TimeEventsMain):
1961
1948
 
1962
1949
  if self.circuit.time_profile is not None:
1963
1950
 
1964
- drv, results = self.session.get_driver_results(sim.SimulationTypes.OPFTimeSeries_run)
1951
+ results = self.session.optimal_power_flow_ts
1965
1952
 
1966
1953
  if results is not None:
1967
1954
 
1968
- quit_msg = "Are you sure that you want overwrite the time events " \
1969
- "with the simulated by the OPF time series?"
1955
+ quit_msg = ("Are you sure that you want overwrite the time events "
1956
+ "with the simulated by the OPF time series?")
1970
1957
  reply = QtWidgets.QMessageBox.question(self, 'Message', quit_msg,
1971
1958
  QtWidgets.QMessageBox.StandardButton.Yes,
1972
1959
  QtWidgets.QMessageBox.StandardButton.No)
@@ -2072,7 +2059,7 @@ class SimulationsMain(TimeEventsMain):
2072
2059
  """
2073
2060
  Actions to run after the OPF simulation
2074
2061
  """
2075
- drv, results = self.session.get_driver_results(sim.SimulationTypes.OPF_NTC_run)
2062
+ results = self.session.optimal_net_transfer_capacity
2076
2063
 
2077
2064
  if results is not None:
2078
2065
  self.remove_simulation(sim.SimulationTypes.OPF_NTC_run)
@@ -2124,7 +2111,7 @@ class SimulationsMain(TimeEventsMain):
2124
2111
  Actions to run after the optimal net transfer capacity time series simulation
2125
2112
  """
2126
2113
 
2127
- drv, results = self.session.get_driver_results(sim.SimulationTypes.OPF_NTC_TS_run)
2114
+ results = self.session.optimal_net_transfer_capacity_ts
2128
2115
 
2129
2116
  if results is not None:
2130
2117
 
@@ -2151,7 +2138,7 @@ class SimulationsMain(TimeEventsMain):
2151
2138
  """
2152
2139
  if self.ui.actionFind_node_groups.isChecked():
2153
2140
 
2154
- drv, ptdf_results = self.session.get_driver_results(sim.SimulationTypes.LinearAnalysis_run)
2141
+ ptdf_results = self.session.linear_power_flow
2155
2142
 
2156
2143
  if ptdf_results is not None:
2157
2144
 
@@ -2183,7 +2170,7 @@ class SimulationsMain(TimeEventsMain):
2183
2170
  self.UNLOCK()
2184
2171
  print('\nGroups:')
2185
2172
 
2186
- drv, results = self.session.get_driver_results(sim.SimulationTypes.NodeGrouping_run)
2173
+ drv, _ = self.session.node_groups_driver
2187
2174
 
2188
2175
  if drv is not None:
2189
2176
 
@@ -2236,7 +2223,7 @@ class SimulationsMain(TimeEventsMain):
2236
2223
 
2237
2224
  :return:
2238
2225
  """
2239
- drv, results = self.session.get_driver_results(sim.SimulationTypes.InputsAnalysis_run)
2226
+ results = self.session.inputs_analysis
2240
2227
 
2241
2228
  if results is not None:
2242
2229
  self.remove_simulation(sim.SimulationTypes.InputsAnalysis_run)
@@ -2255,7 +2242,7 @@ class SimulationsMain(TimeEventsMain):
2255
2242
 
2256
2243
  if self.ui.actionStorage_location_suggestion.isChecked():
2257
2244
 
2258
- ts_drv, ts_results = self.session.get_driver_results(sim.SimulationTypes.TimeSeries_run)
2245
+ ts_results = self.session.power_flow_ts
2259
2246
 
2260
2247
  if ts_results is not None:
2261
2248
 
@@ -2376,11 +2363,11 @@ class SimulationsMain(TimeEventsMain):
2376
2363
  """
2377
2364
  Post investments evaluation
2378
2365
  """
2379
- drv, results = self.session.get_driver_results(sim.SimulationTypes.InvestmestsEvaluation_run)
2380
- self.remove_simulation(sim.SimulationTypes.InvestmestsEvaluation_run)
2366
+ results = self.session.investments_evaluation
2381
2367
 
2382
2368
  # update the results in the circuit structures
2383
2369
  if results is not None:
2370
+ self.remove_simulation(sim.SimulationTypes.InvestmestsEvaluation_run)
2384
2371
 
2385
2372
  self.ui.progress_label.setText('Colouring investments evaluation results in the grid...')
2386
2373
  QtGui.QGuiApplication.processEvents()
@@ -2399,7 +2386,7 @@ class SimulationsMain(TimeEventsMain):
2399
2386
  :return: ClusteringResults or None
2400
2387
  """
2401
2388
  if self.ui.actionUse_clustering.isChecked():
2402
- _, clustering_results = self.session.get_driver_results(sim.SimulationTypes.ClusteringAnalysis_run)
2389
+ clustering_results = self.session.clustering
2403
2390
 
2404
2391
  if clustering_results is not None:
2405
2392
  n = len(clustering_results.time_indices)
@@ -2465,8 +2452,9 @@ class SimulationsMain(TimeEventsMain):
2465
2452
 
2466
2453
  """
2467
2454
  # update the results in the circuit structures
2468
- drv, results = self.session.get_driver_results(sim.SimulationTypes.ClusteringAnalysis_run)
2469
2455
  self.remove_simulation(sim.SimulationTypes.ClusteringAnalysis_run)
2456
+
2457
+ results = self.session.clustering
2470
2458
  if results is not None:
2471
2459
 
2472
2460
  self.update_available_results()
@@ -2536,7 +2524,7 @@ class SimulationsMain(TimeEventsMain):
2536
2524
  if self.ui.actionUse_clustering.isChecked():
2537
2525
 
2538
2526
  # check if there are clustering results yet
2539
- _, clustering_results = self.session.get_driver_results(sim.SimulationTypes.ClusteringAnalysis_run)
2527
+ clustering_results = self.session.clustering
2540
2528
 
2541
2529
  if clustering_results is not None:
2542
2530
  n = len(clustering_results.time_indices)