GridCal 5.1.6__tar.gz → 5.1.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.
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CascadingSteps/cascading_steps.py +4 -4
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/diagram_editor_widget.py +3 -2
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +1 -1
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Results/results.py +1 -1
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +2 -1
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/base_gui.py +1 -1
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/io.py +16 -7
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/simulations.py +45 -57
- GridCal-5.1.8/GridCal/Session/session.py +683 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/__version__.py +1 -1
- {GridCal-5.1.6 → GridCal-5.1.8}/PKG-INFO +1 -1
- GridCal-5.1.6/GridCal/Session/session.py +0 -598
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ConsoleWidget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/line_editor.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/bus_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/generic_graphics.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/terminal_item.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/image_layer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/layer_types.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/place.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/point_layer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/polygon_layer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/polyline_layer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Layers/text_layer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Schema/Connector.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Schema/Line.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Schema/Nodes.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Schema/SchemaManager.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Schema/Substations.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Schema/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/logger.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/map_events.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/MapWidget/node_widget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GeneralDialogues.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/GuiFunctions.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/MainWindow.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Visualization/palettes.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Session/results_model.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/templates.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/GridCal/update.py +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/setup.cfg +0 -0
- {GridCal-5.1.6 → GridCal-5.1.8}/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.
|
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.
|
105
|
-
|
106
|
-
|
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,
|
{GridCal-5.1.6 → GridCal-5.1.8}/GridCal/Gui/Diagrams/DiagramEditorWidget/diagram_editor_widget.py
RENAMED
@@ -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
|
-
|
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:
|
@@ -1359,7 +1360,7 @@ class DiagramEditorWidget(QSplitter):
|
|
1359
1360
|
:return: tuple(bus index, bus_api_object, bus_graphic_object)
|
1360
1361
|
"""
|
1361
1362
|
lst: List[Tuple[int, Bus, Union[BusGraphicItem, None]]] = list()
|
1362
|
-
bus_graphics_dict = self.graphics_manager.get_device_type_dict(DeviceType.BusDevice
|
1363
|
+
bus_graphics_dict = self.graphics_manager.get_device_type_dict(DeviceType.BusDevice)
|
1363
1364
|
bus_dict: Dict[str: Tuple[int, Bus]] = {b.idtag: (i, b) for i, b in enumerate(self.circuit.get_buses())}
|
1364
1365
|
|
1365
1366
|
for bus_idtag, graphic_object in bus_graphics_dict.items():
|
@@ -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.
|
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
|
-
|
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
|
-
|
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
|
-
|
525
|
+
sessions_data = self.session.get_save_data()
|
522
526
|
else:
|
523
|
-
|
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
|
-
|
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
|
763
|
-
|
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,
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
865
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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(
|
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(
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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,
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
2527
|
+
clustering_results = self.session.clustering
|
2540
2528
|
|
2541
2529
|
if clustering_results is not None:
|
2542
2530
|
n = len(clustering_results.time_indices)
|