GridCal 5.3.49__tar.gz → 5.3.51__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.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +1 -1
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +1 -1
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +44 -10
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +47 -10
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +8 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/simulations.py +57 -33
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/icons_rc.py +1 -1
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/__version__.py +1 -1
- {gridcal-5.3.49 → gridcal-5.3.51}/PKG-INFO +1 -1
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ExecuteGridCal.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/generator_editor.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/line_editor.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/transformer_editor.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/demo_code.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/demo_code4.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/MainWindow.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/gui_functions.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/object_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/python_console.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/python_highlighter.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/toast_widget.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Session/server_driver.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Session/session.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/darkdetect/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/darkdetect/_dummy.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/darkdetect/_linux_detect.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/darkdetect/_mac_detect.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/darkdetect/_windows_detect.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/adequacy_output.csv +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/plugins.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/templates.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/GridCal/update.py +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/setup.cfg +0 -0
- {gridcal-5.3.49 → gridcal-5.3.51}/setup.py +0 -0
@@ -453,7 +453,7 @@ class SubstationGraphicItem(NodeTemplate, QGraphicsRectItem):
|
|
453
453
|
devs = list()
|
454
454
|
# find associated Branches in reverse order
|
455
455
|
for obj in substation_buses:
|
456
|
-
for branch_list in self.editor.circuit.get_branch_lists():
|
456
|
+
for branch_list in self.editor.circuit.get_branch_lists(add_vsc=True, add_hvdc=True, add_switch=True):
|
457
457
|
for i in range(len(branch_list) - 1, -1, -1):
|
458
458
|
if branch_list[i].bus_from == obj:
|
459
459
|
devs.append(branch_list[i])
|
@@ -1186,7 +1186,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1186
1186
|
lnorm[lnorm == np.inf] = 0
|
1187
1187
|
Sfabs = np.abs(Sf)
|
1188
1188
|
Sfnorm = Sfabs / np.max(Sfabs + 1e-20)
|
1189
|
-
for i, branch in enumerate(self.circuit.
|
1189
|
+
for i, branch in enumerate(self.circuit.get_branches_iter(add_vsc=False, add_hvdc=False, add_switch=True)):
|
1190
1190
|
|
1191
1191
|
# try to find the diagram object of the DB object
|
1192
1192
|
graphic_object: Union[MapAcLine, MapDcLine] = self.graphics_manager.query(branch)
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py
RENAMED
@@ -72,19 +72,39 @@ class VscGraphicItem(LineGraphicTemplateItem):
|
|
72
72
|
checkeable=True,
|
73
73
|
checked_value=self.draw_labels)
|
74
74
|
|
75
|
-
rabf = menu.addAction('Change bus')
|
76
|
-
move_bus_icon = QIcon()
|
77
|
-
move_bus_icon.addPixmap(QPixmap(":/Icons/icons/move_bus.svg"))
|
78
|
-
rabf.setIcon(move_bus_icon)
|
79
|
-
rabf.triggered.connect(self.change_bus)
|
75
|
+
# rabf = menu.addAction('Change bus')
|
76
|
+
# move_bus_icon = QIcon()
|
77
|
+
# move_bus_icon.addPixmap(QPixmap(":/Icons/icons/move_bus.svg"))
|
78
|
+
# rabf.setIcon(move_bus_icon)
|
79
|
+
# rabf.triggered.connect(self.change_bus)
|
80
|
+
|
81
|
+
add_menu_entry(menu=menu,
|
82
|
+
text="Change bus",
|
83
|
+
function_ptr=self.change_bus,
|
84
|
+
icon_path=":/Icons/icons/move_bus.svg")
|
85
|
+
|
86
|
+
add_menu_entry(menu=menu,
|
87
|
+
text="Set Control dev 1",
|
88
|
+
function_ptr=self.set_control_dev_1,
|
89
|
+
icon_path=":/Icons/icons/move_bus.svg")
|
90
|
+
|
91
|
+
add_menu_entry(menu=menu,
|
92
|
+
text="Set Control dev 2",
|
93
|
+
function_ptr=self.set_control_dev_2,
|
94
|
+
icon_path=":/Icons/icons/move_bus.svg")
|
80
95
|
|
81
96
|
menu.addSeparator()
|
82
97
|
|
83
|
-
ra2 = menu.addAction('Delete')
|
84
|
-
del_icon = QIcon()
|
85
|
-
del_icon.addPixmap(QPixmap(":/Icons/icons/delete3.svg"))
|
86
|
-
ra2.setIcon(del_icon)
|
87
|
-
ra2.triggered.connect(self.delete)
|
98
|
+
# ra2 = menu.addAction('Delete')
|
99
|
+
# del_icon = QIcon()
|
100
|
+
# del_icon.addPixmap(QPixmap(":/Icons/icons/delete3.svg"))
|
101
|
+
# ra2.setIcon(del_icon)
|
102
|
+
# ra2.triggered.connect(self.delete)
|
103
|
+
|
104
|
+
add_menu_entry(menu=menu,
|
105
|
+
text="Delete",
|
106
|
+
function_ptr=self.delete,
|
107
|
+
icon_path=":/Icons/icons/delete3.svg")
|
88
108
|
|
89
109
|
menu.addSeparator()
|
90
110
|
|
@@ -146,3 +166,17 @@ class VscGraphicItem(LineGraphicTemplateItem):
|
|
146
166
|
"""
|
147
167
|
self.api_object.regulation_bus = self.api_object.bus_to
|
148
168
|
self.api_object.tap_module_control_mode = TapModuleControl.Vm
|
169
|
+
|
170
|
+
def set_control_dev_1(self):
|
171
|
+
"""
|
172
|
+
|
173
|
+
:return:
|
174
|
+
"""
|
175
|
+
self.editor.set_vsc_control_dev(graphic=self, control_idx=1)
|
176
|
+
|
177
|
+
def set_control_dev_2(self):
|
178
|
+
"""
|
179
|
+
|
180
|
+
:return:
|
181
|
+
"""
|
182
|
+
self.editor.set_vsc_control_dev(graphic=self, control_idx=2)
|
@@ -3498,7 +3498,10 @@ class SchematicWidget(BaseDiagramWidget):
|
|
3498
3498
|
# VSC lines
|
3499
3499
|
if vsc_Pf is not None:
|
3500
3500
|
|
3501
|
-
|
3501
|
+
if vsc_Qt is None:
|
3502
|
+
vsc_sending_power_norm = np.abs(vsc_Pt) / (max_flow + 1e-20)
|
3503
|
+
else:
|
3504
|
+
vsc_sending_power_norm = np.abs(vsc_Pt + 1j * vsc_Qt) / (max_flow + 1e-20)
|
3502
3505
|
|
3503
3506
|
if self.circuit.get_vsc_number() == len(vsc_Pf):
|
3504
3507
|
for i, elm in enumerate(self.circuit.vsc_devices):
|
@@ -3549,15 +3552,25 @@ class SchematicWidget(BaseDiagramWidget):
|
|
3549
3552
|
|
3550
3553
|
tooltip += '\nPower (from):\t' + "{:10.4f}".format(vsc_Pf[i]) + ' [MW]'
|
3551
3554
|
|
3552
|
-
if
|
3553
|
-
|
3554
|
-
|
3555
|
-
|
3556
|
-
|
3557
|
-
|
3555
|
+
if vsc_Qt is None:
|
3556
|
+
if vsc_losses is not None:
|
3557
|
+
tooltip += '\nPower (to):\t' + "{:10.4f}".format(vsc_Pt[i]) + ' [MW]'
|
3558
|
+
tooltip += '\nLosses: \t\t' + "{:10.4f}".format(vsc_losses[i]) + ' [MW]'
|
3559
|
+
graphic_object.set_arrows_with_power(Sf=vsc_Pf[i],
|
3560
|
+
St=vsc_Pt[i])
|
3561
|
+
else:
|
3562
|
+
graphic_object.set_arrows_with_power(Sf=vsc_Pf[i],
|
3563
|
+
St=-vsc_Pf[i])
|
3558
3564
|
else:
|
3559
|
-
|
3560
|
-
|
3565
|
+
if vsc_losses is not None:
|
3566
|
+
tooltip += '\nPower (to):\t' + "{:10.4f}".format(vsc_Pt[i]) + ' [MW]'
|
3567
|
+
tooltip += '\nPower (to):\t' + "{:10.4f}".format(vsc_Qt[i]) + ' [Mvar]'
|
3568
|
+
tooltip += '\nLosses: \t\t' + "{:10.4f}".format(vsc_losses[i]) + ' [MW]'
|
3569
|
+
graphic_object.set_arrows_with_power(Sf=vsc_Pf[i] + 1j * 0.0,
|
3570
|
+
St=vsc_Pt[i] + 1j * vsc_Qt[i])
|
3571
|
+
else:
|
3572
|
+
graphic_object.set_arrows_with_power(Sf=vsc_Pf[i] + 1j * 0.0,
|
3573
|
+
St=-vsc_Pf[i] + 1j * vsc_Qt[i])
|
3561
3574
|
|
3562
3575
|
graphic_object.setToolTipText(tooltip)
|
3563
3576
|
graphic_object.set_colour(color, w, style)
|
@@ -3787,7 +3800,7 @@ class SchematicWidget(BaseDiagramWidget):
|
|
3787
3800
|
bus_dict[bus.idtag] = graphic_object
|
3788
3801
|
|
3789
3802
|
# third pass: we must also add all those branches connecting the selected buses
|
3790
|
-
for lst in self.circuit.get_branch_lists():
|
3803
|
+
for lst in self.circuit.get_branch_lists(add_vsc=True, add_hvdc=True, add_switch=True):
|
3791
3804
|
for api_object in lst:
|
3792
3805
|
if api_object.bus_from.idtag in bus_dict or api_object.bus_to.idtag in bus_dict:
|
3793
3806
|
diagram.set_point(device=api_object,
|
@@ -4316,6 +4329,30 @@ class SchematicWidget(BaseDiagramWidget):
|
|
4316
4329
|
if idx_bus_list[0][1] == line_graphics.api_object.bus_from:
|
4317
4330
|
idx, old_bus, old_bus_graphic_item = idx_bus_list[0]
|
4318
4331
|
|
4332
|
+
def set_vsc_control_dev(self, graphic: VscGraphicItem, control_idx: int):
|
4333
|
+
"""
|
4334
|
+
Set the VSC control1_dev or control1_dev with the selected bus
|
4335
|
+
:param graphic: VscGraphicItem
|
4336
|
+
:param control_idx: 1 or 2 to set control1_dev or control1_dev
|
4337
|
+
"""
|
4338
|
+
|
4339
|
+
idx_bus_list = self.get_selected_buses()
|
4340
|
+
|
4341
|
+
if len(idx_bus_list) == 1:
|
4342
|
+
|
4343
|
+
# detect the bus and its combinations
|
4344
|
+
idx, sel_bus, sel_bus_graphic_item = idx_bus_list[0]
|
4345
|
+
|
4346
|
+
if control_idx == 1:
|
4347
|
+
graphic.api_object.control1_dev = sel_bus
|
4348
|
+
elif control_idx == 2:
|
4349
|
+
graphic.api_object.control2_dev = sel_bus
|
4350
|
+
else:
|
4351
|
+
print("control_idx must be either 1 or 2")
|
4352
|
+
else:
|
4353
|
+
error_msg(f"You need to select exactly one bus to be set as the VSC control device {control_idx}",
|
4354
|
+
"Set VSC control device 1")
|
4355
|
+
|
4319
4356
|
def get_picture_width(self) -> int:
|
4320
4357
|
return self.editor_graphics_view.width()
|
4321
4358
|
|
@@ -827,13 +827,21 @@ class DiagramsMain(CompiledArraysMain):
|
|
827
827
|
bus_active=bus_active,
|
828
828
|
loadings=results.loading,
|
829
829
|
types=results.bus_types,
|
830
|
+
|
830
831
|
Sf=results.Sf,
|
831
832
|
St=results.St,
|
832
833
|
br_active=br_active,
|
834
|
+
|
833
835
|
hvdc_Pf=results.hvdc_Pf,
|
834
836
|
hvdc_Pt=-results.hvdc_Pf,
|
835
837
|
hvdc_loading=results.hvdc_loading,
|
836
838
|
hvdc_active=hvdc_active,
|
839
|
+
|
840
|
+
vsc_Pf=results.vsc_Pf,
|
841
|
+
vsc_Pt=-results.vsc_Pf,
|
842
|
+
vsc_loading=results.vsc_loading,
|
843
|
+
vsc_active=vsc_active,
|
844
|
+
|
837
845
|
use_flow_based_width=use_flow_based_width,
|
838
846
|
min_branch_width=min_branch_width,
|
839
847
|
max_branch_width=max_branch_width,
|
@@ -218,7 +218,7 @@ class SimulationsMain(TimeEventsMain):
|
|
218
218
|
self.ui.actionLinearAnalysis.triggered.connect(self.linear_pf_dispatcher)
|
219
219
|
self.ui.actionContingency_analysis.triggered.connect(self.contingencies_dispatcher)
|
220
220
|
self.ui.actionOTDF_time_series.triggered.connect(self.run_contingency_analysis_ts)
|
221
|
-
self.ui.actionATC.triggered.connect(self.
|
221
|
+
self.ui.actionATC.triggered.connect(self.atc_dispatcher)
|
222
222
|
self.ui.actionATC_Time_Series.triggered.connect(self.run_available_transfer_capacity_ts)
|
223
223
|
self.ui.actionPTDF_time_series.triggered.connect(self.run_linear_analysis_ts)
|
224
224
|
self.ui.actionClustering.triggered.connect(self.run_clustering)
|
@@ -850,16 +850,16 @@ class SimulationsMain(TimeEventsMain):
|
|
850
850
|
else:
|
851
851
|
self.run_opf()
|
852
852
|
|
853
|
-
def
|
853
|
+
def atc_dispatcher(self):
|
854
854
|
"""
|
855
855
|
Dispatch the NTC action
|
856
856
|
:return:
|
857
857
|
"""
|
858
858
|
if self.server_driver.is_running():
|
859
859
|
if self.ts_flag():
|
860
|
-
instruction = RemoteInstruction(operation=SimulationTypes.
|
860
|
+
instruction = RemoteInstruction(operation=SimulationTypes.NetTransferCapacityTS_run)
|
861
861
|
else:
|
862
|
-
instruction = RemoteInstruction(operation=SimulationTypes.
|
862
|
+
instruction = RemoteInstruction(operation=SimulationTypes.NetTransferCapacity_run)
|
863
863
|
|
864
864
|
self.run_remote(instruction=instruction)
|
865
865
|
else:
|
@@ -2277,13 +2277,21 @@ class SimulationsMain(TimeEventsMain):
|
|
2277
2277
|
"""
|
2278
2278
|
Actions to run after the OPF simulation
|
2279
2279
|
"""
|
2280
|
-
|
2280
|
+
drv, results = self.session.optimal_net_transfer_capacity
|
2281
2281
|
|
2282
2282
|
if results is not None:
|
2283
2283
|
self.remove_simulation(SimulationTypes.OPF_NTC_run)
|
2284
2284
|
self.update_available_results()
|
2285
2285
|
self.colour_diagrams()
|
2286
2286
|
|
2287
|
+
if results.converged:
|
2288
|
+
if drv.logger.error_count() == 0:
|
2289
|
+
self.show_info_toast("Optimal result")
|
2290
|
+
else:
|
2291
|
+
self.show_warning_toast("Optimal result with errors :/")
|
2292
|
+
else:
|
2293
|
+
self.show_warning_toast("Not optimal result :/")
|
2294
|
+
|
2287
2295
|
if not self.session.is_anything_running():
|
2288
2296
|
self.UNLOCK()
|
2289
2297
|
|
@@ -2600,20 +2608,32 @@ class SimulationsMain(TimeEventsMain):
|
|
2600
2608
|
)
|
2601
2609
|
|
2602
2610
|
elif obj_fn_tpe == InvestmentsEvaluationObjectives.GenerationAdequacy:
|
2603
|
-
|
2604
|
-
|
2605
|
-
|
2606
|
-
|
2607
|
-
|
2608
|
-
|
2611
|
+
|
2612
|
+
if self.circuit.has_time_series:
|
2613
|
+
problem = sim.AdequacyInvestmentProblem(
|
2614
|
+
grid=self.circuit,
|
2615
|
+
n_monte_carlo_sim=self.ui.max_iterations_reliability_spinBox.value(),
|
2616
|
+
use_monte_carlo=True,
|
2617
|
+
save_file=False,
|
2618
|
+
time_indices=self.get_time_indices()
|
2619
|
+
)
|
2620
|
+
else:
|
2621
|
+
self.show_warning_toast('Adequacy studies need time data...')
|
2622
|
+
return
|
2609
2623
|
|
2610
2624
|
elif obj_fn_tpe == InvestmentsEvaluationObjectives.SimpleDispatch:
|
2611
|
-
|
2612
|
-
|
2613
|
-
|
2614
|
-
|
2615
|
-
|
2616
|
-
|
2625
|
+
|
2626
|
+
if self.circuit.has_time_series:
|
2627
|
+
problem = sim.AdequacyInvestmentProblem(
|
2628
|
+
grid=self.circuit,
|
2629
|
+
n_monte_carlo_sim=self.ui.max_iterations_reliability_spinBox.value(),
|
2630
|
+
use_monte_carlo=False,
|
2631
|
+
save_file=False,
|
2632
|
+
time_indices=self.get_time_indices()
|
2633
|
+
)
|
2634
|
+
else:
|
2635
|
+
self.show_warning_toast('Adequacy studies need time data...')
|
2636
|
+
return
|
2617
2637
|
|
2618
2638
|
else:
|
2619
2639
|
self.show_error_toast("Objective not supported yet :/")
|
@@ -2893,30 +2913,34 @@ class SimulationsMain(TimeEventsMain):
|
|
2893
2913
|
"""
|
2894
2914
|
if self.circuit.valid_for_simulation():
|
2895
2915
|
|
2896
|
-
if
|
2916
|
+
if self.circuit.get_time_number() > 0:
|
2897
2917
|
|
2898
|
-
self.
|
2918
|
+
if not self.session.is_this_running(SimulationTypes.Reliability_run):
|
2899
2919
|
|
2900
|
-
|
2920
|
+
self.add_simulation(SimulationTypes.Reliability_run)
|
2901
2921
|
|
2902
|
-
|
2903
|
-
self.ui.progress_label.setText('Compiling the grid...')
|
2904
|
-
QtGui.QGuiApplication.processEvents()
|
2922
|
+
self.LOCK()
|
2905
2923
|
|
2906
|
-
|
2924
|
+
# Compile the grid
|
2925
|
+
self.ui.progress_label.setText('Compiling the grid...')
|
2926
|
+
QtGui.QGuiApplication.processEvents()
|
2907
2927
|
|
2908
|
-
|
2909
|
-
pf_options=pf_options,
|
2910
|
-
n_sim=self.ui.max_iterations_reliability_spinBox.value())
|
2928
|
+
pf_options = self.get_selected_power_flow_options()
|
2911
2929
|
|
2912
|
-
|
2913
|
-
|
2914
|
-
|
2915
|
-
|
2930
|
+
drv = sim.ReliabilityStudyDriver(grid=self.circuit,
|
2931
|
+
pf_options=pf_options,
|
2932
|
+
time_indices=self.get_time_indices(),
|
2933
|
+
n_sim=self.ui.max_iterations_reliability_spinBox.value())
|
2916
2934
|
|
2917
|
-
|
2918
|
-
|
2935
|
+
self.session.run(drv,
|
2936
|
+
post_func=self.post_reliability,
|
2937
|
+
prog_func=self.ui.progressBar.setValue,
|
2938
|
+
text_func=self.ui.progress_label.setText)
|
2919
2939
|
|
2940
|
+
else:
|
2941
|
+
self.show_warning_toast('Another reliability study is running already...')
|
2942
|
+
else:
|
2943
|
+
self.show_warning_toast('Reliability studies need time data...')
|
2920
2944
|
else:
|
2921
2945
|
pass
|
2922
2946
|
|
@@ -38475,7 +38475,7 @@ qt_resource_struct = b"\
|
|
38475
38475
|
\x00\x00\x06b\x00\x01\x00\x00\x00\x01\x00\x02X+\
|
38476
38476
|
\x00\x00\x01\x8b\xd7}+~\
|
38477
38477
|
\x00\x00\x00\x9c\x00\x01\x00\x00\x00\x01\x00\x00&x\
|
38478
|
-
\x00\x00\x01\x97
|
38478
|
+
\x00\x00\x01\x97/]\x1f\xdc\
|
38479
38479
|
\x00\x00\x0d\x90\x00\x00\x00\x00\x00\x01\x00\x04\xc7%\
|
38480
38480
|
\x00\x00\x01\x88\xae\xf9[-\
|
38481
38481
|
\x00\x00\x0c&\x00\x00\x00\x00\x00\x01\x00\x04Cm\
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.49 → gridcal-5.3.51}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|