GridCalEngine 5.0.10__tar.gz → 5.0.11__tar.gz

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