GridCalEngine 5.0.10__tar.gz → 5.0.11__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.
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_bentayga.py +5 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_data.py +201 -21
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_newton_pa.py +83 -15
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/__init__.py +5 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/branch_data.py +10 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/DataStructures/fluid_node_data.py +61 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/DataStructures/fluid_p2x_data.py +33 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/DataStructures/fluid_path_data.py +57 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/DataStructures/fluid_pump_data.py +33 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/DataStructures/fluid_turbine_data.py +60 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/generator_data.py +10 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/load_data.py +10 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/numerical_circuit.py +83 -13
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/shunt_data.py +10 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/overhead_line_type.py +1 -1
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/transformer3w.py +1 -1
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/base_diagram.py +57 -26
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Fluid/__init__.py +1 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/Devices/Fluid/fluid_injection_template.py +104 -0
- GridCalEngine-5.0.11/GridCalEngine/Core/Devices/Fluid/fluid_node.py +161 -0
- GridCalEngine-5.0.10/GridCalEngine/Core/Devices/Fluid/fluid_turbine.py → GridCalEngine-5.0.11/GridCalEngine/Core/Devices/Fluid/fluid_p2x.py +15 -25
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Fluid/fluid_path.py +9 -7
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Fluid/fluid_pump.py +15 -25
- GridCalEngine-5.0.11/GridCalEngine/Core/Devices/Fluid/fluid_turbine.py +53 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Substation/bus.py +43 -65
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/editable_device.py +2 -1
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/multi_circuit.py +297 -56
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/admittance_matrices.py +37 -40
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/regulating_control.py +2 -1
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/json_parser.py +88 -79
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/pack_unpack.py +35 -197
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ATC/available_transfer_capacity_driver.py +3 -2
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ATC/available_transfer_capacity_ts_driver.py +5 -8
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Clustering/clustering_driver.py +2 -2
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_driver.py +48 -26
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_driver.py +6 -18
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_driver.py +2 -2
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Dynamics/transient_stability_driver.py +4 -4
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InvestmentsEvaluation/MVRSM.py +275 -1
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +29 -33
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/linear_analysis_driver.py +2 -2
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_driver.py +3 -3
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/ntc_driver.py +6 -6
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/ntc_ts_driver.py +15 -17
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/linear_opf_ts.py +386 -31
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/opf_driver.py +8 -8
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/opf_ts_driver.py +61 -18
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/opf_ts_results.py +83 -3
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +4 -4
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_driver.py +7 -8
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_results.py +76 -4
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +0 -21
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit.py +17 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_driver.py +12 -8
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +52 -43
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/__init__.py +2 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/blackout_driver.py +5 -9
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/reliability_driver.py +26 -20
- GridCalEngine-5.0.11/GridCalEngine/Simulations/Stochastic/reliability_iterable.py +112 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_driver.py +6 -11
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Topology/topology_driver.py +18 -29
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/driver_template.py +34 -4
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/result_types.py +18 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/results_table.py +34 -26
- GridCalEngine-5.0.11/GridCalEngine/Utils/MIPS/ipm_test.py +61 -0
- GridCalEngine-5.0.11/GridCalEngine/Utils/MIPS/mips.py +177 -0
- GridCalEngine-5.0.11/GridCalEngine/Utils/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/__version__.py +1 -1
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/enumerations.py +6 -4
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/PKG-INFO +1 -1
- GridCalEngine-5.0.10/GridCalEngine/Core/Devices/Fluid/fluid_node.py +0 -59
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_optimods.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_pgm.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/battery_data.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/bus_data.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/hvdc_data.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/contingency.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/contingency_group.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/country.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/emission_gas.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/fuel.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/investment.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/investments_group.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/technology.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Aggregation/zone.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Associations/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Associations/generator_emission.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Associations/generator_fuel.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Associations/generator_technology.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/branch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/dc_line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/hvdc_line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/switch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/tap_changer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/line_template.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/parent_branch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/sequence_line_type.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/transformer_type.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/templates/underground_line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/transformer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/upfc.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/vsc.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/winding.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Branches/wire.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/bus_branch_diagram.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/graphic_location.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/map_diagram.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/map_location.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Diagrams/node_breaker_diagram.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/battery.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/external_grid.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/generator.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/generator_q_curve.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/injection_template.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/load.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/shunt.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Injections/static_generator.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Substation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Substation/connectivity_node.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/Substation/substation.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/measurement.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/profile.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Devices/sparse_array.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/topology.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/base/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/base/base_circuit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/base/base_device.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/base/base_property.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/base/units.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_circuit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_data_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_enums.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_poperty.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_to_gridcal.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_writer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/cgm_region.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/control_area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/energy_area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/geographical_region.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/load_area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/merging_agent.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/modelling_authority.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/operational_limit_set.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/operational_limit_type.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/sub_geographical_region.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/sub_load_area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/base.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/current_limit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/dipole.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/equivalent_branch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/ac_line_segment.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/tie_flow.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_non_linear.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_symmetrical.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_table.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_table_point.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_tabular.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/power_transformer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/power_transformer_end.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer_table.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer_table_point.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/tap_changer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/tap_changer_control.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/conducting_equipment.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equipment.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equipment_container.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equivalent_equipment.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/full_model.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/identified_object.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/energy_scheduling_type.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/energy_source.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/control_area_generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/fossil_fuel.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/fuel_type.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_power_plant.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_pump.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/nuclear_generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/reactive_capability_curve.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/rotating_machine.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/solar_generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/synchronous_machine.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/thermal_generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/wind_generating_unit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/conform_load.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/conform_load_group.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/energy_consumer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/equivalent_injection.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/equivalent_network.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/load_group.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/load_response_characteristic.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/non_conform_load.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/non_conform_load_group.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/monopole.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/power_systems_resource.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/regulating_cond_eq.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/linear_shunt_compensator.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/shunt_compensator.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/static_var_compensator.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/curve.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/curve_data.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_power_flow.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_shunt_compensator_sections.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_tap_step.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_voltage.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/topological_island.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/acdc_terminal.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/base_voltage.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/breaker.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/bus_bar_section.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/bus_name_marker.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connectivity_node.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connectivity_node_container.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connector.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/junction.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/load_breaker_switch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/substation.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/switch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/voltage_level.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/voltage_limit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/terminal.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/topological_node.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cim16/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cim16/cim_circuit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cim16/cim_data_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cim16/cim_devices.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cim16/cim_enums.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/cim16/cim_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/db/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/db/base_db.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/db/cgmes_lookup_db.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/db/db_handler.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/db/file_system.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/cim/db/psse_lookup_db.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/dgs/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/dgs/dgs_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/epc/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/epc/epc_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/file_handler.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/file_system.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/contingency_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/excel_interface.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/generic_io_functions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/h5_interface.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/sqlite_interface.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/gridcal/zip_interface.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/matpower/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/matpower/matpower_branch_definitions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/matpower/matpower_bus_definitions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/matpower/matpower_gen_definitions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/matpower/matpower_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/matpower/matpower_storage_definitions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/others/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/others/dpx_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/others/ipa_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/others/plx_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/others/pypsa_parser.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/branch.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/bus.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/facts.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/fixed_shunt.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/generator.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/gne_device.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/induction_machine.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/inter_area.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/load.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/node.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/owner.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/psse_circuit.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/psse_object.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/psse_property.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/substation.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/switched_shunt.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/system_switching_device.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/transformer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/two_terminal_dc_line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/vsc_dc_line.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/devices/zone.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/gridcal_to_raw.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/raw_functions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/raw_parser_legacy.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/raw_parser_writer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/raw_to_gridcal.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/rawx_parser_legacy.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/IO/raw/rawx_parser_writer.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/LICENSE.txt +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ATC/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Clustering/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Clustering/clustering.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Clustering/clustering_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Clustering/clustering_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingencies_report.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_plan.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContingencyAnalysis/helm_contingencies.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContinuationPowerFlow/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_input.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Dynamics/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Dynamics/dynamic_modules.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InputsAnalysis/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InputsAnalysis/inputs_analysis_driver.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InvestmentsEvaluation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/InvestmentsEvaluation/stop_crits.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/linear_analysis_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/linear_analysis_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/ntc_opf.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/ntc_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/ntc_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/NTC/ntc_ts_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/opf_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/opf_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/OPF/simple_dispatch_ts.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/derivatives.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/discrete_controls.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_input.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ShortCircuitStudies/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/SigmaAnalysis/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/SigmaAnalysis/sigma_analysis_driver.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/StateEstimation/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/StateEstimation/state_estimation.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/StateEstimation/state_stimation_driver.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/latin_hypercube_sampling.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_input.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_results.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/Topology/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/driver_types.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/results_template.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Simulations/sparse_solve.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/MIP/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/MIP/ortools_interface.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/MIP/pulp_interface.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/MIP/selected_interface.py +0 -0
- {GridCalEngine-5.0.10/GridCalEngine/Utils/ThirdParty/SyntheticNetworks → GridCalEngine-5.0.11/GridCalEngine/Utils/MIPS}/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/Sparse/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/Sparse/csc.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/Sparse/csc_numba.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/Sparse/utils.py +0 -0
- {GridCalEngine-5.0.10/GridCalEngine/Utils/ThirdParty → GridCalEngine-5.0.11/GridCalEngine/Utils/ThirdParty/SyntheticNetworks}/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/rpgm_algo.py +0 -0
- {GridCalEngine-5.0.10/GridCalEngine/Utils → GridCalEngine-5.0.11/GridCalEngine/Utils/ThirdParty}/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/__init__.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/api.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/basic_structures.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/data_logger.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/grid_analysis.py +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/setup.cfg +0 -0
- {GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/setup.py +0 -0
{GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_bentayga.py
RENAMED
@@ -568,6 +568,11 @@ def get_snapshots_from_bentayga(circuit: MultiCircuit):
|
|
568
568
|
ngen=0,
|
569
569
|
nbatt=0,
|
570
570
|
nshunt=0,
|
571
|
+
nfluidnode=0,
|
572
|
+
nfluidturbine=0,
|
573
|
+
nfluidpump=0,
|
574
|
+
nfluidp2x=0,
|
575
|
+
nfluidpath=0,
|
571
576
|
sbase=0.0)
|
572
577
|
|
573
578
|
data.Vbus_ = btg_data.Vbus.reshape(-1, 1)
|
{GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_data.py
RENAMED
@@ -15,7 +15,7 @@
|
|
15
15
|
# along with this program; if not, write to the Free Software Foundation,
|
16
16
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
17
17
|
from __future__ import annotations
|
18
|
-
from typing import Dict, Union, TYPE_CHECKING
|
18
|
+
from typing import Dict, Union, TYPE_CHECKING, Tuple
|
19
19
|
from GridCalEngine.basic_structures import Logger
|
20
20
|
from GridCalEngine.Core.Devices.Substation.bus import Bus
|
21
21
|
from GridCalEngine.Core.Devices.Aggregation.area import Area
|
@@ -112,6 +112,9 @@ def get_load_data(circuit: MultiCircuit,
|
|
112
112
|
data.names[ii] = elm.name
|
113
113
|
data.idtag[ii] = elm.idtag
|
114
114
|
|
115
|
+
data.mttf[ii] = elm.mttf
|
116
|
+
data.mttr[ii] = elm.mttr
|
117
|
+
|
115
118
|
if time_series:
|
116
119
|
if opf_results is not None:
|
117
120
|
data.S[ii] = elm.P_prof[t_idx] + 1j * elm.Q_prof[t_idx] - opf_results.load_shedding[t_idx, ii]
|
@@ -245,6 +248,9 @@ def get_shunt_data(circuit: MultiCircuit,
|
|
245
248
|
data.names[k] = elm.name
|
246
249
|
data.idtag[k] = elm.idtag
|
247
250
|
|
251
|
+
data.mttf[k] = elm.mttf
|
252
|
+
data.mttr[k] = elm.mttr
|
253
|
+
|
248
254
|
data.controlled[k] = elm.is_controlled
|
249
255
|
data.b_min[k] = elm.Bmin
|
250
256
|
data.b_max[k] = elm.Bmax
|
@@ -275,7 +281,7 @@ def get_generator_data(circuit: MultiCircuit,
|
|
275
281
|
opf_results: Union[OptimalPowerFlowResults, None] = None,
|
276
282
|
t_idx=-1,
|
277
283
|
time_series=False,
|
278
|
-
use_stored_guess=False) -> ds.GeneratorData:
|
284
|
+
use_stored_guess=False) -> Tuple[ds.GeneratorData, Dict[str, int]]:
|
279
285
|
"""
|
280
286
|
|
281
287
|
:param circuit:
|
@@ -304,6 +310,9 @@ def get_generator_data(circuit: MultiCircuit,
|
|
304
310
|
data.names[k] = elm.name
|
305
311
|
data.idtag[k] = elm.idtag
|
306
312
|
|
313
|
+
data.mttf[k] = elm.mttf
|
314
|
+
data.mttr[k] = elm.mttr
|
315
|
+
|
307
316
|
data.controllable[k] = elm.is_controlled
|
308
317
|
data.installed_p[k] = elm.Snom
|
309
318
|
|
@@ -383,7 +392,7 @@ def get_generator_data(circuit: MultiCircuit,
|
|
383
392
|
|
384
393
|
data.C_bus_elm[i, k] = 1
|
385
394
|
|
386
|
-
return data
|
395
|
+
return data, gen_index_dict
|
387
396
|
|
388
397
|
|
389
398
|
def get_battery_data(circuit: MultiCircuit,
|
@@ -420,6 +429,9 @@ def get_battery_data(circuit: MultiCircuit,
|
|
420
429
|
data.names[k] = elm.name
|
421
430
|
data.idtag[k] = elm.idtag
|
422
431
|
|
432
|
+
data.mttf[k] = elm.mttf
|
433
|
+
data.mttr[k] = elm.mttr
|
434
|
+
|
423
435
|
data.controllable[k] = elm.is_controlled
|
424
436
|
data.installed_p[k] = elm.Snom
|
425
437
|
|
@@ -510,28 +522,28 @@ def get_battery_data(circuit: MultiCircuit,
|
|
510
522
|
|
511
523
|
|
512
524
|
def get_branch_data(circuit: MultiCircuit,
|
513
|
-
bus_dict,
|
514
|
-
Vbus,
|
515
|
-
apply_temperature,
|
525
|
+
bus_dict: Dict[Bus, int],
|
526
|
+
Vbus: CxVec,
|
527
|
+
apply_temperature: bool,
|
516
528
|
branch_tolerance_mode: BranchImpedanceMode,
|
517
|
-
t_idx
|
518
|
-
time_series=False,
|
529
|
+
t_idx: int = -1,
|
530
|
+
time_series: bool = False,
|
519
531
|
opf_results: Union[OptimalPowerFlowResults, None] = None,
|
520
|
-
use_stored_guess=False,
|
521
|
-
logger: Logger = Logger()):
|
532
|
+
use_stored_guess: bool = False,
|
533
|
+
logger: Logger = Logger()) -> ds.BranchData:
|
522
534
|
"""
|
523
|
-
|
524
|
-
:param circuit:
|
525
|
-
:param bus_dict:
|
535
|
+
Compile BranchData for a time step or the snapshot
|
536
|
+
:param circuit: MultiCircuit
|
537
|
+
:param bus_dict: Dictionary of buses to compute the indices
|
526
538
|
:param Vbus: Array of bus voltages to be modified
|
527
|
-
:param apply_temperature:
|
528
|
-
:param branch_tolerance_mode:
|
529
|
-
:param t_idx:
|
530
|
-
:param time_series:
|
531
|
-
:param opf_results:
|
532
|
-
:param use_stored_guess:
|
533
|
-
:param logger:
|
534
|
-
:return:
|
539
|
+
:param apply_temperature: apply the temperature correction?
|
540
|
+
:param branch_tolerance_mode: BranchImpedanceMode
|
541
|
+
:param t_idx: time index (-1 is useless)
|
542
|
+
:param time_series: compile time series? else the sanpshot is compiled
|
543
|
+
:param opf_results: OptimalPowerFlowResults
|
544
|
+
:param use_stored_guess: use the stored voltage ?
|
545
|
+
:param logger: Logger
|
546
|
+
:return: BranchData
|
535
547
|
"""
|
536
548
|
|
537
549
|
data = ds.BranchData(nelm=circuit.get_branch_number_wo_hvdc(),
|
@@ -545,6 +557,9 @@ def get_branch_data(circuit: MultiCircuit,
|
|
545
557
|
data.names[i] = elm.name
|
546
558
|
data.idtag[i] = elm.idtag
|
547
559
|
|
560
|
+
data.mttf[i] = elm.mttf
|
561
|
+
data.mttr[i] = elm.mttr
|
562
|
+
|
548
563
|
if time_series:
|
549
564
|
data.active[i] = elm.active_prof[t_idx]
|
550
565
|
data.rates[i] = elm.rate_prof[t_idx]
|
@@ -604,6 +619,10 @@ def get_branch_data(circuit: MultiCircuit,
|
|
604
619
|
|
605
620
|
data.names[ii] = elm.name
|
606
621
|
data.idtag[ii] = elm.idtag
|
622
|
+
|
623
|
+
data.mttf[ii] = elm.mttf
|
624
|
+
data.mttr[ii] = elm.mttr
|
625
|
+
|
607
626
|
data.dc[ii] = 1
|
608
627
|
|
609
628
|
if time_series:
|
@@ -649,6 +668,9 @@ def get_branch_data(circuit: MultiCircuit,
|
|
649
668
|
data.names[ii] = elm.name
|
650
669
|
data.idtag[ii] = elm.idtag
|
651
670
|
|
671
|
+
data.mttf[ii] = elm.mttf
|
672
|
+
data.mttr[ii] = elm.mttr
|
673
|
+
|
652
674
|
if time_series:
|
653
675
|
data.active[ii] = elm.active_prof[t_idx]
|
654
676
|
data.rates[ii] = elm.rate_prof[t_idx]
|
@@ -730,6 +752,9 @@ def get_branch_data(circuit: MultiCircuit,
|
|
730
752
|
data.names[ii] = elm.name
|
731
753
|
data.idtag[ii] = elm.idtag
|
732
754
|
|
755
|
+
data.mttf[ii] = elm.mttf
|
756
|
+
data.mttr[ii] = elm.mttr
|
757
|
+
|
733
758
|
if time_series:
|
734
759
|
data.active[ii] = elm.active_prof[t_idx]
|
735
760
|
data.rates[ii] = elm.rate_prof[t_idx]
|
@@ -813,6 +838,9 @@ def get_branch_data(circuit: MultiCircuit,
|
|
813
838
|
data.names[ii] = elm.name
|
814
839
|
data.idtag[ii] = elm.idtag
|
815
840
|
|
841
|
+
data.mttf[ii] = elm.mttf
|
842
|
+
data.mttr[ii] = elm.mttr
|
843
|
+
|
816
844
|
if time_series:
|
817
845
|
data.active[ii] = elm.active_prof[t_idx]
|
818
846
|
data.rates[ii] = elm.rate_prof[t_idx]
|
@@ -912,6 +940,9 @@ def get_branch_data(circuit: MultiCircuit,
|
|
912
940
|
data.names[ii] = elm.name
|
913
941
|
data.idtag[ii] = elm.idtag
|
914
942
|
|
943
|
+
data.mttf[ii] = elm.mttf
|
944
|
+
data.mttr[ii] = elm.mttr
|
945
|
+
|
915
946
|
if time_series:
|
916
947
|
data.active[ii] = elm.active_prof[t_idx]
|
917
948
|
data.rates[ii] = elm.rate_prof[t_idx]
|
@@ -1041,3 +1072,152 @@ def get_hvdc_data(circuit: MultiCircuit,
|
|
1041
1072
|
data.C_hvdc_bus_t[i, t] = 1
|
1042
1073
|
|
1043
1074
|
return data
|
1075
|
+
|
1076
|
+
|
1077
|
+
def get_fluid_node_data(circuit: MultiCircuit,
|
1078
|
+
t_idx=-1,
|
1079
|
+
time_series=False) -> Tuple[ds.FluidNodeData, Dict[str, int]]:
|
1080
|
+
"""
|
1081
|
+
|
1082
|
+
:param circuit:
|
1083
|
+
:param time_series:
|
1084
|
+
:param t_idx:
|
1085
|
+
:return:
|
1086
|
+
"""
|
1087
|
+
devices = circuit.get_fluid_nodes()
|
1088
|
+
plant_dict: Dict[str, int] = dict()
|
1089
|
+
|
1090
|
+
data = ds.FluidNodeData(nelm=len(devices))
|
1091
|
+
|
1092
|
+
for k, elm in enumerate(devices):
|
1093
|
+
plant_dict[elm.idtag] = k
|
1094
|
+
|
1095
|
+
data.names[k] = elm.name
|
1096
|
+
data.idtag[k] = elm.idtag
|
1097
|
+
|
1098
|
+
# Convert input data in hm3 to m3
|
1099
|
+
data.min_level[k] = 1e6 * elm.min_level
|
1100
|
+
data.max_level[k] = 1e6 * elm.max_level
|
1101
|
+
data.initial_level[k] = 1e6 * elm.initial_level
|
1102
|
+
|
1103
|
+
if time_series:
|
1104
|
+
data.inflow[k] = elm.inflow_prof[t_idx]
|
1105
|
+
else:
|
1106
|
+
data.inflow[k] = elm.inflow
|
1107
|
+
|
1108
|
+
return data, plant_dict
|
1109
|
+
|
1110
|
+
|
1111
|
+
def get_fluid_turbine_data(circuit: MultiCircuit,
|
1112
|
+
plant_dict: Dict[str, int],
|
1113
|
+
gen_dict: Dict[str, int],
|
1114
|
+
t_idx=-1) -> ds.FluidTurbineData:
|
1115
|
+
"""
|
1116
|
+
|
1117
|
+
:param circuit:
|
1118
|
+
:param plant_dict:
|
1119
|
+
:param gen_dict:
|
1120
|
+
:param t_idx:
|
1121
|
+
:return:
|
1122
|
+
"""
|
1123
|
+
devices = circuit.get_fluid_turbines()
|
1124
|
+
|
1125
|
+
data = ds.FluidTurbineData(nelm=len(devices))
|
1126
|
+
|
1127
|
+
for k, elm in enumerate(devices):
|
1128
|
+
data.plant_idx[k] = plant_dict[elm.plant.idtag]
|
1129
|
+
data.generator_idx[k] = gen_dict[elm.generator.idtag]
|
1130
|
+
|
1131
|
+
data.names[k] = elm.name
|
1132
|
+
data.idtag[k] = elm.idtag
|
1133
|
+
|
1134
|
+
data.efficiency[k] = elm.efficiency
|
1135
|
+
data.max_flow_rate[k] = elm.max_flow_rate
|
1136
|
+
|
1137
|
+
return data
|
1138
|
+
|
1139
|
+
|
1140
|
+
def get_fluid_pump_data(circuit: MultiCircuit,
|
1141
|
+
plant_dict: Dict[str, int],
|
1142
|
+
gen_dict: Dict[str, int],
|
1143
|
+
t_idx=-1) -> ds.FluidPumpData:
|
1144
|
+
"""
|
1145
|
+
|
1146
|
+
:param circuit:
|
1147
|
+
:param plant_dict:
|
1148
|
+
:param gen_dict:
|
1149
|
+
:param t_idx:
|
1150
|
+
:return:
|
1151
|
+
"""
|
1152
|
+
devices = circuit.get_fluid_pumps()
|
1153
|
+
|
1154
|
+
data = ds.FluidPumpData(nelm=len(devices))
|
1155
|
+
|
1156
|
+
for k, elm in enumerate(devices):
|
1157
|
+
data.plant_idx[k] = plant_dict[elm.plant.idtag]
|
1158
|
+
data.generator_idx[k] = gen_dict[elm.generator.idtag]
|
1159
|
+
|
1160
|
+
data.names[k] = elm.name
|
1161
|
+
data.idtag[k] = elm.idtag
|
1162
|
+
|
1163
|
+
data.efficiency[k] = elm.efficiency
|
1164
|
+
data.max_flow_rate[k] = elm.max_flow_rate
|
1165
|
+
|
1166
|
+
return data
|
1167
|
+
|
1168
|
+
|
1169
|
+
def get_fluid_p2x_data(circuit: MultiCircuit,
|
1170
|
+
plant_dict: Dict[str, int],
|
1171
|
+
gen_dict: Dict[str, int],
|
1172
|
+
t_idx=-1) -> ds.FluidP2XData:
|
1173
|
+
"""
|
1174
|
+
|
1175
|
+
:param circuit:
|
1176
|
+
:param plant_dict:
|
1177
|
+
:param gen_dict:
|
1178
|
+
:param t_idx:
|
1179
|
+
:return:
|
1180
|
+
"""
|
1181
|
+
devices = circuit.get_fluid_p2xs()
|
1182
|
+
|
1183
|
+
data = ds.FluidP2XData(nelm=len(devices))
|
1184
|
+
|
1185
|
+
for k, elm in enumerate(devices):
|
1186
|
+
data.plant_idx[k] = plant_dict[elm.plant.idtag]
|
1187
|
+
data.generator_idx[k] = gen_dict[elm.generator.idtag]
|
1188
|
+
|
1189
|
+
data.names[k] = elm.name
|
1190
|
+
data.idtag[k] = elm.idtag
|
1191
|
+
|
1192
|
+
data.efficiency[k] = elm.efficiency
|
1193
|
+
data.max_flow_rate[k] = elm.max_flow_rate
|
1194
|
+
|
1195
|
+
return data
|
1196
|
+
|
1197
|
+
|
1198
|
+
def get_fluid_path_data(circuit: MultiCircuit,
|
1199
|
+
plant_dict: Dict[str, int],
|
1200
|
+
t_idx=-1) -> ds.FluidPathData:
|
1201
|
+
"""
|
1202
|
+
|
1203
|
+
:param circuit:
|
1204
|
+
:param plant_dict:
|
1205
|
+
:param t_idx:
|
1206
|
+
:return:
|
1207
|
+
"""
|
1208
|
+
devices = circuit.get_fluid_paths()
|
1209
|
+
|
1210
|
+
data = ds.FluidPathData(nelm=len(devices))
|
1211
|
+
|
1212
|
+
for k, elm in enumerate(devices):
|
1213
|
+
data.names[k] = elm.name
|
1214
|
+
data.idtag[k] = elm.idtag
|
1215
|
+
|
1216
|
+
# pass idx, check
|
1217
|
+
data.source_idx[k] = plant_dict[elm.source.idtag]
|
1218
|
+
data.target_idx[k] = plant_dict[elm.target.idtag]
|
1219
|
+
|
1220
|
+
data.min_flow[k] = elm.min_flow
|
1221
|
+
data.max_flow[k] = elm.max_flow
|
1222
|
+
|
1223
|
+
return data
|
{GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/Compilers/circuit_to_newton_pa.py
RENAMED
@@ -33,11 +33,11 @@ from GridCalEngine.basic_structures import ConvergenceReport
|
|
33
33
|
|
34
34
|
if TYPE_CHECKING: # Only imports the below statements during type checking
|
35
35
|
from GridCalEngine.Simulations.OPF.opf_results import OptimalPowerFlowResults
|
36
|
-
from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions
|
36
|
+
from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions
|
37
37
|
from GridCalEngine.Simulations.ContingencyAnalysis.contingency_analysis_options import ContingencyAnalysisOptions
|
38
|
+
from GridCalEngine.Simulations.ContingencyAnalysis.contingency_analysis_results import ContingencyAnalysisResults
|
38
39
|
|
39
|
-
|
40
|
-
NEWTON_PA_RECOMMENDED_VERSION = "2.1.13"
|
40
|
+
NEWTON_PA_RECOMMENDED_VERSION = "2.1.14"
|
41
41
|
NEWTON_PA_VERSION = ''
|
42
42
|
NEWTON_PA_AVAILABLE = False
|
43
43
|
try:
|
@@ -47,27 +47,31 @@ try:
|
|
47
47
|
|
48
48
|
# activate
|
49
49
|
if not npa.isLicenseActivated():
|
50
|
+
|
51
|
+
# search for the license
|
50
52
|
npa_license = os.path.join(get_create_gridcal_folder(), 'newton.lic')
|
51
53
|
if os.path.exists(npa_license):
|
54
|
+
|
55
|
+
# license found
|
52
56
|
npa.activateLicense(npa_license)
|
53
57
|
if npa.isLicenseActivated():
|
58
|
+
|
59
|
+
# license valie
|
54
60
|
NEWTON_PA_AVAILABLE = True
|
61
|
+
NEWTON_PA_VERSION = npa.get_version()
|
55
62
|
|
56
|
-
if npa.get_version() < NEWTON_PA_RECOMMENDED_VERSION:
|
57
|
-
warnings.warn(f"Recommended version for Newton is {NEWTON_PA_RECOMMENDED_VERSION} "
|
58
|
-
f"instead of {npa.get_version()}")
|
59
63
|
else:
|
60
|
-
#
|
61
|
-
# "installed, tried to activate with {} but the license did not work :/".format(npa_license))
|
64
|
+
# license not valid
|
62
65
|
NEWTON_PA_AVAILABLE = False
|
63
66
|
else:
|
64
|
-
#
|
67
|
+
# license not found
|
65
68
|
NEWTON_PA_AVAILABLE = False
|
66
69
|
else:
|
67
|
-
#
|
70
|
+
# already activated
|
68
71
|
NEWTON_PA_AVAILABLE = True
|
69
72
|
NEWTON_PA_VERSION = npa.get_version()
|
70
73
|
|
74
|
+
if NEWTON_PA_AVAILABLE:
|
71
75
|
if NEWTON_PA_VERSION < NEWTON_PA_RECOMMENDED_VERSION:
|
72
76
|
warnings.warn(f"Recommended version for Newton is {NEWTON_PA_RECOMMENDED_VERSION} "
|
73
77
|
f"instead of {NEWTON_PA_VERSION}")
|
@@ -75,7 +79,6 @@ try:
|
|
75
79
|
except ImportError as e:
|
76
80
|
NEWTON_PA_AVAILABLE = False
|
77
81
|
NEWTON_PA_VERSION = ''
|
78
|
-
# print('Newton Power Analytics is not available:', e)
|
79
82
|
|
80
83
|
# numpy integer type for Newton's uword
|
81
84
|
BINT = np.ulonglong
|
@@ -989,8 +992,10 @@ def to_newton_pa(circuit: MultiCircuit,
|
|
989
992
|
add_npa_generators(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices, opf_results)
|
990
993
|
add_battery_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices, opf_results)
|
991
994
|
add_npa_line(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices)
|
992
|
-
add_transformer_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices,
|
993
|
-
|
995
|
+
add_transformer_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices,
|
996
|
+
override_branch_controls)
|
997
|
+
add_transformer3w_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices,
|
998
|
+
override_branch_controls)
|
994
999
|
add_vsc_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices)
|
995
1000
|
add_dc_line_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices)
|
996
1001
|
add_hvdc_data(circuit, npa_circuit, bus_dict, use_time_series, n_time, time_indices)
|
@@ -1005,7 +1010,7 @@ class FakeAdmittances:
|
|
1005
1010
|
Fake admittances class needed to make the translation
|
1006
1011
|
"""
|
1007
1012
|
|
1008
|
-
def __init__(self):
|
1013
|
+
def __init__(self) -> None:
|
1009
1014
|
self.Ybus = None
|
1010
1015
|
self.Yf = None
|
1011
1016
|
self.Yt = None
|
@@ -1035,6 +1040,11 @@ def get_snapshots_from_newtonpa(circuit: MultiCircuit, override_branch_controls=
|
|
1035
1040
|
ngen=0,
|
1036
1041
|
nbatt=0,
|
1037
1042
|
nshunt=0,
|
1043
|
+
nfluidnode=0,
|
1044
|
+
nfluidturbine=0,
|
1045
|
+
nfluidpump=0,
|
1046
|
+
nfluidp2x=0,
|
1047
|
+
nfluidpath=0,
|
1038
1048
|
sbase=0,
|
1039
1049
|
t_idx=0)
|
1040
1050
|
|
@@ -1312,7 +1322,6 @@ def newton_pa_contingencies(circuit: MultiCircuit,
|
|
1312
1322
|
mode = npa.ContingencyAnalysisMode.Full
|
1313
1323
|
|
1314
1324
|
# npa.FileHandler().save(npa_circuit, "whatever.newton")
|
1315
|
-
|
1316
1325
|
# print('time_indices')
|
1317
1326
|
# print(time_indices)
|
1318
1327
|
|
@@ -1554,6 +1563,65 @@ def translate_newton_pa_opf_results(grid: MultiCircuit, res: "npa.NonlinearOpfRe
|
|
1554
1563
|
return results
|
1555
1564
|
|
1556
1565
|
|
1566
|
+
def translate_contingency_report(newton_report, gridcal_report):
|
1567
|
+
"""
|
1568
|
+
Translate contingency report
|
1569
|
+
:param newton_report:
|
1570
|
+
:param gridcal_report:
|
1571
|
+
:return:
|
1572
|
+
"""
|
1573
|
+
for entry in newton_report.entries:
|
1574
|
+
gridcal_report.add(time_index=entry.time_index,
|
1575
|
+
base_name=entry.base_name,
|
1576
|
+
base_uuid=entry.base_uuid,
|
1577
|
+
base_flow=np.abs(entry.base_flow),
|
1578
|
+
base_rating=entry.base_rating,
|
1579
|
+
base_loading=entry.base_loading,
|
1580
|
+
contingency_idx=entry.contingency_idx,
|
1581
|
+
contingency_name=entry.contingency_name,
|
1582
|
+
contingency_uuid=entry.contingency_uuid,
|
1583
|
+
post_contingency_flow=np.abs(entry.post_contingency_flow),
|
1584
|
+
contingency_rating=entry.contingency_rating,
|
1585
|
+
post_contingency_loading=entry.post_contingency_loading)
|
1586
|
+
|
1587
|
+
|
1588
|
+
def translate_newton_pa_contingencies(grid: MultiCircuit,
|
1589
|
+
con_res: "npa.ContingencyAnalysisResults") -> ContingencyAnalysisResults:
|
1590
|
+
"""
|
1591
|
+
|
1592
|
+
:param grid:
|
1593
|
+
:param con_res:
|
1594
|
+
:return:
|
1595
|
+
"""
|
1596
|
+
from GridCalEngine.Simulations.ContingencyAnalysis.contingency_analysis_results import ContingencyAnalysisResults
|
1597
|
+
|
1598
|
+
# declare the results
|
1599
|
+
results = ContingencyAnalysisResults(ncon=len(grid.contingency_groups),
|
1600
|
+
nbr=grid.get_branch_number_wo_hvdc(),
|
1601
|
+
nbus=grid.get_bus_number(),
|
1602
|
+
branch_names=grid.get_branch_names_wo_hvdc(),
|
1603
|
+
bus_names=grid.get_bus_names(),
|
1604
|
+
bus_types=grid.get_bus_default_types(),
|
1605
|
+
con_names=grid.get_contingency_group_names())
|
1606
|
+
|
1607
|
+
"""
|
1608
|
+
self.voltage: CxMat = np.ones((ncon, nbus), dtype=complex)
|
1609
|
+
self.Sbus: CxMat = np.zeros((ncon, nbus), dtype=complex)
|
1610
|
+
self.Sf: CxMat = np.zeros((ncon, nbr), dtype=complex)
|
1611
|
+
self.loading: CxMat = np.zeros((ncon, nbr), dtype=complex)
|
1612
|
+
|
1613
|
+
self.report: ContingencyResultsReport = ContingencyResultsReport()
|
1614
|
+
"""
|
1615
|
+
|
1616
|
+
# results.voltage = con_res.contingency_voltages[0] # these are not translatable
|
1617
|
+
# results.Sf = con_res.contingency_flows[0]
|
1618
|
+
# results.loading = con_res.contingency_loading[0]
|
1619
|
+
translate_contingency_report(newton_report=con_res.report,
|
1620
|
+
gridcal_report=results.report)
|
1621
|
+
|
1622
|
+
return results
|
1623
|
+
|
1624
|
+
|
1557
1625
|
def debug_newton_pa_circuit_at(npa_circuit: "npa.HybridCircuit", t: int = None):
|
1558
1626
|
"""
|
1559
1627
|
Debugging function
|
@@ -21,3 +21,8 @@ from GridCalEngine.Core.DataStructures.generator_data import GeneratorData
|
|
21
21
|
from GridCalEngine.Core.DataStructures.hvdc_data import HvdcData
|
22
22
|
from GridCalEngine.Core.DataStructures.load_data import LoadData
|
23
23
|
from GridCalEngine.Core.DataStructures.shunt_data import ShuntData
|
24
|
+
from GridCalEngine.Core.DataStructures.fluid_node_data import FluidNodeData
|
25
|
+
from GridCalEngine.Core.DataStructures.fluid_turbine_data import FluidTurbineData
|
26
|
+
from GridCalEngine.Core.DataStructures.fluid_pump_data import FluidPumpData
|
27
|
+
from GridCalEngine.Core.DataStructures.fluid_p2x_data import FluidP2XData
|
28
|
+
from GridCalEngine.Core.DataStructures.fluid_path_data import FluidPathData
|
{GridCalEngine-5.0.10 → GridCalEngine-5.0.11}/GridCalEngine/Core/DataStructures/branch_data.py
RENAMED
@@ -66,6 +66,10 @@ class BranchData:
|
|
66
66
|
self.F: IntVec = np.zeros(self.nelm, dtype=int) # indices of the "from" buses
|
67
67
|
self.T: IntVec = np.zeros(self.nelm, dtype=int) # indices of the "to" buses
|
68
68
|
|
69
|
+
# reliabilty
|
70
|
+
self.mttf: Vec = np.zeros(self.nelm, dtype=float)
|
71
|
+
self.mttr: Vec = np.zeros(self.nelm, dtype=float)
|
72
|
+
|
69
73
|
# composite losses curve (a * x^2 + b * x + c)
|
70
74
|
self.a: Vec = np.zeros(self.nelm, dtype=float)
|
71
75
|
self.b: Vec = np.zeros(self.nelm, dtype=float)
|
@@ -140,6 +144,9 @@ class BranchData:
|
|
140
144
|
data.names = self.names[elm_idx]
|
141
145
|
data.idtag = self.idtag[elm_idx]
|
142
146
|
|
147
|
+
data.mttf = self.mttf[elm_idx]
|
148
|
+
data.mttr = self.mttr[elm_idx]
|
149
|
+
|
143
150
|
data.R = self.R[elm_idx]
|
144
151
|
data.X = self.X[elm_idx]
|
145
152
|
data.G = self.G[elm_idx]
|
@@ -212,6 +219,9 @@ class BranchData:
|
|
212
219
|
data.names = self.names.copy()
|
213
220
|
data.idtag = self.idtag.copy()
|
214
221
|
|
222
|
+
data.mttf = self.mttf.copy()
|
223
|
+
data.mttr = self.mttr.copy()
|
224
|
+
|
215
225
|
data.R = self.R.copy()
|
216
226
|
data.X = self.X.copy()
|
217
227
|
data.G = self.G.copy()
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# GridCal
|
2
|
+
# Copyright (C) 2015 - 2023 Santiago Peñate Vera
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU Lesser General Public License
|
15
|
+
# along with this program; if not, write to the Free Software Foundation,
|
16
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
17
|
+
import numpy as np
|
18
|
+
from GridCalEngine.basic_structures import Vec, CxVec, IntVec, StrVec
|
19
|
+
|
20
|
+
|
21
|
+
class FluidNodeData:
|
22
|
+
"""
|
23
|
+
FluidNodeData
|
24
|
+
"""
|
25
|
+
|
26
|
+
def __init__(self, nelm: int):
|
27
|
+
"""
|
28
|
+
Fluid node data arrays
|
29
|
+
:param nelm: number of fluid nodes
|
30
|
+
"""
|
31
|
+
self.nelm: int = nelm
|
32
|
+
|
33
|
+
self.names: StrVec = np.empty(nelm, dtype=object)
|
34
|
+
self.idtag: StrVec = np.empty(nelm, dtype=object)
|
35
|
+
|
36
|
+
self.min_level = np.zeros(nelm, dtype=float)
|
37
|
+
self.max_level = np.zeros(nelm, dtype=float)
|
38
|
+
self.initial_level = np.zeros(nelm, dtype=float)
|
39
|
+
# self.bus_index = np.empty() # TODO: check if relevant
|
40
|
+
self.inflow = np.zeros(nelm, dtype=float)
|
41
|
+
|
42
|
+
def copy(self) -> "FluidNodeData":
|
43
|
+
"""
|
44
|
+
Get deep copy of this structure
|
45
|
+
:return: new FluidNodeData instance
|
46
|
+
"""
|
47
|
+
|
48
|
+
data = FluidNodeData(nelm=self.nelm)
|
49
|
+
|
50
|
+
data.names = self.names.copy()
|
51
|
+
data.idtag = self.idtag.copy()
|
52
|
+
|
53
|
+
data.min_level = self.min_level.copy()
|
54
|
+
data.max_level = self.max_level.copy()
|
55
|
+
data.initial_level = self.initial_level.copy()
|
56
|
+
|
57
|
+
data.inflow = self.inflow.copy()
|
58
|
+
|
59
|
+
return data
|
60
|
+
|
61
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# GridCal
|
2
|
+
# Copyright (C) 2015 - 2023 Santiago Peñate Vera
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU Lesser General Public License
|
15
|
+
# along with this program; if not, write to the Free Software Foundation,
|
16
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
17
|
+
from GridCalEngine.Core.DataStructures.fluid_turbine_data import FluidTurbineData
|
18
|
+
|
19
|
+
|
20
|
+
class FluidP2XData(FluidTurbineData):
|
21
|
+
"""
|
22
|
+
FluidP2XData
|
23
|
+
"""
|
24
|
+
|
25
|
+
def __init__(self, nelm: int):
|
26
|
+
"""
|
27
|
+
Fluid P2X data arrays
|
28
|
+
:param nelm: number of fluid p2xs
|
29
|
+
"""
|
30
|
+
|
31
|
+
FluidTurbineData.__init__(self,
|
32
|
+
nelm=nelm)
|
33
|
+
|