GridCalEngine 5.3.0__tar.gz → 5.3.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Compilers/circuit_to_data.py +427 -670
  2. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Compilers/circuit_to_pgm.py +2 -2
  3. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/battery_data.py +2 -4
  4. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/branch_parent_data.py +37 -72
  5. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/bus_data.py +1 -82
  6. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/generator_data.py +42 -94
  7. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/hvdc_data.py +97 -51
  8. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/load_data.py +33 -39
  9. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/numerical_circuit.py +1006 -588
  10. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/passive_branch_data.py +23 -13
  11. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/shunt_data.py +29 -42
  12. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/vsc_data.py +17 -20
  13. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/branch.py +8 -24
  14. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/dc_line.py +1 -2
  15. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/hvdc_line.py +11 -16
  16. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/line.py +94 -34
  17. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/series_reactance.py +1 -2
  18. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/switch.py +57 -15
  19. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/tap_changer.py +11 -44
  20. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/transformer.py +7 -3
  21. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/transformer3w.py +6 -8
  22. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/upfc.py +1 -2
  23. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/vsc.py +1 -2
  24. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/winding.py +0 -1
  25. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/palettes.py +2 -2
  26. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/fluid_node.py +1 -1
  27. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/battery.py +1 -2
  28. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/controllable_shunt.py +0 -20
  29. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/generator.py +4 -45
  30. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/branch_parent.py +81 -118
  31. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/controllable_branch_parent.py +3 -5
  32. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/editable_device.py +1 -26
  33. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/generator_parent.py +3 -40
  34. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/injection_parent.py +42 -38
  35. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/physical_device.py +0 -2
  36. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Substation/bus.py +5 -51
  37. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Substation/busbar.py +4 -9
  38. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Substation/connectivity_node.py +4 -25
  39. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Substation/substation.py +17 -17
  40. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/assets.py +25 -106
  41. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/multi_circuit.py +39 -51
  42. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_create_instances.py +20 -76
  43. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_export.py +3 -22
  44. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +39 -189
  45. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_utils.py +44 -25
  46. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ac_line_segment.py +1 -1
  47. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nonlinear_shunt_compensator_point.py +1 -1
  48. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ac_line_segment.py +1 -1
  49. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_converter.py +1 -1
  50. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nonlinear_shunt_compensator_point.py +1 -1
  51. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/gridcal_to_cgmes.py +85 -180
  52. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cim16/cim_enums.py +18 -18
  53. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/dgs/dgs_parser.py +44 -44
  54. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/file_handler.py +6 -27
  55. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/json_parser.py +2 -2
  56. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/pack_unpack.py +2 -2
  57. gridcalengine-5.3.0a1/GridCalEngine/IO/matpower/__init__.py +6 -0
  58. {gridcalengine-5.3.0/GridCalEngine/IO/matpower/legacy → gridcalengine-5.3.0a1/GridCalEngine/IO/matpower}/matpower_bus_definitions.py +94 -0
  59. {gridcalengine-5.3.0/GridCalEngine/IO/matpower/legacy → gridcalengine-5.3.0a1/GridCalEngine/IO/matpower}/matpower_parser.py +6 -43
  60. gridcalengine-5.3.0a1/GridCalEngine/IO/matpower/matpower_storage_definitions.py +49 -0
  61. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/others/ipa_parser.py +2 -2
  62. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/others/plx_parser.py +6 -6
  63. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/area.py +1 -1
  64. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/facts.py +3 -3
  65. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/gne_device.py +2 -2
  66. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/inter_area.py +2 -2
  67. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/node.py +4 -7
  68. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/psse_circuit.py +1 -13
  69. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/substation.py +3 -12
  70. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/system_switching_device.py +9 -22
  71. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/transformer.py +3 -3
  72. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/two_terminal_dc_line.py +4 -4
  73. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/vsc_dc_line.py +1 -1
  74. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/zone.py +1 -1
  75. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/gridcal_to_raw.py +0 -1
  76. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/raw_parser_writer.py +26 -66
  77. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/raw_to_gridcal.py +28 -158
  78. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py +28 -37
  79. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingency_analysis.py +1 -1
  80. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/linear_contingency_analysis.py +16 -17
  81. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/nonlinear_contingency_analysis.py +15 -15
  82. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/optimal_linear_contingency_analysis.py +16 -17
  83. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingencies_report.py +15 -15
  84. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_driver.py +6 -3
  85. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +4 -4
  86. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_driver.py +25 -33
  87. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Derivatives/ac_jacobian.py +1 -2
  88. gridcalengine-5.3.0a1/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py +987 -0
  89. gridcalengine-5.3.0a1/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +1271 -0
  90. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Dynamics/dynamic_modules.py +2 -2
  91. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InputsAnalysis/inputs_analysis_driver.py +1 -2
  92. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +21 -33
  93. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/linear_analysis_driver.py +6 -5
  94. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/ntc_opf.py +28 -42
  95. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py +54 -56
  96. gridcalengine-5.3.0a1/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_autodif.py +476 -0
  97. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py +18 -26
  98. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/linear_opf_ts.py +25 -30
  99. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_advanced_formulation.py +56 -53
  100. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_basic_formulation.py +5 -26
  101. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_formulation_template.py +2 -54
  102. gridcalengine-5.3.0a1/GridCalEngine/Simulations/PowerFlow/Formulations/pf_generalized_formulation.py +1957 -0
  103. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +2 -3
  104. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/discrete_controls.py +0 -41
  105. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +1 -1
  106. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +1 -27
  107. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +74 -76
  108. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +1 -1
  109. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py +14 -22
  110. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +5 -6
  111. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py +16 -32
  112. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py +9 -19
  113. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/grid_analysis.py +2 -2
  114. gridcalengine-5.3.0a1/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +644 -0
  115. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_driver.py +35 -41
  116. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +96 -98
  117. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/SigmaAnalysis/sigma_analysis_driver.py +22 -30
  118. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/StateEstimation/state_stimation_driver.py +18 -19
  119. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_driver.py +24 -24
  120. gridcalengine-5.3.0a1/GridCalEngine/Simulations/Topology/topology_processor_driver.py +306 -0
  121. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Topology/topology_reduction_driver.py +5 -0
  122. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/driver_template.py +0 -5
  123. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Topology/admittance_matrices.py +33 -45
  124. gridcalengine-5.3.0a1/GridCalEngine/Topology/generalized_simulation_indices.py +923 -0
  125. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Topology/simulation_indices.py +2 -0
  126. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Topology/topology.py +13 -120
  127. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Topology/topology_processor.py +116 -24
  128. gridcalengine-5.3.0a1/GridCalEngine/Utils/MIP/ortools_interface.py +339 -0
  129. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/pulp_interface.py +2 -2
  130. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/common.py +1 -28
  131. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/ips.py +4 -4
  132. gridcalengine-5.3.0a1/GridCalEngine/Utils/NumericalMethods/numerical_stability.py +59 -0
  133. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Sparse/csc.py +2 -2
  134. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Sparse/csc2.py +89 -493
  135. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Sparse/csc_numba.py +5 -5
  136. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Sparse/sparse_array.py +2 -0
  137. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/__init__.py +0 -2
  138. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/__version__.py +1 -1
  139. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/basic_structures.py +6 -93
  140. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/enumerations.py +6 -6
  141. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/PKG-INFO +1 -1
  142. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/setup.py +2 -2
  143. gridcalengine-5.3.0/GridCalEngine/IO/matpower/__init__.py +0 -6
  144. gridcalengine-5.3.0/GridCalEngine/IO/matpower/area.py +0 -22
  145. gridcalengine-5.3.0/GridCalEngine/IO/matpower/branch.py +0 -102
  146. gridcalengine-5.3.0/GridCalEngine/IO/matpower/branch_dc.py +0 -36
  147. gridcalengine-5.3.0/GridCalEngine/IO/matpower/bus.py +0 -72
  148. gridcalengine-5.3.0/GridCalEngine/IO/matpower/bus_dc.py +0 -34
  149. gridcalengine-5.3.0/GridCalEngine/IO/matpower/converter_dc.py +0 -110
  150. gridcalengine-5.3.0/GridCalEngine/IO/matpower/generator.py +0 -122
  151. gridcalengine-5.3.0/GridCalEngine/IO/matpower/matpower_circuit.py +0 -156
  152. gridcalengine-5.3.0/GridCalEngine/IO/matpower/matpower_to_gridcal.py +0 -660
  153. gridcalengine-5.3.0/GridCalEngine/IO/matpower/matpower_utils.py +0 -78
  154. gridcalengine-5.3.0/GridCalEngine/IO/raw/devices/impedance_correction_table.py +0 -99
  155. gridcalengine-5.3.0/GridCalEngine/IO/raw/devices/multi_section_line.py +0 -86
  156. gridcalengine-5.3.0/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +0 -3090
  157. gridcalengine-5.3.0/GridCalEngine/Simulations/OPF/Formulations/ac_opf_problem.py +0 -130
  158. gridcalengine-5.3.0/GridCalEngine/Simulations/OPF/NumericalMethods/newton_raphson_ips_fx.py +0 -462
  159. gridcalengine-5.3.0/GridCalEngine/Simulations/PowerFlow/Formulations/__init__.py +0 -0
  160. gridcalengine-5.3.0/GridCalEngine/Simulations/PowerFlow/Formulations/pf_generalized_formulation.py +0 -3099
  161. gridcalengine-5.3.0/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +0 -981
  162. gridcalengine-5.3.0/GridCalEngine/Simulations/Topology/topology_processor_driver.py +0 -54
  163. gridcalengine-5.3.0/GridCalEngine/Utils/NumericalMethods/numerical_stability.py +0 -64
  164. gridcalengine-5.3.0/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/__init__.py +0 -0
  165. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Compilers/__init__.py +0 -0
  166. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Compilers/circuit_to_bentayga.py +0 -0
  167. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Compilers/circuit_to_newton_pa.py +0 -0
  168. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Compilers/circuit_to_optimods.py +0 -0
  169. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/__init__.py +0 -0
  170. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/active_branch_data.py +0 -0
  171. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/fluid_node_data.py +0 -0
  172. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/fluid_p2x_data.py +0 -0
  173. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/fluid_path_data.py +0 -0
  174. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/fluid_pump_data.py +0 -0
  175. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/DataStructures/fluid_turbine_data.py +0 -0
  176. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/__init__.py +0 -0
  177. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/area.py +0 -0
  178. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/branch_group.py +0 -0
  179. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/community.py +0 -0
  180. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/contingency.py +0 -0
  181. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/contingency_group.py +0 -0
  182. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/country.py +0 -0
  183. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/facility.py +0 -0
  184. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/inter_aggregation_info.py +0 -0
  185. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/investment.py +0 -0
  186. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/investments_group.py +0 -0
  187. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/modelling_authority.py +0 -0
  188. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/municipality.py +0 -0
  189. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/region.py +0 -0
  190. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/remedial_action.py +0 -0
  191. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/remedial_action_group.py +0 -0
  192. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Aggregation/zone.py +0 -0
  193. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Associations/__init__.py +0 -0
  194. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Associations/association.py +0 -0
  195. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Associations/emission_gas.py +0 -0
  196. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Associations/fuel.py +0 -0
  197. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Associations/technology.py +0 -0
  198. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/__init__.py +0 -0
  199. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/line_locations.py +0 -0
  200. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/overhead_line_type.py +0 -0
  201. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/sequence_line_type.py +0 -0
  202. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/transformer_type.py +0 -0
  203. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/underground_line_type.py +0 -0
  204. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Branches/wire.py +0 -0
  205. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/__init__.py +0 -0
  206. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/base_diagram.py +0 -0
  207. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/graphic_location.py +0 -0
  208. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/map_diagram.py +0 -0
  209. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/map_location.py +0 -0
  210. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Diagrams/schematic_diagram.py +0 -0
  211. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/__init__.py +0 -0
  212. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/fluid_injection_template.py +0 -0
  213. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/fluid_p2x.py +0 -0
  214. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/fluid_path.py +0 -0
  215. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/fluid_pump.py +0 -0
  216. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Fluid/fluid_turbine.py +0 -0
  217. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/__init__.py +0 -0
  218. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/current_injection.py +0 -0
  219. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/external_grid.py +0 -0
  220. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/generator_q_curve.py +0 -0
  221. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/load.py +0 -0
  222. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/shunt.py +0 -0
  223. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Injections/static_generator.py +0 -0
  224. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/__init__.py +0 -0
  225. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/load_parent.py +0 -0
  226. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Parents/shunt_parent.py +0 -0
  227. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Substation/__init__.py +0 -0
  228. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/Substation/voltage_level.py +0 -0
  229. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/__init__.py +0 -0
  230. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/comparison.py +0 -0
  231. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/measurement.py +0 -0
  232. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/profile.py +0 -0
  233. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Devices/types.py +0 -0
  234. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/__init__.py +0 -0
  235. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/base/__init__.py +0 -0
  236. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/base/base_circuit.py +0 -0
  237. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/base/base_device.py +0 -0
  238. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/base/base_property.py +0 -0
  239. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/base/units.py +0 -0
  240. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/__init__.py +0 -0
  241. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/__init__.py +0 -0
  242. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/base.py +0 -0
  243. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_assets/__init__.py +0 -0
  244. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_assets/cgmes_2_4_15_assets.py +0 -0
  245. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_assets/cgmes_3_0_0_assets.py +0 -0
  246. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_circuit.py +0 -0
  247. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_data_parser.py +0 -0
  248. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_data_validator.py +0 -0
  249. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_enums.py +0 -0
  250. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_property.py +0 -0
  251. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/__init__.py +0 -0
  252. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/__init__.py +0 -0
  253. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_converter.py +0 -0
  254. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_converterdc_terminal.py +0 -0
  255. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_terminal.py +0 -0
  256. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/active_power_limit.py +0 -0
  257. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/analog_control.py +0 -0
  258. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/apparent_power_limit.py +0 -0
  259. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/asynchronous_machine.py +0 -0
  260. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/base_voltage.py +0 -0
  261. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/basic_interval_schedule.py +0 -0
  262. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/bay.py +0 -0
  263. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/breaker.py +0 -0
  264. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/bus_name_marker.py +0 -0
  265. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/busbar_section.py +0 -0
  266. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conducting_equipment.py +0 -0
  267. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conductor.py +0 -0
  268. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conform_load.py +0 -0
  269. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conform_load_group.py +0 -0
  270. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connectivity_node.py +0 -0
  271. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connectivity_node_container.py +0 -0
  272. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connector.py +0 -0
  273. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control.py +0 -0
  274. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control_area.py +0 -0
  275. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control_area_generating_unit.py +0 -0
  276. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/coordinate_system.py +0 -0
  277. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/cs_converter.py +0 -0
  278. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/current_limit.py +0 -0
  279. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/curve.py +0 -0
  280. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/curve_data.py +0 -0
  281. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_base_terminal.py +0 -0
  282. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_breaker.py +0 -0
  283. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_busbar.py +0 -0
  284. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_chopper.py +0 -0
  285. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_conducting_equipment.py +0 -0
  286. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_converter_unit.py +0 -0
  287. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_disconnector.py +0 -0
  288. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_equipment_container.py +0 -0
  289. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_ground.py +0 -0
  290. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_line.py +0 -0
  291. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_line_segment.py +0 -0
  292. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_node.py +0 -0
  293. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_series_device.py +0 -0
  294. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_shunt.py +0 -0
  295. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_switch.py +0 -0
  296. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_terminal.py +0 -0
  297. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_topological_island.py +0 -0
  298. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_topological_node.py +0 -0
  299. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/disconnector.py +0 -0
  300. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/earth_fault_compensator.py +0 -0
  301. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_area.py +0 -0
  302. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_consumer.py +0 -0
  303. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_scheduling_type.py +0 -0
  304. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_source.py +0 -0
  305. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equipment.py +0 -0
  306. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equipment_container.py +0 -0
  307. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_branch.py +0 -0
  308. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_equipment.py +0 -0
  309. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_injection.py +0 -0
  310. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_network.py +0 -0
  311. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_shunt.py +0 -0
  312. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/external_network_injection.py +0 -0
  313. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/fossil_fuel.py +0 -0
  314. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/full_model.py +0 -0
  315. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/generating_unit.py +0 -0
  316. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/geographical_region.py +0 -0
  317. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ground.py +0 -0
  318. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ground_disconnector.py +0 -0
  319. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/grounding_impedance.py +0 -0
  320. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_generating_unit.py +0 -0
  321. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_power_plant.py +0 -0
  322. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_pump.py +0 -0
  323. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/identified_object.py +0 -0
  324. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/junction.py +0 -0
  325. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/limit.py +0 -0
  326. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/limit_set.py +0 -0
  327. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/line.py +0 -0
  328. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/linear_shunt_compensator.py +0 -0
  329. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_area.py +0 -0
  330. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_break_switch.py +0 -0
  331. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_group.py +0 -0
  332. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_response_characteristic.py +0 -0
  333. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/location.py +0 -0
  334. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/measurement.py +0 -0
  335. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/measurement_value.py +0 -0
  336. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/mutual_coupling.py +0 -0
  337. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/non_conform_load.py +0 -0
  338. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/non_conform_load_group.py +0 -0
  339. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nonlinear_shunt_compensator.py +0 -0
  340. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nuclear_generating_unit.py +0 -0
  341. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit.py +0 -0
  342. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit_set.py +0 -0
  343. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit_type.py +0 -0
  344. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/per_lengthdc_line_parameter.py +0 -0
  345. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/petersen_coil.py +0 -0
  346. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer.py +0 -0
  347. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_asymmetrical.py +0 -0
  348. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_linear.py +0 -0
  349. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_non_linear.py +0 -0
  350. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_symmetrical.py +0 -0
  351. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_table.py +0 -0
  352. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_table_point.py +0 -0
  353. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_tabular.py +0 -0
  354. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/position_point.py +0 -0
  355. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_system_resource.py +0 -0
  356. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_transformer.py +0 -0
  357. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_transformer_end.py +0 -0
  358. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/protected_switch.py +0 -0
  359. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/quality61850.py +0 -0
  360. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer.py +0 -0
  361. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer_table.py +0 -0
  362. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer_table_point.py +0 -0
  363. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/reactive_capability_curve.py +0 -0
  364. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regular_interval_schedule.py +0 -0
  365. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regulating_cond_eq.py +0 -0
  366. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regulating_control.py +0 -0
  367. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/reporting_group.py +0 -0
  368. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/rotating_machine.py +0 -0
  369. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/season_day_type_schedule.py +0 -0
  370. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/series_compensator.py +0 -0
  371. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/shunt_compensator.py +0 -0
  372. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/solar_generating_unit.py +0 -0
  373. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/static_var_compensator.py +0 -0
  374. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sub_geographical_region.py +0 -0
  375. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sub_load_area.py +0 -0
  376. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/substation.py +0 -0
  377. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_injection.py +0 -0
  378. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_power_flow.py +0 -0
  379. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_shunt_compensator_sections.py +0 -0
  380. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_status.py +0 -0
  381. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_tap_step.py +0 -0
  382. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_voltage.py +0 -0
  383. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/switch.py +0 -0
  384. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/synchronous_machine.py +0 -0
  385. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer.py +0 -0
  386. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer_control.py +0 -0
  387. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer_table_point.py +0 -0
  388. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/terminal.py +0 -0
  389. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/thermal_generating_unit.py +0 -0
  390. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tie_flow.py +0 -0
  391. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/topological_island.py +0 -0
  392. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/topological_node.py +0 -0
  393. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/transformer_end.py +0 -0
  394. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/voltage_level.py +0 -0
  395. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/voltage_limit.py +0 -0
  396. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/vs_capability_curve.py +0 -0
  397. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/vs_converter.py +0 -0
  398. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/wind_generating_unit.py +0 -0
  399. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/__init__.py +0 -0
  400. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/__init__.py +0 -0
  401. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_converterdc_terminal.py +0 -0
  402. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_terminal.py +0 -0
  403. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/active_power_limit.py +0 -0
  404. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/analog_control.py +0 -0
  405. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/apparent_power_limit.py +0 -0
  406. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/asynchronous_machine.py +0 -0
  407. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/auxiliary_equipment.py +0 -0
  408. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/base_voltage.py +0 -0
  409. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/basic_interval_schedule.py +0 -0
  410. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/battery_unit.py +0 -0
  411. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/bay.py +0 -0
  412. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/boundary_point.py +0 -0
  413. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/breaker.py +0 -0
  414. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/bus_name_marker.py +0 -0
  415. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/busbar_section.py +0 -0
  416. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/caes_plant.py +0 -0
  417. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/clamp.py +0 -0
  418. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cogeneration_plant.py +0 -0
  419. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/combined_cycle_plant.py +0 -0
  420. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conducting_equipment.py +0 -0
  421. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conductor.py +0 -0
  422. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conform_load.py +0 -0
  423. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conform_load_group.py +0 -0
  424. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connectivity_node.py +0 -0
  425. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connectivity_node_container.py +0 -0
  426. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connector.py +0 -0
  427. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control.py +0 -0
  428. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control_area.py +0 -0
  429. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control_area_generating_unit.py +0 -0
  430. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/coordinate_system.py +0 -0
  431. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cs_converter.py +0 -0
  432. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/current_limit.py +0 -0
  433. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/current_transformer.py +0 -0
  434. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/curve.py +0 -0
  435. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/curve_data.py +0 -0
  436. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cut.py +0 -0
  437. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_base_terminal.py +0 -0
  438. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_breaker.py +0 -0
  439. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_busbar.py +0 -0
  440. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_chopper.py +0 -0
  441. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_conducting_equipment.py +0 -0
  442. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_converter_unit.py +0 -0
  443. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_disconnector.py +0 -0
  444. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_equipment_container.py +0 -0
  445. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_ground.py +0 -0
  446. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_line.py +0 -0
  447. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_line_segment.py +0 -0
  448. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_node.py +0 -0
  449. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_series_device.py +0 -0
  450. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_shunt.py +0 -0
  451. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_switch.py +0 -0
  452. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_terminal.py +0 -0
  453. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_topological_island.py +0 -0
  454. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_topological_node.py +0 -0
  455. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/disconnecting_circuit_breaker.py +0 -0
  456. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/disconnector.py +0 -0
  457. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/earth_fault_compensator.py +0 -0
  458. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_area.py +0 -0
  459. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_connection.py +0 -0
  460. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_consumer.py +0 -0
  461. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_scheduling_type.py +0 -0
  462. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_source.py +0 -0
  463. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equipment.py +0 -0
  464. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equipment_container.py +0 -0
  465. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_branch.py +0 -0
  466. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_equipment.py +0 -0
  467. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_injection.py +0 -0
  468. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_network.py +0 -0
  469. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_shunt.py +0 -0
  470. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/external_network_injection.py +0 -0
  471. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fault_indicator.py +0 -0
  472. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fossil_fuel.py +0 -0
  473. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fuse.py +0 -0
  474. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/generating_unit.py +0 -0
  475. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/geographical_region.py +0 -0
  476. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ground.py +0 -0
  477. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ground_disconnector.py +0 -0
  478. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/grounding_impedance.py +0 -0
  479. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_generating_unit.py +0 -0
  480. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_power_plant.py +0 -0
  481. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_pump.py +0 -0
  482. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/identified_object.py +0 -0
  483. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/io_point.py +0 -0
  484. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/jumper.py +0 -0
  485. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/junction.py +0 -0
  486. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/limit.py +0 -0
  487. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/limit_set.py +0 -0
  488. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/line.py +0 -0
  489. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/linear_shunt_compensator.py +0 -0
  490. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_area.py +0 -0
  491. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_break_switch.py +0 -0
  492. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_group.py +0 -0
  493. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_response_characteristic.py +0 -0
  494. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/location.py +0 -0
  495. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/measurement.py +0 -0
  496. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/measurement_value.py +0 -0
  497. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/mutual_coupling.py +0 -0
  498. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/non_conform_load.py +0 -0
  499. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/non_conform_load_group.py +0 -0
  500. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nonlinear_shunt_compensator.py +0 -0
  501. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nuclear_generating_unit.py +0 -0
  502. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit.py +0 -0
  503. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit_set.py +0 -0
  504. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit_type.py +0 -0
  505. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/petersen_coil.py +0 -0
  506. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer.py +0 -0
  507. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_asymmetrical.py +0 -0
  508. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_linear.py +0 -0
  509. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_non_linear.py +0 -0
  510. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_symmetrical.py +0 -0
  511. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_table.py +0 -0
  512. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_table_point.py +0 -0
  513. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_tabular.py +0 -0
  514. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/photo_voltaic_unit.py +0 -0
  515. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/position_point.py +0 -0
  516. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/post_line_sensor.py +0 -0
  517. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/potential_transformer.py +0 -0
  518. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_connection.py +0 -0
  519. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_unit.py +0 -0
  520. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_wind_unit.py +0 -0
  521. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_system_resource.py +0 -0
  522. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_transformer.py +0 -0
  523. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_transformer_end.py +0 -0
  524. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/protected_switch.py +0 -0
  525. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer.py +0 -0
  526. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer_table.py +0 -0
  527. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer_table_point.py +0 -0
  528. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/reactive_capability_curve.py +0 -0
  529. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regular_interval_schedule.py +0 -0
  530. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regulating_cond_eq.py +0 -0
  531. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regulating_control.py +0 -0
  532. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/reporting_group.py +0 -0
  533. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/rotating_machine.py +0 -0
  534. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/season_day_type_schedule.py +0 -0
  535. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sensor.py +0 -0
  536. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/series_compensator.py +0 -0
  537. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/service_location.py +0 -0
  538. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/shunt_compensator.py +0 -0
  539. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/solar_generating_unit.py +0 -0
  540. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/solar_power_plant.py +0 -0
  541. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/static_var_compensator.py +0 -0
  542. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sub_geographical_region.py +0 -0
  543. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sub_load_area.py +0 -0
  544. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/substation.py +0 -0
  545. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/surge_arrester.py +0 -0
  546. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_injection.py +0 -0
  547. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_power_flow.py +0 -0
  548. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_shunt_compensator_sections.py +0 -0
  549. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_status.py +0 -0
  550. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_switch.py +0 -0
  551. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_tap_step.py +0 -0
  552. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_voltage.py +0 -0
  553. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/switch.py +0 -0
  554. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/synchronous_machine.py +0 -0
  555. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer.py +0 -0
  556. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer_control.py +0 -0
  557. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer_table_point.py +0 -0
  558. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/terminal.py +0 -0
  559. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/thermal_generating_unit.py +0 -0
  560. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tie_flow.py +0 -0
  561. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/topological_island.py +0 -0
  562. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/topological_node.py +0 -0
  563. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/transformer_end.py +0 -0
  564. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/voltage_level.py +0 -0
  565. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/voltage_limit.py +0 -0
  566. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/vs_capability_curve.py +0 -0
  567. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/vs_converter.py +0 -0
  568. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wave_trap.py +0 -0
  569. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wind_generating_unit.py +0 -0
  570. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wind_power_plant.py +0 -0
  571. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/work_location.py +0 -0
  572. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/cgmes_writer.py +0 -0
  573. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/rdfs_infos.py +0 -0
  574. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cgmes/rdfs_serializations.py +0 -0
  575. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cim16/__init__.py +0 -0
  576. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cim16/cim_circuit.py +0 -0
  577. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cim16/cim_data_parser.py +0 -0
  578. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cim16/cim_devices.py +0 -0
  579. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/cim16/cim_parser.py +0 -0
  580. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/db/__init__.py +0 -0
  581. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/db/base_db.py +0 -0
  582. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/db/cgmes_lookup_db.py +0 -0
  583. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/db/db_handler.py +0 -0
  584. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/db/file_system.py +0 -0
  585. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/cim/db/psse_lookup_db.py +0 -0
  586. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/dgs/__init__.py +0 -0
  587. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/epc/__init__.py +0 -0
  588. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/epc/epc_parser.py +0 -0
  589. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/file_system.py +0 -0
  590. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/__init__.py +0 -0
  591. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/catalogue.py +0 -0
  592. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/contingency_parser.py +0 -0
  593. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/excel_interface.py +0 -0
  594. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/generic_io_functions.py +0 -0
  595. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/h5_interface.py +0 -0
  596. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/remote.py +0 -0
  597. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/results_export.py +0 -0
  598. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/sqlite_interface.py +0 -0
  599. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/gridcal/zip_interface.py +0 -0
  600. {gridcalengine-5.3.0/GridCalEngine/IO/matpower/legacy → gridcalengine-5.3.0a1/GridCalEngine/IO/matpower}/matpower_branch_definitions.py +0 -0
  601. {gridcalengine-5.3.0/GridCalEngine/IO/matpower/legacy → gridcalengine-5.3.0a1/GridCalEngine/IO/matpower}/matpower_gen_definitions.py +0 -0
  602. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/others/__init__.py +0 -0
  603. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/others/dpx_parser.py +0 -0
  604. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/others/pypsa_parser.py +0 -0
  605. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/__init__.py +0 -0
  606. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/__init__.py +0 -0
  607. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/branch.py +0 -0
  608. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/bus.py +0 -0
  609. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/fixed_shunt.py +0 -0
  610. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/generator.py +0 -0
  611. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/induction_machine.py +0 -0
  612. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/load.py +0 -0
  613. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/owner.py +0 -0
  614. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/psse_object.py +0 -0
  615. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/psse_property.py +0 -0
  616. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/devices/switched_shunt.py +0 -0
  617. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/raw_functions.py +0 -0
  618. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/IO/raw/rawx_parser_writer.py +0 -0
  619. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/LICENSE.txt +0 -0
  620. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ATC/__init__.py +0 -0
  621. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ATC/available_transfer_capacity_driver.py +0 -0
  622. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ATC/available_transfer_capacity_options.py +0 -0
  623. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ATC/available_transfer_capacity_ts_driver.py +0 -0
  624. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Clustering/__init__.py +0 -0
  625. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Clustering/clustering.py +0 -0
  626. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Clustering/clustering_driver.py +0 -0
  627. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Clustering/clustering_options.py +0 -0
  628. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Clustering/clustering_results.py +0 -0
  629. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/__init__.py +0 -0
  630. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/srap.py +0 -0
  631. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/__init__.py +0 -0
  632. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_options.py +0 -0
  633. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_results.py +0 -0
  634. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_driver.py +0 -0
  635. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_results.py +0 -0
  636. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_plan.py +0 -0
  637. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContinuationPowerFlow/__init__.py +0 -0
  638. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_input.py +0 -0
  639. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_options.py +0 -0
  640. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_results.py +0 -0
  641. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Derivatives/__init__.py +0 -0
  642. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Derivatives/csr_derivatives.py +0 -0
  643. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py +0 -0
  644. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Dynamics/__init__.py +0 -0
  645. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Dynamics/transient_stability_driver.py +0 -0
  646. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InputsAnalysis/__init__.py +0 -0
  647. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/NSGA_3.py +0 -0
  648. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/__init__.py +0 -0
  649. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +0 -0
  650. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/random_eval.py +0 -0
  651. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/stop_crits.py +0 -0
  652. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/__init__.py +0 -0
  653. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +0 -0
  654. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_options.py +0 -0
  655. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_results.py +0 -0
  656. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/__init__.py +0 -0
  657. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/linear_analysis_options.py +0 -0
  658. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/linear_analysis_results.py +0 -0
  659. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_driver.py +0 -0
  660. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_results.py +0 -0
  661. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/__init__.py +0 -0
  662. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/ntc_driver.py +0 -0
  663. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/ntc_options.py +0 -0
  664. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/ntc_results.py +0 -0
  665. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/ntc_ts_driver.py +0 -0
  666. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NTC/ntc_ts_results.py +0 -0
  667. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NodalCapacity/__init__.py +0 -0
  668. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_options.py +0 -0
  669. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_ts_driver.py +0 -0
  670. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_ts_results.py +0 -0
  671. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/NumericalMethods/__init__.py +0 -0
  672. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/__init__.py +0 -0
  673. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/opf_driver.py +0 -0
  674. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/opf_options.py +0 -0
  675. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/opf_results.py +0 -0
  676. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/opf_ts_driver.py +0 -0
  677. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/opf_ts_results.py +0 -0
  678. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/OPF/simple_dispatch_ts.py +0 -0
  679. {gridcalengine-5.3.0/GridCalEngine/IO/matpower/legacy → gridcalengine-5.3.0a1/GridCalEngine/Simulations/PowerFlow/Formulations}/__init__.py +0 -0
  680. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/__init__.py +0 -0
  681. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/__init__.py +0 -0
  682. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +0 -0
  683. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +0 -0
  684. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +0 -0
  685. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_driver.py +0 -0
  686. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_input.py +0 -0
  687. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_results.py +0 -0
  688. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ShortCircuitStudies/__init__.py +0 -0
  689. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit.py +0 -0
  690. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_options.py +0 -0
  691. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_results.py +0 -0
  692. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/SigmaAnalysis/__init__.py +0 -0
  693. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/StateEstimation/__init__.py +0 -0
  694. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/StateEstimation/state_estimation.py +0 -0
  695. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/StateEstimation/state_estimation_inputs.py +0 -0
  696. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/__init__.py +0 -0
  697. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/blackout_driver.py +0 -0
  698. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/latin_hypercube_sampling.py +0 -0
  699. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/reliability_driver.py +0 -0
  700. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/reliability_iterable.py +0 -0
  701. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_input.py +0 -0
  702. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_results.py +0 -0
  703. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Topology/__init__.py +0 -0
  704. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/Topology/node_groups_driver.py +0 -0
  705. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/__init__.py +0 -0
  706. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/driver_types.py +0 -0
  707. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/options_template.py +0 -0
  708. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/results_table.py +0 -0
  709. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/results_template.py +0 -0
  710. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Simulations/types.py +0 -0
  711. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Topology/__init__.py +0 -0
  712. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Topology/detect_substations.py +0 -0
  713. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Filtering/__init__.py +0 -0
  714. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Filtering/filtering.py +0 -0
  715. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Filtering/objects_filtering.py +0 -0
  716. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Filtering/results_table_filtering.py +0 -0
  717. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Filtering/timeseries_filtering.py +0 -0
  718. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/SimpleMip/__init__.py +0 -0
  719. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/SimpleMip/highs.py +0 -0
  720. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/SimpleMip/lpmodel.py +0 -0
  721. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/SimpleMip/lpobjects.py +0 -0
  722. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/__init__.py +0 -0
  723. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/MIP/selected_interface.py +0 -0
  724. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/MVRSM_mo_pareto.py +0 -0
  725. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/MVRSM_mo_scaled.py +0 -0
  726. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/MVRSM_original.py +0 -0
  727. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/__init__.py +0 -0
  728. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/autodiff.py +0 -0
  729. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/iwamoto.py +0 -0
  730. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py +0 -0
  731. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/newton_raphson.py +0 -0
  732. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/newton_raphson_ode.py +0 -0
  733. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/non_dominated_sorting.py +0 -0
  734. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/nsga3.py +0 -0
  735. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/powell.py +0 -0
  736. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/sparse_solve.py +0 -0
  737. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/NumericalMethods/weldorf_online_stddev.py +0 -0
  738. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Sparse/__init__.py +0 -0
  739. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/Sparse/utils.py +0 -0
  740. {gridcalengine-5.3.0/GridCalEngine/Simulations/OPF/Formulations → gridcalengine-5.3.0a1/GridCalEngine/Utils/ThirdParty/SyntheticNetworks}/__init__.py +0 -0
  741. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/rpgm_algo.py +0 -0
  742. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/__init__.py +0 -0
  743. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/__init__.py +0 -0
  744. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/__init__.py +0 -0
  745. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/copt_api.py +0 -0
  746. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/cplex_cmd.py +0 -0
  747. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/cplex_py.py +0 -0
  748. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/gurobi_cmd.py +0 -0
  749. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/gurobi_py.py +0 -0
  750. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/highs_cmd.py +0 -0
  751. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/highs_py.py +0 -0
  752. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/lp_solver.py +0 -0
  753. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/lp_solver_cmd.py +0 -0
  754. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/scip_api.py +0 -0
  755. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/apis/xpress_api.py +0 -0
  756. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/constants.py +0 -0
  757. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/model/__init__.py +0 -0
  758. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/model/lp_objects.py +0 -0
  759. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/model/lp_problem.py +0 -0
  760. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/mps_lp.py +0 -0
  761. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/paths.py +0 -0
  762. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/pulp.py +0 -0
  763. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/sparse.py +0 -0
  764. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/ThirdParty/pulp/utilities.py +0 -0
  765. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/__init__.py +0 -0
  766. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/progress_bar.py +0 -0
  767. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/scores.py +0 -0
  768. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/Utils/zip_file_mgmt.py +0 -0
  769. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/api.py +0 -0
  770. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/GridCalEngine/data_logger.py +0 -0
  771. {gridcalengine-5.3.0 → gridcalengine-5.3.0a1}/setup.cfg +0 -0
@@ -70,119 +70,11 @@ def set_bus_control_voltage(i: int,
70
70
  if bus_data.bus_types[i] != BusMode.Slack_tpe.value: # if it is not Slack
71
71
  if remote_control and j > -1 and j != i:
72
72
  # remove voltage control
73
- # bus_data.bus_types[j] = BusMode.PQV_tpe.value # remote bus to PQV type
74
- bus_data.set_bus_mode(j, BusMode.PQV_tpe)
75
- # bus_data.bus_types[i] = BusMode.P_tpe.value # local bus to P type
76
- bus_data.set_bus_mode(i, BusMode.P_tpe)
73
+ bus_data.bus_types[j] = BusMode.PQV_tpe.value # remote bus to PQV type
74
+ bus_data.bus_types[i] = BusMode.P_tpe.value # local bus to P type
77
75
  else:
78
76
  # local voltage control
79
- # bus_data.bus_types[i] = BusMode.PV_tpe.value # set as PV
80
- bus_data.set_bus_mode(i, BusMode.PV_tpe)
81
-
82
- if not use_stored_guess:
83
- if not bus_voltage_used[i]:
84
- if remote_control and j > -1 and j != i:
85
- # initialize the remote bus voltage to the control value
86
- bus_data.Vbus[j] = complex(candidate_Vm, 0)
87
- bus_voltage_used[j] = True
88
- else:
89
- # initialize the local bus voltage to the control value
90
- bus_data.Vbus[i] = complex(candidate_Vm, 0)
91
- bus_voltage_used[i] = True
92
-
93
- elif candidate_Vm != bus_data.Vbus[i]:
94
- logger.add_error(msg='Different control voltage set points',
95
- device=bus_name,
96
- value=candidate_Vm,
97
- expected_value=bus_data.Vbus[i])
98
-
99
-
100
- def set_bus_control_voltage_vsc(i: int,
101
- j: int,
102
- remote_control: bool,
103
- bus_name: str,
104
- bus_voltage_used: BoolVec,
105
- bus_data: BusData,
106
- candidate_Vm: float,
107
- use_stored_guess: bool,
108
- logger: Logger) -> None:
109
- """
110
- Set the bus control voltage
111
- :param i: Bus index
112
- :param j: Remote Bus index
113
- :param remote_control: Using remote control?
114
- :param bus_name: Bus name
115
- :param bus_voltage_used: Array of flags indicating if a bus voltage has been modified before
116
- :param bus_data: BusData
117
- :param candidate_Vm: Voltage set point that you want to set
118
- :param use_stored_guess: Use the stored seed values?
119
- :param logger: Logger
120
- """
121
- if bus_data.bus_types[i] != BusMode.Slack_tpe.value: # if it is not Slack
122
- if remote_control and j > -1 and j != i:
123
- # remove voltage control
124
- # bus_data.bus_types[j] = BusMode.PQV_tpe.value # remote bus to PQV type
125
- # bus_data.set_bus_mode(j, BusMode.PQV_tpe)
126
- bus_data.is_p_controlled[j] = True
127
- bus_data.is_q_controlled[j] = True
128
- bus_data.is_vm_controlled[j] = True
129
-
130
- # bus_data.bus_types[i] = BusMode.P_tpe.value # local bus to P type
131
- # bus_data.set_bus_mode(i, BusMode.P_tpe)
132
- bus_data.is_p_controlled[i] = True
133
- else:
134
- # local voltage control
135
- # bus_data.bus_types[i] = BusMode.PV_tpe.value # set as PV
136
- # bus_data.set_bus_mode(i, BusMode.PV_tpe)
137
- bus_data.is_p_controlled[i] = True
138
- bus_data.is_vm_controlled[i] = True
139
-
140
- if not use_stored_guess:
141
- if not bus_voltage_used[i]:
142
- if remote_control and j > -1 and j != i:
143
- # initialize the remote bus voltage to the control value
144
- bus_data.Vbus[j] = complex(candidate_Vm, 0)
145
- bus_voltage_used[j] = True
146
- else:
147
- # initialize the local bus voltage to the control value
148
- bus_data.Vbus[i] = complex(candidate_Vm, 0)
149
- bus_voltage_used[i] = True
150
-
151
- elif candidate_Vm != bus_data.Vbus[i]:
152
- logger.add_error(msg='Different control voltage set points',
153
- device=bus_name,
154
- value=candidate_Vm,
155
- expected_value=bus_data.Vbus[i])
156
-
157
-
158
- def set_bus_control_voltage_hvdc(i: int,
159
- j: int,
160
- remote_control: bool,
161
- bus_name: str,
162
- bus_voltage_used: BoolVec,
163
- bus_data: BusData,
164
- candidate_Vm: float,
165
- use_stored_guess: bool,
166
- logger: Logger) -> None:
167
- """
168
- Set the bus control voltage
169
- :param i: Bus index
170
- :param j: Remote Bus index
171
- :param remote_control: Using remote control?
172
- :param bus_name: Bus name
173
- :param bus_voltage_used: Array of flags indicating if a bus voltage has been modified before
174
- :param bus_data: BusData
175
- :param candidate_Vm: Voltage set point that you want to set
176
- :param use_stored_guess: Use the stored seed values?
177
- :param logger: Logger
178
- """
179
- if bus_data.bus_types[i] != BusMode.Slack_tpe.value: # if it is not Slack
180
- # local voltage control
181
- bus_data.bus_types[i] = BusMode.PV_tpe.value # set as PV
182
- # bus_data.set_bus_mode(i, BusMode.PV_tpe)
183
- bus_data.is_p_controlled[i] = True
184
- bus_data.is_vm_controlled[i] = True
185
- bus_data.is_q_controlled[i] = True
77
+ bus_data.bus_types[i] = BusMode.PV_tpe.value # set as PV
186
78
 
187
79
  if not use_stored_guess:
188
80
  if not bus_voltage_used[i]:
@@ -218,15 +110,15 @@ def get_bus_data(bus_data: BusData,
218
110
  :param use_stored_guess:
219
111
  :return:
220
112
  """
221
-
222
113
  substation_dict = {sub: i for i, sub in enumerate(circuit.substations)}
223
114
 
224
115
  for i, bus in enumerate(circuit.buses):
225
116
 
226
117
  # bus parameters
227
- bus_data.original_idx[i] = i
228
118
  bus_data.names[i] = bus.name
229
119
  bus_data.idtag[i] = bus.idtag
120
+ bus_data.Vmin[i] = bus.Vmin
121
+ bus_data.Vmax[i] = bus.Vmax
230
122
  bus_data.Vnom[i] = bus.Vnom
231
123
  bus_data.cost_v[i] = bus.Vm_cost
232
124
  bus_data.Vbus[i] = bus.get_voltage_guess(use_stored_guess=use_stored_guess)
@@ -236,13 +128,10 @@ def get_bus_data(bus_data: BusData,
236
128
  bus_data.angle_max[i] = bus.angle_max
237
129
 
238
130
  if bus.is_slack:
239
- # bus_data.bus_types[i] = BusMode.Slack_tpe.value # VD
240
- bus_data.set_bus_mode(i, BusMode.Slack_tpe)
241
-
131
+ bus_data.bus_types[i] = BusMode.Slack_tpe.value # VD
242
132
  else:
243
133
  # PQ by default, later it is modified by generators and batteries
244
- # bus_data.bus_types[i] = BusMode.PQ_tpe.value
245
- bus_data.set_bus_mode(i, BusMode.PQ_tpe)
134
+ bus_data.bus_types[i] = BusMode.PQ_tpe.value
246
135
 
247
136
  bus_data.substations[i] = substation_dict.get(bus.substation, 0)
248
137
 
@@ -250,12 +139,8 @@ def get_bus_data(bus_data: BusData,
250
139
 
251
140
  if time_series:
252
141
  bus_data.active[i] = bus.active_prof[t_idx]
253
- bus_data.Vmin[i] = bus.Vmin_prof[t_idx]
254
- bus_data.Vmax[i] = bus.Vmax_prof[t_idx]
255
142
  else:
256
143
  bus_data.active[i] = bus.active
257
- bus_data.Vmin[i] = bus.Vmin
258
- bus_data.Vmax[i] = bus.Vmax
259
144
 
260
145
  return None
261
146
 
@@ -293,7 +178,7 @@ def get_load_data(data: LoadData,
293
178
  data.names[ii] = elm.name
294
179
  data.idtag[ii] = elm.idtag
295
180
  data.bus_idx[ii] = i
296
- data.original_idx[ii] = ii
181
+
297
182
  data.mttf[ii] = elm.mttf
298
183
  data.mttr[ii] = elm.mttr
299
184
 
@@ -326,7 +211,7 @@ def get_load_data(data: LoadData,
326
211
  bus_data.ii_fixed[i] -= data.I[ii].imag
327
212
  bus_data.b_fixed[i] -= data.Y[ii].imag
328
213
 
329
- # data.C_bus_elm[i, ii] = 1
214
+ data.C_bus_elm[i, ii] = 1
330
215
  ii += 1
331
216
 
332
217
  for elm in circuit.get_static_generators():
@@ -335,7 +220,6 @@ def get_load_data(data: LoadData,
335
220
  data.bus_idx[ii] = i
336
221
  data.names[ii] = elm.name
337
222
  data.idtag[ii] = elm.idtag
338
- data.original_idx[ii] = ii
339
223
 
340
224
  if time_series:
341
225
  data.S[ii] -= complex(elm.P_prof[t_idx], elm.Q_prof[t_idx])
@@ -353,7 +237,7 @@ def get_load_data(data: LoadData,
353
237
  # bus_data.ii_fixed[i] += data.I[ii].imag
354
238
  # bus_data.b_fixed[i] += data.Y[ii].imag
355
239
 
356
- # data.C_bus_elm[i, ii] = 1
240
+ data.C_bus_elm[i, ii] = 1
357
241
  ii += 1
358
242
 
359
243
  for elm in circuit.get_external_grids():
@@ -362,12 +246,10 @@ def get_load_data(data: LoadData,
362
246
  data.bus_idx[ii] = i
363
247
  data.names[ii] = elm.name
364
248
  data.idtag[ii] = elm.idtag
365
- data.original_idx[ii] = ii
366
249
 
367
250
  # change stuff depending on the modes
368
251
  if elm.mode == ExternalGridMode.VD:
369
- # bus_data.bus_types[i] = BusMode.Slack_tpe.value # set as Slack
370
- bus_data.set_bus_mode(i, BusMode.Slack_tpe)
252
+ bus_data.bus_types[i] = BusMode.Slack_tpe.value # set as Slack
371
253
 
372
254
  elif elm.mode == ExternalGridMode.PV:
373
255
 
@@ -395,7 +277,7 @@ def get_load_data(data: LoadData,
395
277
  bus_data.ii_fixed[i] += data.I[ii].imag
396
278
  bus_data.b_fixed[i] += data.Y[ii].imag
397
279
 
398
- # data.C_bus_elm[i, ii] = 1
280
+ data.C_bus_elm[i, ii] = 1
399
281
  ii += 1
400
282
 
401
283
  for elm in circuit.get_current_injections():
@@ -404,7 +286,7 @@ def get_load_data(data: LoadData,
404
286
  data.bus_idx[ii] = i
405
287
  data.names[ii] = elm.name
406
288
  data.idtag[ii] = elm.idtag
407
- data.original_idx[ii] = ii
289
+
408
290
  data.mttf[ii] = elm.mttf
409
291
  data.mttr[ii] = elm.mttr
410
292
 
@@ -424,7 +306,7 @@ def get_load_data(data: LoadData,
424
306
  bus_data.ii_fixed[i] += data.I[ii].imag
425
307
  bus_data.b_fixed[i] += data.Y[ii].imag
426
308
 
427
- # data.C_bus_elm[i, ii] = 1
309
+ data.C_bus_elm[i, ii] = 1
428
310
  ii += 1
429
311
 
430
312
  return data
@@ -464,7 +346,7 @@ def get_shunt_data(
464
346
  data.bus_idx[k] = i
465
347
  data.names[k] = elm.name
466
348
  data.idtag[k] = elm.idtag
467
- data.original_idx[ii] = ii
349
+
468
350
  data.mttf[k] = elm.mttf
469
351
  data.mttr[k] = elm.mttr
470
352
 
@@ -479,7 +361,7 @@ def get_shunt_data(
479
361
  if data.active[ii]:
480
362
  bus_data.b_fixed[i] += data.Y[ii].imag
481
363
 
482
- # data.C_bus_elm[i, k] = 1
364
+ data.C_bus_elm[i, k] = 1
483
365
  ii += 1
484
366
 
485
367
  for elm in circuit.get_controllable_shunts():
@@ -488,7 +370,7 @@ def get_shunt_data(
488
370
  data.bus_idx[ii] = i
489
371
  data.names[ii] = elm.name
490
372
  data.idtag[ii] = elm.idtag
491
- data.original_idx[ii] = ii
373
+
492
374
  data.mttf[ii] = elm.mttf
493
375
  data.mttr[ii] = elm.mttr
494
376
 
@@ -556,32 +438,32 @@ def get_shunt_data(
556
438
  else:
557
439
  bus_data.b_fixed[i] += data.Y[ii].imag
558
440
 
559
- # data.C_bus_elm[i, ii] = 1
441
+ data.C_bus_elm[i, ii] = 1
560
442
  ii += 1
561
443
 
562
444
 
563
- def fill_generator_parent(
564
- k: int,
565
- data: GeneratorData | BatteryData,
566
- elm: dev.Generator | dev.Battery,
445
+ def get_generator_data(
446
+ data: GeneratorData,
447
+ circuit: MultiCircuit,
567
448
  bus_dict,
568
449
  bus_voltage_used: BoolVec,
569
450
  logger: Logger,
570
451
  bus_data: BusData,
452
+ opf_results: VALID_OPF_RESULTS | None = None,
571
453
  t_idx=-1,
572
454
  time_series=False,
573
455
  use_stored_guess=False,
574
456
  control_remote_voltage: bool = True,
575
- ) -> None:
457
+ ) -> Dict[str, int]:
576
458
  """
577
- Fill the common ancestor of generation and batteries
578
- :param k:
459
+
579
460
  :param data:
580
- :param elm:
461
+ :param circuit:
581
462
  :param bus_dict:
582
463
  :param bus_voltage_used:
583
464
  :param logger:
584
465
  :param bus_data:
466
+ :param opf_results:
585
467
  :param t_idx:
586
468
  :param time_series:
587
469
  :param use_stored_guess:
@@ -589,185 +471,136 @@ def fill_generator_parent(
589
471
  :return:
590
472
  """
591
473
 
592
- i = bus_dict[elm.bus]
593
- data.bus_idx[k] = i
594
- data.names[k] = elm.name
595
- data.idtag[k] = elm.idtag
596
- data.original_idx[k] = k
597
- data.mttf[k] = elm.mttf
598
- data.mttr[k] = elm.mttr
599
-
600
- data.controllable[k] = elm.is_controlled
601
- data.installed_p[k] = elm.Snom
602
-
603
- # r0, r1, r2, x0, x1, x2
604
- data.r0[k] = elm.R0
605
- data.r1[k] = elm.R1
606
- data.r2[k] = elm.R2
607
- data.x0[k] = elm.X0
608
- data.x1[k] = elm.X1
609
- data.x2[k] = elm.X2
610
-
611
- data.ramp_up[k] = elm.RampUp
612
- data.ramp_down[k] = elm.RampDown
613
- data.min_time_up[k] = elm.MinTimeUp
614
- data.min_time_down[k] = elm.MinTimeDown
615
-
616
- data.dispatchable[k] = elm.enabled_dispatch
474
+ gen_index_dict: Dict[str, int] = dict()
475
+ for k, elm in enumerate(circuit.get_generators()):
617
476
 
618
- data.snom[k] = elm.Snom
477
+ gen_index_dict[elm.idtag] = k # associate the idtag to the index
619
478
 
620
- if time_series:
621
- data.p[k] = elm.P_prof[t_idx]
622
- data.active[k] = elm.active_prof[t_idx]
623
- data.pf[k] = elm.Pf_prof[t_idx]
624
- data.v[k] = elm.Vset_prof[t_idx]
625
- data.pmax[k] = elm.Pmax_prof[t_idx]
626
- data.pmin[k] = elm.Pmin_prof[t_idx]
479
+ i = bus_dict[elm.bus]
480
+ data.bus_idx[k] = i
481
+ data.names[k] = elm.name
482
+ data.idtag[k] = elm.idtag
627
483
 
628
- if elm.use_reactive_power_curve:
629
- data.qmin[k] = elm.q_curve.get_qmin(data.p[i])
630
- data.qmax[k] = elm.q_curve.get_qmax(data.p[i])
631
- else:
632
- data.qmin[k] = elm.Qmin_prof[t_idx]
633
- data.qmax[k] = elm.Qmax_prof[t_idx]
484
+ data.mttf[k] = elm.mttf
485
+ data.mttr[k] = elm.mttr
634
486
 
635
- data.cost_0[k] = elm.Cost0_prof[t_idx]
636
- data.cost_1[k] = elm.Cost_prof[t_idx]
637
- data.cost_2[k] = elm.Cost2_prof[t_idx]
487
+ data.controllable[k] = elm.is_controlled
488
+ data.installed_p[k] = elm.Snom
638
489
 
639
- if elm.active_prof[t_idx]:
490
+ # r0, r1, r2, x0, x1, x2
491
+ data.r0[k] = elm.R0
492
+ data.r1[k] = elm.R1
493
+ data.r2[k] = elm.R2
494
+ data.x0[k] = elm.X0
495
+ data.x1[k] = elm.X1
496
+ data.x2[k] = elm.X2
640
497
 
641
- if elm.srap_enabled_prof[t_idx] and data.p[k] > 0.0:
642
- bus_data.srap_availbale_power[i] += data.p[k]
498
+ data.availability[k] = 1.0
499
+ data.ramp_up[k] = elm.RampUp
500
+ data.ramp_down[k] = elm.RampDown
501
+ data.min_time_up[k] = elm.MinTimeUp
502
+ data.min_time_down[k] = elm.MinTimeDown
643
503
 
644
- if elm.is_controlled:
645
- if elm.control_bus_prof[t_idx] is not None:
646
- remote_control = True
647
- j = bus_dict[elm.control_bus_prof[t_idx]]
648
- else:
649
- remote_control = False
650
- j = -1
504
+ data.dispatchable[k] = elm.enabled_dispatch
505
+ data.pmax[k] = elm.Pmax
506
+ data.pmin[k] = elm.Pmin
651
507
 
652
- data.controllable_bus_idx[k] = j
508
+ if time_series:
653
509
 
654
- set_bus_control_voltage(i=i,
655
- j=j,
656
- remote_control=remote_control and control_remote_voltage,
657
- bus_name=elm.bus.name,
658
- bus_data=bus_data,
659
- bus_voltage_used=bus_voltage_used,
660
- candidate_Vm=elm.Vset_prof[t_idx],
661
- use_stored_guess=use_stored_guess,
662
- logger=logger)
510
+ if opf_results is not None:
511
+ data.p[k] = opf_results.generator_power[t_idx, k] - opf_results.generator_shedding[t_idx, k]
512
+ else:
513
+ data.p[k] = elm.P_prof[t_idx]
663
514
 
664
- else:
515
+ data.active[k] = elm.active_prof[t_idx]
516
+ data.pf[k] = elm.Pf_prof[t_idx]
517
+ data.v[k] = elm.Vset_prof[t_idx]
665
518
 
666
- data.p[k] = elm.P
667
- data.active[k] = elm.active
668
- data.pf[k] = elm.Pf
669
- data.v[k] = elm.Vset
670
- data.pmax[k] = elm.Pmax
671
- data.pmin[k] = elm.Pmin
519
+ data.cost_0[k] = elm.Cost0_prof[t_idx]
520
+ data.cost_1[k] = elm.Cost_prof[t_idx]
521
+ data.cost_2[k] = elm.Cost2_prof[t_idx]
672
522
 
673
- # reactive power limits, for the given power value
674
- if elm.use_reactive_power_curve:
675
- data.qmin[k] = elm.q_curve.get_qmin(data.p[i])
676
- data.qmax[k] = elm.q_curve.get_qmax(data.p[i])
677
- else:
678
- data.qmin[k] = elm.Qmin
679
- data.qmax[k] = elm.Qmax
523
+ if elm.active_prof[t_idx]:
680
524
 
681
- data.cost_0[k] = elm.Cost0
682
- data.cost_1[k] = elm.Cost
683
- data.cost_2[k] = elm.Cost2
525
+ if elm.srap_enabled_prof[t_idx] and data.p[k] > 0.0:
526
+ bus_data.srap_availbale_power[i] += data.p[k]
684
527
 
685
- if elm.active:
528
+ if elm.is_controlled:
529
+ if elm.control_bus_prof[t_idx] is not None:
530
+ remote_control = True
531
+ j = bus_dict[elm.control_bus_prof[t_idx]]
532
+ else:
533
+ remote_control = False
534
+ j = -1
686
535
 
687
- if elm.srap_enabled and data.p[k] > 0.0:
688
- bus_data.srap_availbale_power[i] += data.p[k]
536
+ data.controllable_bus_idx[k] = j
689
537
 
690
- if elm.is_controlled:
691
- if elm.control_bus is not None:
692
- remote_control = True
693
- j = bus_dict[elm.control_bus]
694
- else:
695
- remote_control = False
696
- j = -1
538
+ set_bus_control_voltage(i=i,
539
+ j=j,
540
+ remote_control=remote_control and control_remote_voltage,
541
+ bus_name=elm.bus.name,
542
+ bus_data=bus_data,
543
+ bus_voltage_used=bus_voltage_used,
544
+ candidate_Vm=elm.Vset_prof[t_idx],
545
+ use_stored_guess=use_stored_guess,
546
+ logger=logger)
697
547
 
698
- data.controllable_bus_idx[k] = j
548
+ else:
549
+ if opf_results is not None:
550
+ data.p[k] = opf_results.generator_power[k] - opf_results.generator_shedding[k]
551
+ else:
552
+ data.p[k] = elm.P
699
553
 
700
- set_bus_control_voltage(i=i,
701
- j=j,
702
- remote_control=remote_control and control_remote_voltage,
703
- bus_name=elm.bus.name,
704
- bus_data=bus_data,
705
- bus_voltage_used=bus_voltage_used,
706
- candidate_Vm=elm.Vset,
707
- use_stored_guess=use_stored_guess,
708
- logger=logger)
554
+ data.active[k] = elm.active
555
+ data.pf[k] = elm.Pf
556
+ data.v[k] = elm.Vset
709
557
 
710
- # reactive power-sharing data
711
- if data.active[k]:
712
- if data.controllable[k]:
713
- bus_data.q_shared_total[i] += data.p[k]
714
- data.q_share[k] = data.p[k]
715
- else:
716
- bus_data.q_fixed[i] += data.get_q_at(k)
558
+ data.cost_0[k] = elm.Cost0
559
+ data.cost_1[k] = elm.Cost
560
+ data.cost_2[k] = elm.Cost2
717
561
 
562
+ if elm.active:
718
563
 
719
- def get_generator_data(
720
- data: GeneratorData,
721
- circuit: MultiCircuit,
722
- bus_dict,
723
- bus_voltage_used: BoolVec,
724
- logger: Logger,
725
- bus_data: BusData,
726
- opf_results: VALID_OPF_RESULTS | None = None,
727
- t_idx=-1,
728
- time_series=False,
729
- use_stored_guess=False,
730
- control_remote_voltage: bool = True,
731
- ) -> Dict[str, int]:
732
- """
564
+ if elm.srap_enabled and data.p[k] > 0.0:
565
+ bus_data.srap_availbale_power[i] += data.p[k]
733
566
 
734
- :param data:
735
- :param circuit:
736
- :param bus_dict:
737
- :param bus_voltage_used:
738
- :param logger:
739
- :param bus_data:
740
- :param opf_results:
741
- :param t_idx:
742
- :param time_series:
743
- :param use_stored_guess:
744
- :param control_remote_voltage:
745
- :return:
746
- """
567
+ if elm.is_controlled:
568
+ if elm.control_bus is not None:
569
+ remote_control = True
570
+ j = bus_dict[elm.control_bus]
571
+ else:
572
+ remote_control = False
573
+ j = -1
747
574
 
748
- gen_index_dict: Dict[str, int] = dict()
749
- for k, elm in enumerate(circuit.get_generators()):
575
+ data.controllable_bus_idx[k] = j
750
576
 
751
- gen_index_dict[elm.idtag] = k # associate the idtag to the index
577
+ set_bus_control_voltage(i=i,
578
+ j=j,
579
+ remote_control=remote_control and control_remote_voltage,
580
+ bus_name=elm.bus.name,
581
+ bus_data=bus_data,
582
+ bus_voltage_used=bus_voltage_used,
583
+ candidate_Vm=elm.Vset,
584
+ use_stored_guess=use_stored_guess,
585
+ logger=logger)
752
586
 
753
- fill_generator_parent(k=k,
754
- elm=elm,
755
- data=data,
756
- bus_data=bus_data,
757
- bus_dict=bus_dict,
758
- bus_voltage_used=bus_voltage_used,
759
- logger=logger,
760
- t_idx=t_idx,
761
- time_series=time_series,
762
- use_stored_guess=use_stored_guess,
763
- control_remote_voltage=control_remote_voltage)
587
+ # reactive power limits, for the given power value
588
+ if elm.use_reactive_power_curve:
589
+ data.qmin[k] = elm.q_curve.get_qmin(data.p[i])
590
+ data.qmax[k] = elm.q_curve.get_qmax(data.p[i])
591
+ else:
592
+ data.qmin[k] = elm.Qmin
593
+ data.qmax[k] = elm.Qmax
764
594
 
765
- if opf_results is not None:
766
- # overwrite P with the OPF results
767
- if time_series:
768
- data.p[k] = opf_results.generator_power[t_idx, k] - opf_results.generator_shedding[t_idx, k]
595
+ # reactive power sharing data
596
+ if data.active[k]:
597
+ if data.controllable[k]:
598
+ bus_data.q_shared_total[i] += data.p[k]
599
+ data.q_share[k] = data.p[k]
769
600
  else:
770
- data.p[k] = opf_results.generator_power[k] - opf_results.generator_shedding[k]
601
+ bus_data.q_fixed[i] += data.get_q_at(k)
602
+
603
+ data.C_bus_elm[i, k] = 1
771
604
 
772
605
  return gen_index_dict
773
606
 
@@ -803,19 +636,37 @@ def get_battery_data(
803
636
 
804
637
  for k, elm in enumerate(circuit.get_batteries()):
805
638
 
806
- fill_generator_parent(k=k,
807
- elm=elm,
808
- data=data,
809
- bus_data=bus_data,
810
- bus_dict=bus_dict,
811
- bus_voltage_used=bus_voltage_used,
812
- logger=logger,
813
- t_idx=t_idx,
814
- time_series=time_series,
815
- use_stored_guess=use_stored_guess,
816
- control_remote_voltage=control_remote_voltage)
639
+ i = bus_dict[elm.bus]
640
+ data.bus_idx[k] = i
817
641
 
642
+ data.names[k] = elm.name
643
+ data.idtag[k] = elm.idtag
644
+
645
+ data.mttf[k] = elm.mttf
646
+ data.mttr[k] = elm.mttr
647
+
648
+ data.controllable[k] = elm.is_controlled
649
+ data.installed_p[k] = elm.Snom
650
+
651
+ # r0, r1, r2, x0, x1, x2
652
+ data.r0[k] = elm.R0
653
+ data.r1[k] = elm.R1
654
+ data.r2[k] = elm.R2
655
+ data.x0[k] = elm.X0
656
+ data.x1[k] = elm.X1
657
+ data.x2[k] = elm.X2
658
+
659
+ data.dispatchable[k] = elm.enabled_dispatch
660
+ data.pmax[k] = elm.Pmax
661
+ data.pmin[k] = elm.Pmin
818
662
  data.enom[k] = elm.Enom
663
+
664
+ data.availability[k] = 1.0
665
+ data.ramp_up[k] = elm.RampUp
666
+ data.ramp_down[k] = elm.RampDown
667
+ data.min_time_up[k] = elm.MinTimeUp
668
+ data.min_time_down[k] = elm.MinTimeDown
669
+
819
670
  data.min_soc[k] = elm.min_soc
820
671
  data.max_soc[k] = elm.max_soc
821
672
  data.soc_0[k] = elm.soc_0
@@ -824,28 +675,125 @@ def get_battery_data(
824
675
  data.discharge_efficiency[k] = elm.discharge_efficiency
825
676
  data.charge_efficiency[k] = elm.charge_efficiency
826
677
 
827
- if opf_results is not None:
828
- # overwrite P with the OPF results
829
- if time_series:
678
+ if time_series:
679
+ if opf_results is not None:
830
680
  data.p[k] = opf_results.battery_power[t_idx, k]
831
681
  else:
682
+ data.p[k] = elm.P_prof[t_idx]
683
+
684
+ data.active[k] = elm.active_prof[t_idx]
685
+ data.pf[k] = elm.Pf_prof[t_idx]
686
+ data.v[k] = elm.Vset_prof[t_idx]
687
+
688
+ data.cost_0[k] = elm.Cost0_prof[t_idx]
689
+ data.cost_1[k] = elm.Cost_prof[t_idx]
690
+ data.cost_2[k] = elm.Cost2_prof[t_idx]
691
+
692
+ if elm.active_prof[t_idx]:
693
+
694
+ if elm.srap_enabled_prof[t_idx] and data.p[k] > 0.0:
695
+ bus_data.srap_availbale_power[i] += data.p[k]
696
+
697
+ if elm.is_controlled:
698
+
699
+ if elm.control_bus_prof[t_idx] is not None:
700
+ remote_control = True
701
+ j = bus_dict[elm.control_bus_prof[t_idx]]
702
+ else:
703
+ remote_control = False
704
+ j = -1
705
+
706
+ data.controllable_bus_idx[k] = j
707
+
708
+ set_bus_control_voltage(i=i,
709
+ j=j,
710
+ remote_control=remote_control and control_remote_voltage,
711
+ bus_name=elm.bus.name,
712
+ bus_data=bus_data,
713
+ bus_voltage_used=bus_voltage_used,
714
+ candidate_Vm=elm.Vset_prof[t_idx],
715
+ use_stored_guess=use_stored_guess,
716
+ logger=logger)
717
+
718
+ else:
719
+ if opf_results is not None:
832
720
  data.p[k] = opf_results.battery_power[k]
721
+ else:
722
+ data.p[k] = elm.P
723
+
724
+ data.active[k] = elm.active
725
+ data.pf[k] = elm.Pf
726
+ data.v[k] = elm.Vset
727
+
728
+ data.cost_0[k] = elm.Cost0
729
+ data.cost_1[k] = elm.Cost
730
+ data.cost_2[k] = elm.Cost2
731
+
732
+ if elm.active:
733
+
734
+ if elm.srap_enabled and data.p[k] > 0.0:
735
+ bus_data.srap_availbale_power[i] += data.p[k]
736
+
737
+ if elm.is_controlled:
738
+
739
+ if elm.control_bus is not None:
740
+ remote_control = True
741
+ j = bus_dict[elm.control_bus]
742
+ else:
743
+ remote_control = False
744
+ j = -1
745
+
746
+ data.controllable_bus_idx[k] = j
747
+
748
+ set_bus_control_voltage(i=i,
749
+ j=j,
750
+ remote_control=remote_control and control_remote_voltage,
751
+ bus_name=elm.bus.name,
752
+ bus_data=bus_data,
753
+ bus_voltage_used=bus_voltage_used,
754
+ candidate_Vm=elm.Vset,
755
+ use_stored_guess=use_stored_guess,
756
+ logger=logger)
757
+
758
+ # reactive power limits, for the given power value
759
+ if elm.use_reactive_power_curve:
760
+ data.qmin[k] = elm.q_curve.get_qmin(data.p[i])
761
+ data.qmax[k] = elm.q_curve.get_qmax(data.p[i])
762
+ else:
763
+ data.qmin[k] = elm.Qmin
764
+ data.qmax[k] = elm.Qmax
765
+
766
+ # reactive power sharing data
767
+ if data.active[k]:
768
+ if data.controllable[k]:
769
+ bus_data.q_shared_total[i] += data.p[k]
770
+ data.q_share[k] = data.p[k]
771
+ else:
772
+ bus_data.q_fixed[i] += data.get_q_at(k)
773
+
774
+ data.C_bus_elm[i, k] = 1
833
775
 
834
776
 
835
777
  def fill_parent_branch(i: int,
836
778
  elm: BRANCH_TYPES,
837
779
  data: PassiveBranchData,
838
780
  bus_dict: Dict[Bus, int],
781
+ apply_temperature: bool,
782
+ branch_tolerance_mode: BranchImpedanceMode,
839
783
  t_idx: int = -1,
840
- time_series: bool = False, ):
784
+ time_series: bool = False,
785
+ is_dc_branch: bool = False, ):
841
786
  """
842
787
 
843
788
  :param i:
844
789
  :param elm:
845
790
  :param data:
846
791
  :param bus_dict:
792
+ :param apply_temperature:
793
+ :param branch_tolerance_mode:
847
794
  :param t_idx:
848
795
  :param time_series:
796
+ :param is_dc_branch:
849
797
  :return:
850
798
  """
851
799
  data.names[i] = elm.name
@@ -872,11 +820,35 @@ def fill_parent_branch(i: int,
872
820
 
873
821
  f = bus_dict[elm.bus_from]
874
822
  t = bus_dict[elm.bus_to]
823
+ data.C_branch_bus_f[i, f] = 1
824
+ data.C_branch_bus_t[i, t] = 1
875
825
  data.F[i] = f
876
826
  data.T[i] = t
877
827
 
878
- data.original_idx[i] = i
879
- data.reducible[i] = int(elm.reducible)
828
+ data.branch_idx[i] = i # Correct?
829
+
830
+ if apply_temperature:
831
+ data.R[i] = elm.R_corrected
832
+ else:
833
+ data.R[i] = elm.R
834
+
835
+ if branch_tolerance_mode == BranchImpedanceMode.Lower:
836
+ data.R[i] *= (1 - elm.tolerance / 100.0)
837
+ elif branch_tolerance_mode == BranchImpedanceMode.Upper:
838
+ data.R[i] *= (1 + elm.tolerance / 100.0)
839
+
840
+ if not is_dc_branch:
841
+ data.X[i] = elm.X
842
+ data.B[i] = elm.B
843
+
844
+ data.R0[i] = elm.R0
845
+ data.X0[i] = elm.X0
846
+ data.B0[i] = elm.B0
847
+
848
+ data.R2[i] = elm.R2
849
+ data.X2[i] = elm.X2
850
+ data.B2[i] = elm.B2
851
+
880
852
  data.contingency_enabled[i] = int(elm.contingency_enabled)
881
853
  data.monitor_loading[i] = int(elm.monitor_loading)
882
854
 
@@ -892,6 +864,8 @@ def fill_controllable_branch(
892
864
  ctrl_data: ActiveBranchData,
893
865
  bus_data: BusData,
894
866
  bus_dict: Dict[Bus, int],
867
+ apply_temperature: bool,
868
+ branch_tolerance_mode: BranchImpedanceMode,
895
869
  t_idx: int,
896
870
  time_series: bool,
897
871
  opf_results: VALID_OPF_RESULTS | None,
@@ -900,6 +874,7 @@ def fill_controllable_branch(
900
874
  Sbase: float,
901
875
  control_taps_modules: bool,
902
876
  control_taps_phase: bool,
877
+ control_remote_voltage: bool,
903
878
  logger: Logger):
904
879
  """
905
880
 
@@ -909,6 +884,8 @@ def fill_controllable_branch(
909
884
  :param ctrl_data:
910
885
  :param bus_data:
911
886
  :param bus_dict:
887
+ :param apply_temperature:
888
+ :param branch_tolerance_mode:
912
889
  :param t_idx:
913
890
  :param time_series:
914
891
  :param opf_results:
@@ -917,15 +894,19 @@ def fill_controllable_branch(
917
894
  :param Sbase:
918
895
  :param control_taps_modules:
919
896
  :param control_taps_phase:
897
+ :param control_remote_voltage:
920
898
  :param logger:
921
899
  :return:
922
900
  """
923
- fill_parent_branch(i=ii,
924
- elm=elm,
925
- data=data,
926
- bus_dict=bus_dict,
927
- t_idx=t_idx,
928
- time_series=time_series)
901
+ _, t = fill_parent_branch(i=ii,
902
+ elm=elm,
903
+ data=data,
904
+ bus_dict=bus_dict,
905
+ apply_temperature=apply_temperature,
906
+ branch_tolerance_mode=branch_tolerance_mode,
907
+ t_idx=t_idx,
908
+ time_series=time_series,
909
+ is_dc_branch=False)
929
910
 
930
911
  if time_series:
931
912
 
@@ -990,18 +971,9 @@ def fill_controllable_branch(
990
971
  ctrl_data.tap_angle_min[ii] = elm.tap_phase_min
991
972
  ctrl_data.tap_angle_max[ii] = elm.tap_phase_max
992
973
 
993
- # if (ctrl_data.tap_module_control_mode[ii] not in (TapModuleControl.fixed, 0)
994
- # or ctrl_data.tap_phase_control_mode[ii] not in (TapPhaseControl.fixed, 0)):
995
- # ctrl_data.any_pf_control = True
996
-
997
- if ctrl_data.tap_module_control_mode[ii] != 0:
998
- if ctrl_data.tap_module_control_mode[ii] != TapModuleControl.fixed:
999
- ctrl_data.any_pf_control = True
1000
-
1001
- if not ctrl_data.any_pf_control: # if true, we can skip this step
1002
- if ctrl_data.tap_phase_control_mode[ii] != 0:
1003
- if ctrl_data.tap_phase_control_mode[ii] != TapPhaseControl.fixed:
1004
- ctrl_data.any_pf_control = True
974
+ if (ctrl_data.tap_module_control_mode[ii] not in (TapModuleControl.fixed, 0)
975
+ or ctrl_data.tap_phase_control_mode[ii] not in (TapPhaseControl.fixed, 0)):
976
+ ctrl_data.any_pf_control = True
1005
977
 
1006
978
  if not use_stored_guess:
1007
979
  if ctrl_data.tap_module_control_mode[ii] == TapModuleControl.Vm:
@@ -1068,37 +1040,19 @@ def get_branch_data(
1068
1040
  # Compile the lines
1069
1041
  for i, elm in enumerate(circuit.lines):
1070
1042
  # generic stuff
1071
- fill_parent_branch(i=ii,
1043
+ fill_parent_branch(i=i,
1072
1044
  elm=elm,
1073
1045
  data=data,
1074
1046
  bus_dict=bus_dict,
1047
+ apply_temperature=apply_temperature,
1048
+ branch_tolerance_mode=branch_tolerance_mode,
1075
1049
  t_idx=t_idx,
1076
- time_series=time_series)
1077
-
1078
- data.R[ii] = elm.R_corrected if apply_temperature else elm.R
1079
-
1080
- if branch_tolerance_mode == BranchImpedanceMode.Lower:
1081
- data.R[ii] *= (1 - elm.tolerance / 100.0)
1082
- elif branch_tolerance_mode == BranchImpedanceMode.Upper:
1083
- data.R[ii] *= (1 + elm.tolerance / 100.0)
1084
-
1085
- data.X[ii] = elm.X
1086
- data.B[ii] = elm.B
1087
-
1088
- data.R0[ii] = elm.R0
1089
- data.X0[ii] = elm.X0
1090
- data.B0[ii] = elm.B0
1091
-
1092
- data.R2[ii] = elm.R2
1093
- data.X2[ii] = elm.X2
1094
- data.B2[ii] = elm.B2
1050
+ time_series=time_series,
1051
+ is_dc_branch=False)
1095
1052
 
1096
1053
  # store for later
1097
1054
  branch_dict[elm] = ii
1098
1055
 
1099
- # handle """superconductor branches"""
1100
- data.detect_superconductor_at(ii)
1101
-
1102
1056
  ii += 1
1103
1057
 
1104
1058
  # DC-lines
@@ -1108,24 +1062,15 @@ def get_branch_data(
1108
1062
  elm=elm,
1109
1063
  data=data,
1110
1064
  bus_dict=bus_dict,
1065
+ apply_temperature=apply_temperature,
1066
+ branch_tolerance_mode=branch_tolerance_mode,
1111
1067
  t_idx=t_idx,
1112
- time_series=time_series)
1113
-
1114
- data.R[ii] = elm.R_corrected if apply_temperature else elm.R
1115
-
1116
- if branch_tolerance_mode == BranchImpedanceMode.Lower:
1117
- data.R[ii] *= (1 - elm.tolerance / 100.0)
1118
- elif branch_tolerance_mode == BranchImpedanceMode.Upper:
1119
- data.R[ii] *= (1 + elm.tolerance / 100.0)
1068
+ time_series=time_series,
1069
+ is_dc_branch=True)
1120
1070
 
1121
1071
  # store for later
1122
1072
  branch_dict[elm] = ii
1123
1073
 
1124
- data.dc[ii] = 1
1125
-
1126
- # handle """superconductor branches"""
1127
- data.detect_superconductor_at(ii)
1128
-
1129
1074
  ii += 1
1130
1075
 
1131
1076
  # 2-winding transformers
@@ -1136,6 +1081,8 @@ def get_branch_data(
1136
1081
  ctrl_data=ctrl_data,
1137
1082
  bus_data=bus_data,
1138
1083
  bus_dict=bus_dict,
1084
+ apply_temperature=apply_temperature,
1085
+ branch_tolerance_mode=branch_tolerance_mode,
1139
1086
  t_idx=t_idx,
1140
1087
  time_series=time_series,
1141
1088
  opf_results=opf_results,
@@ -1144,29 +1091,9 @@ def get_branch_data(
1144
1091
  Sbase=circuit.Sbase,
1145
1092
  control_taps_modules=control_taps_modules,
1146
1093
  control_taps_phase=control_taps_phase,
1094
+ control_remote_voltage=control_remote_voltage,
1147
1095
  logger=logger)
1148
1096
 
1149
- data.R[ii] = elm.R_corrected if apply_temperature else elm.R
1150
-
1151
- if branch_tolerance_mode == BranchImpedanceMode.Lower:
1152
- data.R[ii] *= (1 - elm.tolerance / 100.0)
1153
- elif branch_tolerance_mode == BranchImpedanceMode.Upper:
1154
- data.R[ii] *= (1 + elm.tolerance / 100.0)
1155
-
1156
- data.X[ii] = elm.X
1157
- data.G[ii] = elm.G
1158
- data.B[ii] = elm.B
1159
-
1160
- data.R0[ii] = elm.R0
1161
- data.X0[ii] = elm.X0
1162
- data.G0[ii] = elm.G0
1163
- data.B0[ii] = elm.B0
1164
-
1165
- data.R2[ii] = elm.R2
1166
- data.X2[ii] = elm.X2
1167
- data.G2[ii] = elm.G2
1168
- data.B2[ii] = elm.B2
1169
-
1170
1097
  data.conn[ii] = elm.conn
1171
1098
  data.m_taps[ii] = elm.tap_changer.tap_modules_array
1172
1099
  data.tau_taps[ii] = elm.tap_changer.tap_angles_array
@@ -1174,9 +1101,6 @@ def get_branch_data(
1174
1101
  # store for later
1175
1102
  branch_dict[elm] = ii
1176
1103
 
1177
- # handle """superconductor branches"""
1178
- data.detect_superconductor_at(ii)
1179
-
1180
1104
  ii += 1
1181
1105
 
1182
1106
  # windings
@@ -1190,6 +1114,8 @@ def get_branch_data(
1190
1114
  ctrl_data=ctrl_data,
1191
1115
  bus_data=bus_data,
1192
1116
  bus_dict=bus_dict,
1117
+ apply_temperature=apply_temperature,
1118
+ branch_tolerance_mode=branch_tolerance_mode,
1193
1119
  t_idx=t_idx,
1194
1120
  time_series=time_series,
1195
1121
  opf_results=opf_results,
@@ -1198,29 +1124,9 @@ def get_branch_data(
1198
1124
  Sbase=circuit.Sbase,
1199
1125
  control_taps_modules=control_taps_modules,
1200
1126
  control_taps_phase=control_taps_phase,
1127
+ control_remote_voltage=control_remote_voltage,
1201
1128
  logger=logger)
1202
1129
 
1203
- data.R[ii] = elm.R_corrected if apply_temperature else elm.R
1204
-
1205
- if branch_tolerance_mode == BranchImpedanceMode.Lower:
1206
- data.R[ii] *= (1 - elm.tolerance / 100.0)
1207
- elif branch_tolerance_mode == BranchImpedanceMode.Upper:
1208
- data.R[ii] *= (1 + elm.tolerance / 100.0)
1209
-
1210
- data.X[ii] = elm.X
1211
- data.G[ii] = elm.G
1212
- data.B[ii] = elm.B
1213
-
1214
- data.R0[ii] = elm.R0
1215
- data.X0[ii] = elm.X0
1216
- data.G0[ii] = elm.G0
1217
- data.B0[ii] = elm.B0
1218
-
1219
- data.R2[ii] = elm.R2
1220
- data.X2[ii] = elm.X2
1221
- data.G2[ii] = elm.G2
1222
- data.B2[ii] = elm.B2
1223
-
1224
1130
  data.conn[ii] = elm.conn
1225
1131
  data.m_taps[ii] = elm.tap_changer.tap_modules_array
1226
1132
  data.tau_taps[ii] = elm.tap_changer.tap_angles_array
@@ -1228,9 +1134,6 @@ def get_branch_data(
1228
1134
  # store for later
1229
1135
  branch_dict[elm] = ii
1230
1136
 
1231
- # handle """superconductor branches"""
1232
- data.detect_superconductor_at(ii)
1233
-
1234
1137
  ii += 1
1235
1138
 
1236
1139
  else:
@@ -1245,6 +1148,8 @@ def get_branch_data(
1245
1148
  ctrl_data=ctrl_data,
1246
1149
  bus_data=bus_data,
1247
1150
  bus_dict=bus_dict,
1151
+ apply_temperature=apply_temperature,
1152
+ branch_tolerance_mode=branch_tolerance_mode,
1248
1153
  t_idx=t_idx,
1249
1154
  time_series=time_series,
1250
1155
  opf_results=opf_results,
@@ -1253,31 +1158,12 @@ def get_branch_data(
1253
1158
  Sbase=circuit.Sbase,
1254
1159
  control_taps_modules=control_taps_modules,
1255
1160
  control_taps_phase=control_taps_phase,
1161
+ control_remote_voltage=control_remote_voltage,
1256
1162
  logger=logger)
1257
- ysh1 = elm.get_ysh1()
1258
- data.R[ii] = elm.R
1259
- data.X[ii] = elm.X
1260
- data.G[ii] = ysh1.real
1261
- data.B[ii] = ysh1.imag
1262
-
1263
- ysh0 = elm.get_ysh0()
1264
- data.R0[ii] = elm.R0
1265
- data.X0[ii] = elm.X0
1266
- data.G0[ii] = ysh0.real
1267
- data.B0[ii] = ysh0.imag
1268
-
1269
- ysh2 = elm.get_ysh2()
1270
- data.R2[ii] = elm.R2
1271
- data.X2[ii] = elm.X2
1272
- data.G2[ii] = ysh2.real
1273
- data.B2[ii] = ysh2.imag
1274
1163
 
1275
1164
  # store for later
1276
1165
  branch_dict[elm] = ii
1277
1166
 
1278
- # handle """superconductor branches"""
1279
- data.detect_superconductor_at(ii)
1280
-
1281
1167
  ii += 1
1282
1168
 
1283
1169
  # Series reactance
@@ -1287,155 +1173,20 @@ def get_branch_data(
1287
1173
  elm=elm,
1288
1174
  data=data,
1289
1175
  bus_dict=bus_dict,
1176
+ apply_temperature=apply_temperature,
1177
+ branch_tolerance_mode=branch_tolerance_mode,
1290
1178
  t_idx=t_idx,
1291
- time_series=time_series)
1292
-
1293
- data.R[ii] = elm.R_corrected if apply_temperature else elm.R
1294
-
1295
- if branch_tolerance_mode == BranchImpedanceMode.Lower:
1296
- data.R[ii] *= (1 - elm.tolerance / 100.0)
1297
- elif branch_tolerance_mode == BranchImpedanceMode.Upper:
1298
- data.R[ii] *= (1 + elm.tolerance / 100.0)
1299
-
1300
- data.X[ii] = elm.X
1301
-
1302
- data.R0[ii] = elm.R0
1303
- data.X0[ii] = elm.X0
1304
-
1305
- data.R2[ii] = elm.R2
1306
- data.X2[ii] = elm.X2
1179
+ time_series=time_series,
1180
+ is_dc_branch=False)
1307
1181
 
1308
1182
  # store for later
1309
1183
  branch_dict[elm] = ii
1310
1184
 
1311
- # handle """superconductor branches"""
1312
- data.detect_superconductor_at(ii)
1313
-
1314
- ii += 1
1315
-
1316
- # Switches
1317
- for i, elm in enumerate(circuit.switch_devices):
1318
- # generic stuff
1319
- fill_parent_branch(i=ii,
1320
- elm=elm,
1321
- data=data,
1322
- bus_dict=bus_dict,
1323
- t_idx=t_idx,
1324
- time_series=time_series)
1325
-
1326
- data.R[ii] = elm.R
1327
- data.X[ii] = elm.X
1328
-
1329
- # store for later
1330
- branch_dict[elm] = ii
1331
-
1332
- # handle """superconductor branches"""
1333
- data.detect_superconductor_at(ii)
1334
-
1335
1185
  ii += 1
1336
1186
 
1337
1187
  return branch_dict
1338
1188
 
1339
1189
 
1340
- def set_control_dev(k: int,
1341
- f: int,
1342
- t: int,
1343
- control: ConverterControlType,
1344
- control_dev: Bus | BRANCH_TYPES | None,
1345
- control_val: float,
1346
- control_bus_idx: IntVec,
1347
- control_branch_idx: IntVec,
1348
- bus_dict: Dict[Bus, int],
1349
- branch_dict: Dict[BRANCH_TYPES, int],
1350
- bus_data: BusData,
1351
- bus_voltage_used: BoolVec,
1352
- use_stored_guess: bool,
1353
- logger: Logger):
1354
- """
1355
-
1356
- :param k: device index
1357
- :param f:
1358
- :param t:
1359
- :param control: ConverterControlType
1360
- :param control_dev: control device
1361
- :param control_val: control value
1362
- :param control_bus_idx: array to be filled in
1363
- :param control_branch_idx: array to be filled in
1364
- :param bus_dict: dictionary to be filled in
1365
- :param branch_dict: dictionary to be filled in
1366
- :param bus_data: bus data
1367
- :param bus_voltage_used: used bus voltage
1368
- :param use_stored_guess:
1369
- :param logger:
1370
- """
1371
- if control_dev is not None:
1372
- if control_dev.device_type == DeviceType.BusDevice:
1373
-
1374
- bus_idx = bus_dict[control_dev]
1375
-
1376
- control_bus_idx[k] = bus_idx
1377
-
1378
- if control == ConverterControlType.Vm_ac:
1379
-
1380
- set_bus_control_voltage_vsc(i=bus_idx,
1381
- j=-1,
1382
- remote_control=False,
1383
- bus_name=str(bus_data.names[bus_idx]),
1384
- bus_voltage_used=bus_voltage_used,
1385
- bus_data=bus_data,
1386
- candidate_Vm=control_val,
1387
- use_stored_guess=use_stored_guess,
1388
- logger=logger)
1389
-
1390
- elif control == ConverterControlType.Vm_dc:
1391
-
1392
- set_bus_control_voltage_vsc(i=bus_idx,
1393
- j=-1,
1394
- remote_control=False,
1395
- bus_name=str(bus_data.names[bus_idx]),
1396
- bus_voltage_used=bus_voltage_used,
1397
- bus_data=bus_data,
1398
- candidate_Vm=control_val,
1399
- use_stored_guess=use_stored_guess,
1400
- logger=logger)
1401
-
1402
- else:
1403
- # TODO: the formulation does not allow for VSC remote control yet
1404
- # control_branch_idx[k] = branch_dict[control_dev]
1405
- control_branch_idx[k] = k
1406
-
1407
- else:
1408
- if control == ConverterControlType.Vm_ac:
1409
- control_bus_idx[k] = t
1410
-
1411
- set_bus_control_voltage_vsc(i=t,
1412
- j=-1,
1413
- remote_control=False,
1414
- bus_name=str(bus_data.names[t]),
1415
- bus_voltage_used=bus_voltage_used,
1416
- bus_data=bus_data,
1417
- candidate_Vm=control_val,
1418
- use_stored_guess=use_stored_guess,
1419
- logger=logger)
1420
-
1421
- elif control == ConverterControlType.Vm_dc:
1422
- control_bus_idx[k] = f
1423
-
1424
- set_bus_control_voltage_vsc(i=f,
1425
- j=-1,
1426
- remote_control=False,
1427
- bus_name=str(bus_data.names[f]),
1428
- bus_voltage_used=bus_voltage_used,
1429
- bus_data=bus_data,
1430
- candidate_Vm=control_val,
1431
- use_stored_guess=use_stored_guess,
1432
- logger=logger)
1433
-
1434
- else:
1435
- # control_branch_idx[k] = len(branch_dict) + k # TODO: why?
1436
- control_branch_idx[k] = k
1437
-
1438
-
1439
1190
  def get_vsc_data(
1440
1191
  data: VscData,
1441
1192
  circuit: MultiCircuit,
@@ -1467,6 +1218,42 @@ def get_vsc_data(
1467
1218
  :return: VscData
1468
1219
  """
1469
1220
 
1221
+ def set_control_dev(k: int,
1222
+ control: ConverterControlType,
1223
+ control_dev: Bus | BRANCH_TYPES | None,
1224
+ control_val: float,
1225
+ control_bus_idx: IntVec,
1226
+ control_branch_idx: IntVec):
1227
+ """
1228
+
1229
+ :param k: device index
1230
+ :param control: ConverterControlType
1231
+ :param control_dev: control device
1232
+ :param control_val: control value
1233
+ :param control_bus_idx: array to be filled in
1234
+ :param control_branch_idx: array to be filled in
1235
+ """
1236
+ if control_dev is not None:
1237
+ if control_dev.device_type == DeviceType.BusDevice:
1238
+
1239
+ bus_idx = bus_dict[control_dev]
1240
+
1241
+ control_bus_idx[k] = bus_idx
1242
+
1243
+ if control in (ConverterControlType.Vm_ac, ConverterControlType.Vm_dc):
1244
+ set_bus_control_voltage(i=bus_idx,
1245
+ j=-1,
1246
+ remote_control=False,
1247
+ bus_name=bus_data.names[bus_idx],
1248
+ bus_voltage_used=bus_voltage_used,
1249
+ bus_data=bus_data,
1250
+ candidate_Vm=control_val,
1251
+ use_stored_guess=use_stored_guess,
1252
+ logger=logger)
1253
+
1254
+ else:
1255
+ control_branch_idx[k] = branch_dict[control_dev]
1256
+
1470
1257
  ii = 0
1471
1258
 
1472
1259
  # VSC
@@ -1477,10 +1264,6 @@ def get_vsc_data(
1477
1264
 
1478
1265
  data.mttf[i] = elm.mttf
1479
1266
  data.mttr[i] = elm.mttr
1480
- f = bus_dict[elm.bus_from]
1481
- t = bus_dict[elm.bus_to]
1482
- data.F[i] = f
1483
- data.T[i] = t
1484
1267
 
1485
1268
  if time_series:
1486
1269
  data.active[i] = elm.active_prof[t_idx]
@@ -1494,30 +1277,10 @@ def get_vsc_data(
1494
1277
  data.control2[ii] = elm.control2_prof[t_idx]
1495
1278
  data.control1_val[ii] = elm.control1_val_prof[t_idx]
1496
1279
  data.control2_val[ii] = elm.control2_val_prof[t_idx]
1497
- set_control_dev(k=ii, f=f, t=t,
1498
- control=data.control1[ii],
1499
- control_dev=elm.control1_dev_prof[t_idx],
1500
- control_val=data.control1_val[ii],
1501
- control_bus_idx=data.control1_bus_idx,
1502
- control_branch_idx=data.control1_branch_idx,
1503
- bus_dict=bus_dict,
1504
- branch_dict=branch_dict,
1505
- bus_data=bus_data,
1506
- bus_voltage_used=bus_voltage_used,
1507
- use_stored_guess=use_stored_guess,
1508
- logger=logger)
1509
- set_control_dev(k=ii, f=f, t=t,
1510
- control=data.control2[ii],
1511
- control_dev=elm.control2_dev_prof[t_idx],
1512
- control_val=data.control2_val[ii],
1513
- control_bus_idx=data.control2_bus_idx,
1514
- control_branch_idx=data.control2_branch_idx,
1515
- bus_dict=bus_dict,
1516
- branch_dict=branch_dict,
1517
- bus_data=bus_data,
1518
- bus_voltage_used=bus_voltage_used,
1519
- use_stored_guess=use_stored_guess,
1520
- logger=logger)
1280
+ set_control_dev(ii, data.control1[ii], elm.control1_dev_prof[t_idx], data.control1_val[ii],
1281
+ data.control1_bus_idx, data.control1_branch_idx)
1282
+ set_control_dev(ii, data.control2[ii], elm.control2_dev_prof[t_idx], data.control2_val[ii],
1283
+ data.control2_bus_idx, data.control2_branch_idx)
1521
1284
 
1522
1285
  else:
1523
1286
  data.active[i] = elm.active
@@ -1531,31 +1294,17 @@ def get_vsc_data(
1531
1294
  data.control2[ii] = elm.control2
1532
1295
  data.control1_val[ii] = elm.control1_val
1533
1296
  data.control2_val[ii] = elm.control2_val
1534
- set_control_dev(k=ii, f=f, t=t,
1535
- control=data.control1[ii],
1536
- control_dev=elm.control1_dev,
1537
- control_val=data.control1_val[ii],
1538
- control_bus_idx=data.control1_bus_idx,
1539
- control_branch_idx=data.control1_branch_idx,
1540
- bus_dict=bus_dict,
1541
- branch_dict=branch_dict,
1542
- bus_data=bus_data,
1543
- bus_voltage_used=bus_voltage_used,
1544
- use_stored_guess=use_stored_guess,
1545
- logger=logger)
1546
-
1547
- set_control_dev(k=ii, f=f, t=t,
1548
- control=data.control2[ii],
1549
- control_dev=elm.control2_dev,
1550
- control_val=data.control2_val[ii],
1551
- control_bus_idx=data.control2_bus_idx,
1552
- control_branch_idx=data.control2_branch_idx,
1553
- bus_dict=bus_dict,
1554
- branch_dict=branch_dict,
1555
- bus_data=bus_data,
1556
- bus_voltage_used=bus_voltage_used,
1557
- use_stored_guess=use_stored_guess,
1558
- logger=logger)
1297
+ set_control_dev(ii, data.control1[ii], elm.control1_dev, data.control1_val[ii],
1298
+ data.control1_bus_idx, data.control1_branch_idx)
1299
+ set_control_dev(ii, data.control2[ii], elm.control2_dev, data.control2_val[ii],
1300
+ data.control2_bus_idx, data.control2_branch_idx)
1301
+
1302
+ f = bus_dict[elm.bus_from]
1303
+ t = bus_dict[elm.bus_to]
1304
+ data.C_branch_bus_f[i, f] = 1
1305
+ data.C_branch_bus_t[i, t] = 1
1306
+ data.F[i] = f
1307
+ data.T[i] = t
1559
1308
 
1560
1309
  data.contingency_enabled[i] = int(elm.contingency_enabled)
1561
1310
  data.monitor_loading[i] = int(elm.monitor_loading)
@@ -1612,8 +1361,8 @@ def get_hvdc_data(data: HvdcData,
1612
1361
 
1613
1362
  if time_series:
1614
1363
  data.active[i] = elm.active_prof[t_idx]
1615
- data.rates[i] = elm.rate_prof[t_idx]
1616
- data.contingency_rates[i] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx]
1364
+ data.rate[i] = elm.rate_prof[t_idx]
1365
+ data.contingency_rate[i] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx]
1617
1366
  data.protection_rates[i] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx]
1618
1367
  data.angle_droop[i] = elm.angle_droop_prof[t_idx]
1619
1368
 
@@ -1630,30 +1379,30 @@ def get_hvdc_data(data: HvdcData,
1630
1379
 
1631
1380
  # hack the bus types to believe they are PV
1632
1381
  if elm.active_prof[t_idx]:
1633
- set_bus_control_voltage_hvdc(i=f,
1634
- j=-1,
1635
- remote_control=False,
1636
- bus_name=elm.bus_from.name,
1637
- bus_data=bus_data,
1638
- bus_voltage_used=bus_voltage_used,
1639
- candidate_Vm=elm.Vset_f_prof[t_idx],
1640
- use_stored_guess=use_stored_guess,
1641
- logger=logger)
1642
-
1643
- set_bus_control_voltage_hvdc(i=t,
1644
- j=-1,
1645
- remote_control=False,
1646
- bus_name=elm.bus_to.name,
1647
- bus_data=bus_data,
1648
- bus_voltage_used=bus_voltage_used,
1649
- candidate_Vm=elm.Vset_t_prof[t_idx],
1650
- use_stored_guess=use_stored_guess,
1651
- logger=logger)
1382
+ set_bus_control_voltage(i=f,
1383
+ j=-1,
1384
+ remote_control=False,
1385
+ bus_name=elm.bus_from.name,
1386
+ bus_data=bus_data,
1387
+ bus_voltage_used=bus_voltage_used,
1388
+ candidate_Vm=elm.Vset_f_prof[t_idx],
1389
+ use_stored_guess=use_stored_guess,
1390
+ logger=logger)
1391
+
1392
+ set_bus_control_voltage(i=t,
1393
+ j=-1,
1394
+ remote_control=False,
1395
+ bus_name=elm.bus_to.name,
1396
+ bus_data=bus_data,
1397
+ bus_voltage_used=bus_voltage_used,
1398
+ candidate_Vm=elm.Vset_t_prof[t_idx],
1399
+ use_stored_guess=use_stored_guess,
1400
+ logger=logger)
1652
1401
 
1653
1402
  else:
1654
1403
  data.active[i] = elm.active
1655
- data.rates[i] = elm.rate
1656
- data.contingency_rates[i] = elm.rate * elm.contingency_factor
1404
+ data.rate[i] = elm.rate
1405
+ data.contingency_rate[i] = elm.rate * elm.contingency_factor
1657
1406
  data.protection_rates[i] = elm.rate * elm.protection_rating_factor
1658
1407
  data.angle_droop[i] = elm.angle_droop
1659
1408
  data.r[i] = elm.r
@@ -1671,25 +1420,25 @@ def get_hvdc_data(data: HvdcData,
1671
1420
 
1672
1421
  # hack the bus types to believe they are PV
1673
1422
  if elm.active:
1674
- set_bus_control_voltage_hvdc(i=f,
1675
- j=-1,
1676
- remote_control=False,
1677
- bus_name=elm.bus_from.name,
1678
- bus_data=bus_data,
1679
- bus_voltage_used=bus_voltage_used,
1680
- candidate_Vm=elm.Vset_f,
1681
- use_stored_guess=use_stored_guess,
1682
- logger=logger)
1683
-
1684
- set_bus_control_voltage_hvdc(i=t,
1685
- j=-1,
1686
- remote_control=False,
1687
- bus_name=elm.bus_to.name,
1688
- bus_data=bus_data,
1689
- bus_voltage_used=bus_voltage_used,
1690
- candidate_Vm=elm.Vset_t,
1691
- use_stored_guess=use_stored_guess,
1692
- logger=logger)
1423
+ set_bus_control_voltage(i=f,
1424
+ j=-1,
1425
+ remote_control=False,
1426
+ bus_name=elm.bus_from.name,
1427
+ bus_data=bus_data,
1428
+ bus_voltage_used=bus_voltage_used,
1429
+ candidate_Vm=elm.Vset_f,
1430
+ use_stored_guess=use_stored_guess,
1431
+ logger=logger)
1432
+
1433
+ set_bus_control_voltage(i=t,
1434
+ j=-1,
1435
+ remote_control=False,
1436
+ bus_name=elm.bus_to.name,
1437
+ bus_data=bus_data,
1438
+ bus_voltage_used=bus_voltage_used,
1439
+ candidate_Vm=elm.Vset_t,
1440
+ use_stored_guess=use_stored_guess,
1441
+ logger=logger)
1693
1442
 
1694
1443
  data.Vnf[i] = elm.bus_from.Vnom
1695
1444
  data.Vnt[i] = elm.bus_to.Vnom
@@ -1699,6 +1448,10 @@ def get_hvdc_data(data: HvdcData,
1699
1448
  data.Qmin_t[i] = elm.Qmin_t
1700
1449
  data.Qmax_t[i] = elm.Qmax_t
1701
1450
 
1451
+ # the bus-hvdc line connectivity
1452
+ data.C_hvdc_bus_f[i, f] = 1
1453
+ data.C_hvdc_bus_t[i, t] = 1
1454
+
1702
1455
 
1703
1456
  def get_fluid_node_data(data: FluidNodeData,
1704
1457
  circuit: MultiCircuit,
@@ -1878,6 +1631,10 @@ def compile_numerical_circuit_at(circuit: MultiCircuit,
1878
1631
  :return: NumericalCircuit instance
1879
1632
  """
1880
1633
 
1634
+ if circuit.get_connectivity_nodes_number() + circuit.get_switches_number():
1635
+ # process topology, this
1636
+ circuit.process_topology_at(t_idx=t_idx, logger=logger)
1637
+
1881
1638
  # if any valid time index is specified, then the data is compiled from the time series
1882
1639
  time_series = t_idx is not None
1883
1640
 
@@ -1888,7 +1645,7 @@ def compile_numerical_circuit_at(circuit: MultiCircuit,
1888
1645
  nbus=circuit.get_bus_number(),
1889
1646
  nbr=circuit.get_branch_number(add_vsc=False,
1890
1647
  add_hvdc=False,
1891
- add_switch=True),
1648
+ add_switch=False),
1892
1649
  nhvdc=circuit.get_hvdc_number(),
1893
1650
  nvsc=circuit.get_vsc_number(),
1894
1651
  nload=circuit.get_load_like_device_number(),