GridCalEngine 5.1.48__tar.gz → 5.1.50__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 (720) hide show
  1. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Compilers/circuit_to_data.py +54 -2
  2. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/branch_data.py +5 -5
  3. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/bus_data.py +19 -0
  4. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/generator_data.py +24 -1
  5. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/hvdc_data.py +5 -5
  6. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/numerical_circuit.py +19 -0
  7. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/shunt_data.py +18 -0
  8. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/dc_line.py +1 -1
  9. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/line.py +1 -1
  10. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/tap_changer.py +86 -4
  11. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/transformer.py +2 -0
  12. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/transformer3w.py +6 -3
  13. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/branch_parent.py +2 -0
  14. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/controllable_branch_parent.py +2 -0
  15. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/editable_device.py +3 -2
  16. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/multi_circuit.py +17 -7
  17. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/types.py +0 -1
  18. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +232 -46
  19. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_utils.py +76 -50
  20. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/gridcal_to_cgmes.py +233 -76
  21. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/file_handler.py +12 -4
  22. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/pack_unpack.py +14 -11
  23. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/raw_to_gridcal.py +11 -0
  24. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/ntc_driver.py +3 -2
  25. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/ntc_opf.py +48 -58
  26. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/ntc_options.py +21 -13
  27. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/ntc_results.py +0 -58
  28. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/ntc_ts_driver.py +16 -13
  29. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/linear_opf_ts.py +1 -1
  30. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +23 -16
  31. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/__version__.py +1 -1
  32. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/api.py +1 -1
  33. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/enumerations.py +46 -0
  34. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/PKG-INFO +1 -1
  35. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Compilers/__init__.py +0 -0
  36. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Compilers/circuit_to_bentayga.py +0 -0
  37. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Compilers/circuit_to_newton_pa.py +0 -0
  38. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Compilers/circuit_to_optimods.py +0 -0
  39. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Compilers/circuit_to_pgm.py +0 -0
  40. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/__init__.py +0 -0
  41. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/battery_data.py +0 -0
  42. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/fluid_node_data.py +0 -0
  43. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/fluid_p2x_data.py +0 -0
  44. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/fluid_path_data.py +0 -0
  45. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/fluid_pump_data.py +0 -0
  46. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/fluid_turbine_data.py +0 -0
  47. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/load_data.py +0 -0
  48. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/DataStructures/vsc_data.py +0 -0
  49. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/__init__.py +0 -0
  50. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/area.py +0 -0
  51. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/branch_group.py +0 -0
  52. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/community.py +0 -0
  53. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/contingency.py +0 -0
  54. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/contingency_group.py +0 -0
  55. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/country.py +0 -0
  56. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/inter_aggregation_info.py +0 -0
  57. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/investment.py +0 -0
  58. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/investments_group.py +0 -0
  59. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/modelling_authority.py +0 -0
  60. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/municipality.py +0 -0
  61. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/region.py +0 -0
  62. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Aggregation/zone.py +0 -0
  63. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Associations/__init__.py +0 -0
  64. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Associations/association.py +0 -0
  65. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Associations/emission_gas.py +0 -0
  66. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Associations/fuel.py +0 -0
  67. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Associations/technology.py +0 -0
  68. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/__init__.py +0 -0
  69. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/branch.py +0 -0
  70. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/hvdc_line.py +0 -0
  71. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/line_locations.py +0 -0
  72. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/overhead_line_type.py +0 -0
  73. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/sequence_line_type.py +0 -0
  74. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/series_reactance.py +0 -0
  75. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/switch.py +0 -0
  76. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/transformer_type.py +0 -0
  77. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/underground_line_type.py +0 -0
  78. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/upfc.py +0 -0
  79. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/vsc.py +0 -0
  80. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/winding.py +0 -0
  81. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Branches/wire.py +0 -0
  82. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/__init__.py +0 -0
  83. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/base_diagram.py +0 -0
  84. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/graphic_location.py +0 -0
  85. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/map_diagram.py +0 -0
  86. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/map_location.py +0 -0
  87. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/palettes.py +0 -0
  88. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Diagrams/schematic_diagram.py +0 -0
  89. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/__init__.py +0 -0
  90. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/fluid_injection_template.py +0 -0
  91. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/fluid_node.py +0 -0
  92. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/fluid_p2x.py +0 -0
  93. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/fluid_path.py +0 -0
  94. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/fluid_pump.py +0 -0
  95. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Fluid/fluid_turbine.py +0 -0
  96. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/__init__.py +0 -0
  97. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/battery.py +0 -0
  98. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/controllable_shunt.py +0 -0
  99. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/current_injection.py +0 -0
  100. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/external_grid.py +0 -0
  101. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/generator.py +0 -0
  102. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/generator_q_curve.py +0 -0
  103. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/load.py +0 -0
  104. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/shunt.py +0 -0
  105. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Injections/static_generator.py +0 -0
  106. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/__init__.py +0 -0
  107. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/generator_parent.py +0 -0
  108. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/injection_parent.py +0 -0
  109. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/load_parent.py +0 -0
  110. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/physical_device.py +0 -0
  111. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Parents/shunt_parent.py +0 -0
  112. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Substation/__init__.py +0 -0
  113. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Substation/bus.py +0 -0
  114. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Substation/busbar.py +0 -0
  115. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Substation/connectivity_node.py +0 -0
  116. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Substation/substation.py +0 -0
  117. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/Substation/voltage_level.py +0 -0
  118. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/__init__.py +0 -0
  119. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/assets.py +0 -0
  120. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/comparison.py +0 -0
  121. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/measurement.py +0 -0
  122. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Devices/profile.py +0 -0
  123. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/__init__.py +0 -0
  124. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/base/__init__.py +0 -0
  125. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/base/base_circuit.py +0 -0
  126. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/base/base_device.py +0 -0
  127. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/base/base_property.py +0 -0
  128. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/base/units.py +0 -0
  129. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/__init__.py +0 -0
  130. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/__init__.py +0 -0
  131. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/base.py +0 -0
  132. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_assets/__init__.py +0 -0
  133. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_assets/cgmes_2_4_15_assets.py +0 -0
  134. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_assets/cgmes_3_0_0_assets.py +0 -0
  135. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_circuit.py +0 -0
  136. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_data_parser.py +0 -0
  137. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_data_validator.py +0 -0
  138. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_enums.py +0 -0
  139. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_export.py +0 -0
  140. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_poperty.py +0 -0
  141. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/__init__.py +0 -0
  142. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/__init__.py +0 -0
  143. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ac_line_segment.py +0 -0
  144. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_converter.py +0 -0
  145. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_converterdc_terminal.py +0 -0
  146. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_terminal.py +0 -0
  147. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/active_power_limit.py +0 -0
  148. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/analog_control.py +0 -0
  149. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/apparent_power_limit.py +0 -0
  150. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/asynchronous_machine.py +0 -0
  151. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/base_voltage.py +0 -0
  152. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/basic_interval_schedule.py +0 -0
  153. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/bay.py +0 -0
  154. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/breaker.py +0 -0
  155. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/bus_name_marker.py +0 -0
  156. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/busbar_section.py +0 -0
  157. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conducting_equipment.py +0 -0
  158. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conductor.py +0 -0
  159. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conform_load.py +0 -0
  160. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conform_load_group.py +0 -0
  161. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connectivity_node.py +0 -0
  162. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connectivity_node_container.py +0 -0
  163. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connector.py +0 -0
  164. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control.py +0 -0
  165. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control_area.py +0 -0
  166. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control_area_generating_unit.py +0 -0
  167. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/coordinate_system.py +0 -0
  168. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/cs_converter.py +0 -0
  169. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/current_limit.py +0 -0
  170. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/curve.py +0 -0
  171. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/curve_data.py +0 -0
  172. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_base_terminal.py +0 -0
  173. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_breaker.py +0 -0
  174. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_busbar.py +0 -0
  175. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_chopper.py +0 -0
  176. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_conducting_equipment.py +0 -0
  177. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_converter_unit.py +0 -0
  178. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_disconnector.py +0 -0
  179. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_equipment_container.py +0 -0
  180. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_ground.py +0 -0
  181. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_line.py +0 -0
  182. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_line_segment.py +0 -0
  183. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_node.py +0 -0
  184. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_series_device.py +0 -0
  185. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_shunt.py +0 -0
  186. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_switch.py +0 -0
  187. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_terminal.py +0 -0
  188. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_topological_island.py +0 -0
  189. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_topological_node.py +0 -0
  190. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/disconnector.py +0 -0
  191. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/earth_fault_compensator.py +0 -0
  192. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_area.py +0 -0
  193. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_consumer.py +0 -0
  194. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_scheduling_type.py +0 -0
  195. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_source.py +0 -0
  196. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equipment.py +0 -0
  197. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equipment_container.py +0 -0
  198. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_branch.py +0 -0
  199. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_equipment.py +0 -0
  200. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_injection.py +0 -0
  201. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_network.py +0 -0
  202. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_shunt.py +0 -0
  203. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/external_network_injection.py +0 -0
  204. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/fossil_fuel.py +0 -0
  205. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/full_model.py +0 -0
  206. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/generating_unit.py +0 -0
  207. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/geographical_region.py +0 -0
  208. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ground.py +0 -0
  209. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ground_disconnector.py +0 -0
  210. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/grounding_impedance.py +0 -0
  211. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_generating_unit.py +0 -0
  212. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_power_plant.py +0 -0
  213. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_pump.py +0 -0
  214. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/identified_object.py +0 -0
  215. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/junction.py +0 -0
  216. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/limit.py +0 -0
  217. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/limit_set.py +0 -0
  218. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/line.py +0 -0
  219. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/linear_shunt_compensator.py +0 -0
  220. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_area.py +0 -0
  221. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_break_switch.py +0 -0
  222. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_group.py +0 -0
  223. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_response_characteristic.py +0 -0
  224. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/location.py +0 -0
  225. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/measurement.py +0 -0
  226. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/measurement_value.py +0 -0
  227. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/mutual_coupling.py +0 -0
  228. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/non_conform_load.py +0 -0
  229. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/non_conform_load_group.py +0 -0
  230. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nonlinear_shunt_compensator.py +0 -0
  231. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nonlinear_shunt_compensator_point.py +0 -0
  232. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nuclear_generating_unit.py +0 -0
  233. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit.py +0 -0
  234. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit_set.py +0 -0
  235. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit_type.py +0 -0
  236. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/per_lengthdc_line_parameter.py +0 -0
  237. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/petersen_coil.py +0 -0
  238. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer.py +0 -0
  239. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_asymmetrical.py +0 -0
  240. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_linear.py +0 -0
  241. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_non_linear.py +0 -0
  242. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_symmetrical.py +0 -0
  243. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_table.py +0 -0
  244. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_table_point.py +0 -0
  245. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_tabular.py +0 -0
  246. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/position_point.py +0 -0
  247. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_system_resource.py +0 -0
  248. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_transformer.py +0 -0
  249. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_transformer_end.py +0 -0
  250. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/protected_switch.py +0 -0
  251. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/quality61850.py +0 -0
  252. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer.py +0 -0
  253. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer_table.py +0 -0
  254. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer_table_point.py +0 -0
  255. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/reactive_capability_curve.py +0 -0
  256. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regular_interval_schedule.py +0 -0
  257. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regulating_cond_eq.py +0 -0
  258. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regulating_control.py +0 -0
  259. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/reporting_group.py +0 -0
  260. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/rotating_machine.py +0 -0
  261. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/season_day_type_schedule.py +0 -0
  262. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/series_compensator.py +0 -0
  263. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/shunt_compensator.py +0 -0
  264. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/solar_generating_unit.py +0 -0
  265. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/static_var_compensator.py +0 -0
  266. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sub_geographical_region.py +0 -0
  267. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sub_load_area.py +0 -0
  268. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/substation.py +0 -0
  269. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_injection.py +0 -0
  270. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_power_flow.py +0 -0
  271. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_shunt_compensator_sections.py +0 -0
  272. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_status.py +0 -0
  273. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_tap_step.py +0 -0
  274. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_voltage.py +0 -0
  275. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/switch.py +0 -0
  276. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/synchronous_machine.py +0 -0
  277. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer.py +0 -0
  278. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer_control.py +0 -0
  279. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer_table_point.py +0 -0
  280. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/terminal.py +0 -0
  281. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/thermal_generating_unit.py +0 -0
  282. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tie_flow.py +0 -0
  283. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/topological_island.py +0 -0
  284. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/topological_node.py +0 -0
  285. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/transformer_end.py +0 -0
  286. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/voltage_level.py +0 -0
  287. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/voltage_limit.py +0 -0
  288. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/vs_capability_curve.py +0 -0
  289. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/vs_converter.py +0 -0
  290. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/wind_generating_unit.py +0 -0
  291. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/__init__.py +0 -0
  292. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/__init__.py +0 -0
  293. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ac_line_segment.py +0 -0
  294. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_converter.py +0 -0
  295. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_converterdc_terminal.py +0 -0
  296. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_terminal.py +0 -0
  297. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/active_power_limit.py +0 -0
  298. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/analog_control.py +0 -0
  299. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/apparent_power_limit.py +0 -0
  300. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/asynchronous_machine.py +0 -0
  301. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/auxiliary_equipment.py +0 -0
  302. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/base_voltage.py +0 -0
  303. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/basic_interval_schedule.py +0 -0
  304. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/battery_unit.py +0 -0
  305. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/bay.py +0 -0
  306. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/boundary_point.py +0 -0
  307. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/breaker.py +0 -0
  308. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/bus_name_marker.py +0 -0
  309. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/busbar_section.py +0 -0
  310. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/caes_plant.py +0 -0
  311. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/clamp.py +0 -0
  312. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cogeneration_plant.py +0 -0
  313. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/combined_cycle_plant.py +0 -0
  314. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conducting_equipment.py +0 -0
  315. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conductor.py +0 -0
  316. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conform_load.py +0 -0
  317. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conform_load_group.py +0 -0
  318. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connectivity_node.py +0 -0
  319. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connectivity_node_container.py +0 -0
  320. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connector.py +0 -0
  321. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control.py +0 -0
  322. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control_area.py +0 -0
  323. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control_area_generating_unit.py +0 -0
  324. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/coordinate_system.py +0 -0
  325. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cs_converter.py +0 -0
  326. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/current_limit.py +0 -0
  327. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/current_transformer.py +0 -0
  328. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/curve.py +0 -0
  329. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/curve_data.py +0 -0
  330. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cut.py +0 -0
  331. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_base_terminal.py +0 -0
  332. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_breaker.py +0 -0
  333. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_busbar.py +0 -0
  334. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_chopper.py +0 -0
  335. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_conducting_equipment.py +0 -0
  336. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_converter_unit.py +0 -0
  337. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_disconnector.py +0 -0
  338. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_equipment_container.py +0 -0
  339. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_ground.py +0 -0
  340. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_line.py +0 -0
  341. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_line_segment.py +0 -0
  342. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_node.py +0 -0
  343. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_series_device.py +0 -0
  344. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_shunt.py +0 -0
  345. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_switch.py +0 -0
  346. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_terminal.py +0 -0
  347. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_topological_island.py +0 -0
  348. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_topological_node.py +0 -0
  349. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/disconnecting_circuit_breaker.py +0 -0
  350. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/disconnector.py +0 -0
  351. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/earth_fault_compensator.py +0 -0
  352. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_area.py +0 -0
  353. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_connection.py +0 -0
  354. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_consumer.py +0 -0
  355. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_scheduling_type.py +0 -0
  356. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_source.py +0 -0
  357. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equipment.py +0 -0
  358. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equipment_container.py +0 -0
  359. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_branch.py +0 -0
  360. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_equipment.py +0 -0
  361. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_injection.py +0 -0
  362. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_network.py +0 -0
  363. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_shunt.py +0 -0
  364. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/external_network_injection.py +0 -0
  365. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fault_indicator.py +0 -0
  366. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fossil_fuel.py +0 -0
  367. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fuse.py +0 -0
  368. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/generating_unit.py +0 -0
  369. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/geographical_region.py +0 -0
  370. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ground.py +0 -0
  371. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ground_disconnector.py +0 -0
  372. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/grounding_impedance.py +0 -0
  373. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_generating_unit.py +0 -0
  374. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_power_plant.py +0 -0
  375. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_pump.py +0 -0
  376. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/identified_object.py +0 -0
  377. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/io_point.py +0 -0
  378. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/jumper.py +0 -0
  379. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/junction.py +0 -0
  380. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/limit.py +0 -0
  381. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/limit_set.py +0 -0
  382. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/line.py +0 -0
  383. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/linear_shunt_compensator.py +0 -0
  384. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_area.py +0 -0
  385. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_break_switch.py +0 -0
  386. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_group.py +0 -0
  387. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_response_characteristic.py +0 -0
  388. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/location.py +0 -0
  389. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/measurement.py +0 -0
  390. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/measurement_value.py +0 -0
  391. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/mutual_coupling.py +0 -0
  392. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/non_conform_load.py +0 -0
  393. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/non_conform_load_group.py +0 -0
  394. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nonlinear_shunt_compensator.py +0 -0
  395. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nonlinear_shunt_compensator_point.py +0 -0
  396. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nuclear_generating_unit.py +0 -0
  397. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit.py +0 -0
  398. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit_set.py +0 -0
  399. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit_type.py +0 -0
  400. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/petersen_coil.py +0 -0
  401. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer.py +0 -0
  402. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_asymmetrical.py +0 -0
  403. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_linear.py +0 -0
  404. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_non_linear.py +0 -0
  405. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_symmetrical.py +0 -0
  406. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_table.py +0 -0
  407. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_table_point.py +0 -0
  408. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_tabular.py +0 -0
  409. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/photo_voltaic_unit.py +0 -0
  410. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/position_point.py +0 -0
  411. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/post_line_sensor.py +0 -0
  412. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/potential_transformer.py +0 -0
  413. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_connection.py +0 -0
  414. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_unit.py +0 -0
  415. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_wind_unit.py +0 -0
  416. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_system_resource.py +0 -0
  417. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_transformer.py +0 -0
  418. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_transformer_end.py +0 -0
  419. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/protected_switch.py +0 -0
  420. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer.py +0 -0
  421. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer_table.py +0 -0
  422. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer_table_point.py +0 -0
  423. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/reactive_capability_curve.py +0 -0
  424. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regular_interval_schedule.py +0 -0
  425. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regulating_cond_eq.py +0 -0
  426. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regulating_control.py +0 -0
  427. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/reporting_group.py +0 -0
  428. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/rotating_machine.py +0 -0
  429. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/season_day_type_schedule.py +0 -0
  430. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sensor.py +0 -0
  431. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/series_compensator.py +0 -0
  432. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/service_location.py +0 -0
  433. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/shunt_compensator.py +0 -0
  434. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/solar_generating_unit.py +0 -0
  435. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/solar_power_plant.py +0 -0
  436. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/static_var_compensator.py +0 -0
  437. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sub_geographical_region.py +0 -0
  438. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sub_load_area.py +0 -0
  439. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/substation.py +0 -0
  440. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/surge_arrester.py +0 -0
  441. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_injection.py +0 -0
  442. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_power_flow.py +0 -0
  443. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_shunt_compensator_sections.py +0 -0
  444. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_status.py +0 -0
  445. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_switch.py +0 -0
  446. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_tap_step.py +0 -0
  447. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_voltage.py +0 -0
  448. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/switch.py +0 -0
  449. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/synchronous_machine.py +0 -0
  450. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer.py +0 -0
  451. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer_control.py +0 -0
  452. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer_table_point.py +0 -0
  453. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/terminal.py +0 -0
  454. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/thermal_generating_unit.py +0 -0
  455. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tie_flow.py +0 -0
  456. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/topological_island.py +0 -0
  457. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/topological_node.py +0 -0
  458. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/transformer_end.py +0 -0
  459. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/voltage_level.py +0 -0
  460. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/voltage_limit.py +0 -0
  461. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/vs_capability_curve.py +0 -0
  462. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/vs_converter.py +0 -0
  463. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wave_trap.py +0 -0
  464. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wind_generating_unit.py +0 -0
  465. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wind_power_plant.py +0 -0
  466. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/work_location.py +0 -0
  467. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/cgmes_writer.py +0 -0
  468. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/rdfs_infos.py +0 -0
  469. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cgmes/rdfs_serializations.py +0 -0
  470. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cim16/__init__.py +0 -0
  471. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cim16/cim_circuit.py +0 -0
  472. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cim16/cim_data_parser.py +0 -0
  473. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cim16/cim_devices.py +0 -0
  474. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cim16/cim_enums.py +0 -0
  475. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/cim16/cim_parser.py +0 -0
  476. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/db/__init__.py +0 -0
  477. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/db/base_db.py +0 -0
  478. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/db/cgmes_lookup_db.py +0 -0
  479. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/db/db_handler.py +0 -0
  480. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/db/file_system.py +0 -0
  481. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/cim/db/psse_lookup_db.py +0 -0
  482. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/dgs/__init__.py +0 -0
  483. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/dgs/dgs_parser.py +0 -0
  484. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/epc/__init__.py +0 -0
  485. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/epc/epc_parser.py +0 -0
  486. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/file_system.py +0 -0
  487. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/__init__.py +0 -0
  488. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/catalogue.py +0 -0
  489. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/contingency_parser.py +0 -0
  490. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/excel_interface.py +0 -0
  491. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/generic_io_functions.py +0 -0
  492. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/h5_interface.py +0 -0
  493. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/json_parser.py +0 -0
  494. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/remote.py +0 -0
  495. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/results_export.py +0 -0
  496. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/sqlite_interface.py +0 -0
  497. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/gridcal/zip_interface.py +0 -0
  498. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/matpower/__init__.py +0 -0
  499. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/matpower/matpower_branch_definitions.py +0 -0
  500. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/matpower/matpower_bus_definitions.py +0 -0
  501. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/matpower/matpower_gen_definitions.py +0 -0
  502. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/matpower/matpower_parser.py +0 -0
  503. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/matpower/matpower_storage_definitions.py +0 -0
  504. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/others/__init__.py +0 -0
  505. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/others/dpx_parser.py +0 -0
  506. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/others/ipa_parser.py +0 -0
  507. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/others/plx_parser.py +0 -0
  508. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/others/pypsa_parser.py +0 -0
  509. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/__init__.py +0 -0
  510. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/__init__.py +0 -0
  511. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/area.py +0 -0
  512. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/branch.py +0 -0
  513. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/bus.py +0 -0
  514. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/facts.py +0 -0
  515. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/fixed_shunt.py +0 -0
  516. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/generator.py +0 -0
  517. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/gne_device.py +0 -0
  518. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/induction_machine.py +0 -0
  519. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/inter_area.py +0 -0
  520. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/load.py +0 -0
  521. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/node.py +0 -0
  522. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/owner.py +0 -0
  523. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/psse_circuit.py +0 -0
  524. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/psse_object.py +0 -0
  525. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/psse_property.py +0 -0
  526. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/substation.py +0 -0
  527. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/switched_shunt.py +0 -0
  528. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/system_switching_device.py +0 -0
  529. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/transformer.py +0 -0
  530. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/two_terminal_dc_line.py +0 -0
  531. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/vsc_dc_line.py +0 -0
  532. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/devices/zone.py +0 -0
  533. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/gridcal_to_raw.py +0 -0
  534. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/raw_functions.py +0 -0
  535. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/raw_parser_legacy.py +0 -0
  536. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/raw_parser_writer.py +0 -0
  537. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/rawx_parser_legacy.py +0 -0
  538. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/IO/raw/rawx_parser_writer.py +0 -0
  539. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/LICENSE.txt +0 -0
  540. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ATC/__init__.py +0 -0
  541. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ATC/available_transfer_capacity_driver.py +0 -0
  542. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ATC/available_transfer_capacity_options.py +0 -0
  543. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ATC/available_transfer_capacity_ts_driver.py +0 -0
  544. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Clustering/__init__.py +0 -0
  545. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Clustering/clustering.py +0 -0
  546. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Clustering/clustering_driver.py +0 -0
  547. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Clustering/clustering_options.py +0 -0
  548. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Clustering/clustering_results.py +0 -0
  549. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/__init__.py +0 -0
  550. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py +0 -0
  551. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingency_analysis.py +0 -0
  552. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/linear_contingency_analysis.py +0 -0
  553. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/nonlinear_contingency_analysis.py +0 -0
  554. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/optimal_linear_contingency_analysis.py +0 -0
  555. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/srap.py +0 -0
  556. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/__init__.py +0 -0
  557. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingencies_report.py +0 -0
  558. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_driver.py +0 -0
  559. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_options.py +0 -0
  560. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_results.py +0 -0
  561. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_driver.py +0 -0
  562. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_results.py +0 -0
  563. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_plan.py +0 -0
  564. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContinuationPowerFlow/__init__.py +0 -0
  565. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +0 -0
  566. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_driver.py +0 -0
  567. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_input.py +0 -0
  568. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_options.py +0 -0
  569. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_results.py +0 -0
  570. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Derivatives/__init__.py +0 -0
  571. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Derivatives/ac_jacobian.py +0 -0
  572. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py +0 -0
  573. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +0 -0
  574. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Derivatives/csr_derivatives.py +0 -0
  575. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py +0 -0
  576. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Dynamics/__init__.py +0 -0
  577. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Dynamics/dynamic_modules.py +0 -0
  578. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Dynamics/transient_stability_driver.py +0 -0
  579. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InputsAnalysis/__init__.py +0 -0
  580. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InputsAnalysis/inputs_analysis_driver.py +0 -0
  581. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/NSGA_3.py +0 -0
  582. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/__init__.py +0 -0
  583. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +0 -0
  584. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/random_eval.py +0 -0
  585. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/stop_crits.py +0 -0
  586. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/__init__.py +0 -0
  587. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +0 -0
  588. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_options.py +0 -0
  589. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_results.py +0 -0
  590. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/__init__.py +0 -0
  591. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +0 -0
  592. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/linear_analysis_driver.py +0 -0
  593. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/linear_analysis_options.py +0 -0
  594. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/linear_analysis_results.py +0 -0
  595. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_driver.py +0 -0
  596. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_results.py +0 -0
  597. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/__init__.py +0 -0
  598. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NTC/ntc_ts_results.py +0 -0
  599. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NodalCapacity/__init__.py +0 -0
  600. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_options.py +0 -0
  601. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_ts_driver.py +0 -0
  602. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_ts_results.py +0 -0
  603. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/NumericalMethods/__init__.py +0 -0
  604. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py +0 -0
  605. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_autodif.py +0 -0
  606. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py +0 -0
  607. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/__init__.py +0 -0
  608. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/opf_driver.py +0 -0
  609. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/opf_options.py +0 -0
  610. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/opf_results.py +0 -0
  611. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/opf_ts_driver.py +0 -0
  612. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/opf_ts_results.py +0 -0
  613. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/OPF/simple_dispatch_ts.py +0 -0
  614. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/__init__.py +0 -0
  615. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +0 -0
  616. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/discrete_controls.py +0 -0
  617. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +0 -0
  618. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +0 -0
  619. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +0 -0
  620. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +0 -0
  621. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py +0 -0
  622. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +0 -0
  623. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py +0 -0
  624. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +0 -0
  625. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py +0 -0
  626. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py +0 -0
  627. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py +0 -0
  628. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/__init__.py +0 -0
  629. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/grid_analysis.py +0 -0
  630. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +0 -0
  631. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +0 -0
  632. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +0 -0
  633. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_driver.py +0 -0
  634. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_input.py +0 -0
  635. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_results.py +0 -0
  636. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ShortCircuitStudies/__init__.py +0 -0
  637. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit.py +0 -0
  638. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_driver.py +0 -0
  639. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_options.py +0 -0
  640. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_results.py +0 -0
  641. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +0 -0
  642. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/SigmaAnalysis/__init__.py +0 -0
  643. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/SigmaAnalysis/sigma_analysis_driver.py +0 -0
  644. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/StateEstimation/__init__.py +0 -0
  645. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/StateEstimation/state_estimation.py +0 -0
  646. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/StateEstimation/state_stimation_driver.py +0 -0
  647. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/__init__.py +0 -0
  648. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/blackout_driver.py +0 -0
  649. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/latin_hypercube_sampling.py +0 -0
  650. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/reliability_driver.py +0 -0
  651. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/reliability_iterable.py +0 -0
  652. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_driver.py +0 -0
  653. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_input.py +0 -0
  654. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_results.py +0 -0
  655. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Topology/__init__.py +0 -0
  656. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Topology/node_groups_driver.py +0 -0
  657. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Topology/topology_processor_driver.py +0 -0
  658. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/Topology/topology_reduction_driver.py +0 -0
  659. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/__init__.py +0 -0
  660. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/driver_template.py +0 -0
  661. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/driver_types.py +0 -0
  662. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/options_template.py +0 -0
  663. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/results_table.py +0 -0
  664. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/results_template.py +0 -0
  665. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Simulations/types.py +0 -0
  666. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/__init__.py +0 -0
  667. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/admittance_matrices.py +0 -0
  668. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/detect_substations.py +0 -0
  669. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/simulation_indices.py +0 -0
  670. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/topology.py +0 -0
  671. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/topology_processor.py +0 -0
  672. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Topology/topology_substation_reduction.py +0 -0
  673. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Filtering/__init__.py +0 -0
  674. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Filtering/filtering.py +0 -0
  675. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Filtering/objects_filtering.py +0 -0
  676. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Filtering/results_table_filtering.py +0 -0
  677. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Filtering/timeseries_filtering.py +0 -0
  678. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/SimpleMip/__init__.py +0 -0
  679. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/SimpleMip/highs.py +0 -0
  680. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/SimpleMip/lpmodel.py +0 -0
  681. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/SimpleMip/lpobjects.py +0 -0
  682. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/__init__.py +0 -0
  683. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/ortools_interface.py +0 -0
  684. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/pulp_interface.py +0 -0
  685. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/MIP/selected_interface.py +0 -0
  686. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/MVRSM_mo_pareto.py +0 -0
  687. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/MVRSM_mo_scaled.py +0 -0
  688. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/MVRSM_original.py +0 -0
  689. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/__init__.py +0 -0
  690. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/autodiff.py +0 -0
  691. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/common.py +0 -0
  692. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/ips.py +0 -0
  693. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/iwamoto.py +0 -0
  694. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py +0 -0
  695. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/newton_raphson.py +0 -0
  696. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/newton_raphson_ode.py +0 -0
  697. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/non_dominated_sorting.py +0 -0
  698. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/nsga3.py +0 -0
  699. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/numerical_stability.py +0 -0
  700. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/powell.py +0 -0
  701. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/sparse_solve.py +0 -0
  702. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/NumericalMethods/weldorf_online_stddev.py +0 -0
  703. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Sparse/__init__.py +0 -0
  704. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Sparse/csc.py +0 -0
  705. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Sparse/csc2.py +0 -0
  706. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Sparse/csc_numba.py +0 -0
  707. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Sparse/sparse_array.py +0 -0
  708. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/Sparse/utils.py +0 -0
  709. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/__init__.py +0 -0
  710. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/rpgm_algo.py +0 -0
  711. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/ThirdParty/__init__.py +0 -0
  712. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/__init__.py +0 -0
  713. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/progress_bar.py +0 -0
  714. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/scores.py +0 -0
  715. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/Utils/zip_file_mgmt.py +0 -0
  716. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/__init__.py +0 -0
  717. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/basic_structures.py +0 -0
  718. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/GridCalEngine/data_logger.py +0 -0
  719. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/setup.cfg +0 -0
  720. {GridCalEngine-5.1.48 → GridCalEngine-5.1.50}/setup.py +0 -0
@@ -189,6 +189,12 @@ def get_load_data(circuit: MultiCircuit,
189
189
  data.active[ii] = elm.active
190
190
  data.cost[ii] = elm.Cost
191
191
 
192
+ # reactive power sharing data
193
+ if data.active[ii]:
194
+ bus_data.q_fixed[i] -= data.S[ii].imag
195
+ bus_data.ii_fixed[i] -= data.I[ii].imag
196
+ bus_data.b_fixed[i] -= data.Y[ii].imag
197
+
192
198
  data.C_bus_elm[i, ii] = 1
193
199
  ii += 1
194
200
 
@@ -209,6 +215,12 @@ def get_load_data(circuit: MultiCircuit,
209
215
  data.active[ii] = elm.active
210
216
  data.cost[ii] = elm.Cost
211
217
 
218
+ # reactive power sharing data
219
+ if data.active[ii]:
220
+ bus_data.q_fixed[i] += data.S[ii].imag
221
+ # bus_data.ii_fixed[i] += data.I[ii].imag
222
+ # bus_data.b_fixed[i] += data.Y[ii].imag
223
+
212
224
  data.C_bus_elm[i, ii] = 1
213
225
  ii += 1
214
226
 
@@ -243,6 +255,12 @@ def get_load_data(circuit: MultiCircuit,
243
255
  data.S[ii] += complex(elm.P, elm.Q)
244
256
  data.active[ii] = elm.active
245
257
 
258
+ # reactive power sharing data
259
+ if data.active[ii]:
260
+ bus_data.q_fixed[i] += data.S[ii].imag
261
+ bus_data.ii_fixed[i] += data.I[ii].imag
262
+ bus_data.b_fixed[i] += data.Y[ii].imag
263
+
246
264
  data.C_bus_elm[i, ii] = 1
247
265
  ii += 1
248
266
 
@@ -266,6 +284,12 @@ def get_load_data(circuit: MultiCircuit,
266
284
  data.active[ii] = elm.active
267
285
  data.cost[ii] = elm.Cost
268
286
 
287
+ # reactive power sharing data
288
+ if data.active[ii]:
289
+ bus_data.q_fixed[i] += data.S[ii].imag
290
+ bus_data.ii_fixed[i] += data.I[ii].imag
291
+ bus_data.b_fixed[i] += data.Y[ii].imag
292
+
269
293
  data.C_bus_elm[i, ii] = 1
270
294
  ii += 1
271
295
 
@@ -293,15 +317,15 @@ def get_shunt_data(
293
317
  :param t_idx:
294
318
  :param time_series:
295
319
  :param use_stored_guess:
320
+ :param control_remote_voltage:
296
321
  :return:
297
322
  """
298
- devices = circuit.get_shunts()
299
323
 
300
324
  data = ds.ShuntData(nelm=circuit.get_shunt_like_device_number(),
301
325
  nbus=circuit.get_bus_number())
302
326
 
303
327
  ii = 0
304
- for k, elm in enumerate(devices):
328
+ for k, elm in enumerate(circuit.get_shunts()):
305
329
 
306
330
  i = bus_dict[elm.bus]
307
331
 
@@ -318,6 +342,10 @@ def get_shunt_data(
318
342
  data.active[k] = elm.active
319
343
  data.Y[k] = complex(elm.G, elm.B)
320
344
 
345
+ # reactive power sharing data
346
+ if data.active[ii]:
347
+ bus_data.b_fixed[i] += data.Y[ii].imag
348
+
321
349
  data.C_bus_elm[i, k] = 1
322
350
  ii += 1
323
351
 
@@ -382,6 +410,14 @@ def get_shunt_data(
382
410
  use_stored_guess=use_stored_guess,
383
411
  logger=logger)
384
412
 
413
+ # reactive power sharing data
414
+ if data.active[ii]:
415
+ if data.controllable[ii]:
416
+ bus_data.q_shared_total[i] += data.Y[ii].imag
417
+ data.q_share[ii] = data.Y[ii].imag
418
+ else:
419
+ bus_data.b_fixed[i] += data.Y[ii].imag
420
+
385
421
  data.C_bus_elm[i, ii] = 1
386
422
  ii += 1
387
423
 
@@ -536,6 +572,14 @@ def get_generator_data(
536
572
  data.qmin[k] = elm.Qmin
537
573
  data.qmax[k] = elm.Qmax
538
574
 
575
+ # reactive power sharing data
576
+ if data.active[k]:
577
+ if data.controllable[k]:
578
+ bus_data.q_shared_total[i] += data.p[k]
579
+ data.q_share[k] = data.p[k]
580
+ else:
581
+ bus_data.q_fixed[i] += data.get_q_at(k)
582
+
539
583
  data.C_bus_elm[i, k] = 1
540
584
 
541
585
  return data, gen_index_dict
@@ -696,6 +740,14 @@ def get_battery_data(
696
740
  data.qmin[k] = elm.Qmin
697
741
  data.qmax[k] = elm.Qmax
698
742
 
743
+ # reactive power sharing data
744
+ if data.active[k]:
745
+ if data.controllable[k]:
746
+ bus_data.q_shared_total[i] += data.p[k]
747
+ data.q_share[k] = data.p[k]
748
+ else:
749
+ bus_data.q_fixed[i] += data.get_q_at(k)
750
+
699
751
  data.C_bus_elm[i, k] = 1
700
752
 
701
753
  return data
@@ -372,19 +372,19 @@ class BranchData:
372
372
  """
373
373
  return np.where(self.contingency_enabled == 1)[0]
374
374
 
375
- def get_inter_areas(self, buses_areas_1, buses_areas_2):
375
+ def get_inter_areas(self, bus_idx_from, bus_idx_to):
376
376
  """
377
377
  Get the Branches that join two areas
378
- :param buses_areas_1: Area from
379
- :param buses_areas_2: Area to
378
+ :param bus_idx_from: Area from
379
+ :param bus_idx_to: Area to
380
380
  :return: List of (branch index, flow sense w.r.t the area exchange)
381
381
  """
382
382
 
383
383
  lst: List[Tuple[int, float]] = list()
384
384
  for k in range(self.nelm):
385
- if self.F[k] in buses_areas_1 and self.T[k] in buses_areas_2:
385
+ if self.F[k] in bus_idx_from and self.T[k] in bus_idx_to:
386
386
  lst.append((k, 1.0))
387
- elif self.F[k] in buses_areas_2 and self.T[k] in buses_areas_1:
387
+ elif self.F[k] in bus_idx_to and self.T[k] in bus_idx_from:
388
388
  lst.append((k, -1.0))
389
389
  return lst
390
390
 
@@ -46,6 +46,15 @@ class BusData:
46
46
  self.areas: IntVec = np.empty(nbus, dtype=int)
47
47
  self.substations: IntVec = np.empty(nbus, dtype=int)
48
48
 
49
+ # This is the total value used to compute the q_share in generators, batteries and shunts
50
+ self.q_shared_total = np.zeros(nbus, dtype=float)
51
+
52
+ # This is the fixed amount of Q that is Subtrated from Qbus to compute
53
+ # the Q of each generator, battery and shunt controlling
54
+ self.q_fixed = np.zeros(nbus, dtype=float)
55
+ self.ii_fixed = np.zeros(nbus, dtype=float) # same concept, but imag current from loads
56
+ self.b_fixed = np.zeros(nbus, dtype=float) # same concept, but susceptance from shunts
57
+
49
58
  self.original_idx: IntVec = np.zeros(nbus, dtype=int)
50
59
 
51
60
  def slice(self, elm_idx: IntVec) -> "BusData":
@@ -76,6 +85,11 @@ class BusData:
76
85
  data.areas = self.areas[elm_idx]
77
86
  data.substations = self.substations[elm_idx]
78
87
 
88
+ data.q_shared_total = self.q_shared_total[elm_idx]
89
+ data.q_fixed = self.q_fixed[elm_idx]
90
+ data.ii_fixed = self.ii_fixed[elm_idx]
91
+ data.b_fixed = self.b_fixed[elm_idx]
92
+
79
93
  data.original_idx = elm_idx
80
94
 
81
95
  return data
@@ -115,6 +129,11 @@ class BusData:
115
129
  data.areas = self.areas.copy()
116
130
  data.substations = self.substations.copy()
117
131
 
132
+ data.q_shared_total = self.q_shared_total.copy()
133
+ data.q_fixed = self.q_fixed.copy()
134
+ data.ii_fixed = self.ii_fixed.copy()
135
+ data.b_fixed = self.b_fixed.copy()
136
+
118
137
  data.original_idx = self.original_idx.copy()
119
138
 
120
139
  return data
@@ -14,6 +14,8 @@
14
14
  # You should have received a copy of the GNU Lesser General Public License
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
+ from typing import Tuple
18
+
17
19
  import numpy as np
18
20
  import scipy.sparse as sp
19
21
  import GridCalEngine.Topology.topology as tp
@@ -46,6 +48,7 @@ class GeneratorData:
46
48
 
47
49
  self.qmin: Vec = np.zeros(nelm, dtype=float)
48
50
  self.qmax: Vec = np.zeros(nelm, dtype=float)
51
+ self.q_share: Vec = np.zeros(nelm, dtype=float)
49
52
 
50
53
  # reliabilty
51
54
  self.mttf: Vec = np.zeros(nelm, dtype=float)
@@ -103,6 +106,7 @@ class GeneratorData:
103
106
 
104
107
  data.qmin = self.qmin[elm_idx]
105
108
  data.qmax = self.qmax[elm_idx]
109
+ data.q_share = self.q_share[elm_idx]
106
110
 
107
111
  data.mttf = self.mttf[elm_idx]
108
112
  data.mttr = self.mttr[elm_idx]
@@ -164,6 +168,7 @@ class GeneratorData:
164
168
 
165
169
  data.qmin = self.qmin.copy()
166
170
  data.qmax = self.qmax.copy()
171
+ data.q_share = self.q_share.copy()
167
172
 
168
173
  data.mttf = self.mttf.copy()
169
174
  data.mttr = self.mttr.copy()
@@ -217,6 +222,17 @@ class GeneratorData:
217
222
  Q = pf_sign * self.p * np.sqrt((1.0 - pf2) / (pf2 + 1e-20))
218
223
  return self.p + 1.0j * Q
219
224
 
225
+ def get_q_at(self, i) -> float:
226
+ """
227
+
228
+ :param i:
229
+ :return:
230
+ """
231
+ pf2 = np.power(self.pf[i], 2.0)
232
+ pf_sign = (self.pf[i] + 1e-20) / np.abs(self.pf[i] + 1e-20)
233
+ Q = pf_sign * self.p[i] * np.sqrt((1.0 - pf2) / (pf2 + 1e-20))
234
+ return Q
235
+
220
236
  def get_Yshunt(self, seq: int = 1) -> CxVec:
221
237
  """
222
238
  Obtain the vector of shunt admittances of a given sequence per bus
@@ -322,4 +338,11 @@ class GeneratorData:
322
338
  :return:
323
339
  """
324
340
  x = (~self.dispatchable * self.active).astype(int)
325
- return np.where(x == 1)[0]
341
+ return np.where(x == 1)[0]
342
+
343
+ def get_controllable_and_not_controllable_indices(self) -> Tuple[IntVec, IntVec]:
344
+ """
345
+ Get the indices of controllable generators
346
+ :return: idx_controllable, idx_non_controllable
347
+ """
348
+ return np.where(self.controllable == 1)[0], np.where(self.controllable == 0)[0]
@@ -310,19 +310,19 @@ class HvdcData:
310
310
  # Shvdc, Losses_hvdc, Pf_hvdc, Pt_hvdc, loading_hvdc, n_free
311
311
  return Pbus, Losses, Pf, Pt, loading, nfree
312
312
 
313
- def get_inter_areas(self, buses_areas_1, buses_areas_2):
313
+ def get_inter_areas(self, bus_idx_from, bus_idx_to):
314
314
  """
315
315
  Get the hvdcs that join two areas
316
- :param buses_areas_1: Area from
317
- :param buses_areas_2: Area to
316
+ :param bus_idx_from: Area from
317
+ :param bus_idx_to: Area to
318
318
  :return: List of (branch index, flow sense w.r.t the area exchange)
319
319
  """
320
320
 
321
321
  lst: List[Tuple[int, float]] = list()
322
322
  for k in range(self.nelm):
323
- if self.F[k] in buses_areas_1 and self.T[k] in buses_areas_2:
323
+ if self.F[k] in bus_idx_from and self.T[k] in bus_idx_to:
324
324
  lst.append((k, 1.0))
325
- elif self.F[k] in buses_areas_2 and self.T[k] in buses_areas_1:
325
+ elif self.F[k] in bus_idx_to and self.T[k] in bus_idx_from:
326
326
  lst.append((k, -1.0))
327
327
  return lst
328
328
 
@@ -2018,6 +2018,25 @@ class NumericalCircuit:
2018
2018
  # if any error in the logger, bad
2019
2019
  return logger.error_count() == 0, logger
2020
2020
 
2021
+ def get_structural_ntc(self, bus_idx_from: IntVec, bus_idx_to: IntVec) -> float:
2022
+ """
2023
+ Get the structural NTC
2024
+ :param bus_idx_from: list of buses of the area from
2025
+ :param bus_idx_to: list of buses of the area to
2026
+ :return: structural NTC in MVA
2027
+ """
2028
+
2029
+ inter_area_branches = self.branch_data.get_inter_areas(bus_idx_from=bus_idx_from, bus_idx_to=bus_idx_to)
2030
+ sum_ratings = 0.0
2031
+ for k, sense in inter_area_branches:
2032
+ sum_ratings += self.branch_data.rates[k]
2033
+
2034
+ inter_area_hvdcs = self.hvdc_data.get_inter_areas(bus_idx_from=bus_idx_from, bus_idx_to=bus_idx_to)
2035
+ for k, sense in inter_area_hvdcs:
2036
+ sum_ratings += self.hvdc_data.rate[k]
2037
+
2038
+ return sum_ratings
2039
+
2021
2040
 
2022
2041
  def compile_numerical_circuit_at(circuit: MultiCircuit,
2023
2042
  t_idx: Union[int, None] = None,
@@ -14,6 +14,7 @@
14
14
  # You should have received a copy of the GNU Lesser General Public License
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
+ from typing import Tuple
17
18
  import numpy as np
18
19
  import scipy.sparse as sp
19
20
  import GridCalEngine.Topology.topology as tp
@@ -46,6 +47,7 @@ class ShuntData:
46
47
 
47
48
  self.qmin: Vec = np.zeros(nelm, dtype=float)
48
49
  self.qmax: Vec = np.zeros(nelm, dtype=float)
50
+ self.q_share: Vec = np.zeros(nelm, dtype=float)
49
51
 
50
52
  self.cost: Vec = np.zeros(nelm, dtype=float)
51
53
 
@@ -88,6 +90,7 @@ class ShuntData:
88
90
 
89
91
  data.qmax = self.qmax[elm_idx]
90
92
  data.qmin = self.qmin[elm_idx]
93
+ data.q_share = self.q_share[elm_idx]
91
94
 
92
95
  data.cost = self.cost[elm_idx]
93
96
 
@@ -119,6 +122,7 @@ class ShuntData:
119
122
 
120
123
  data.qmax = self.qmax.copy()
121
124
  data.qmin = self.qmin.copy()
125
+ data.q_share = self.q_share.copy()
122
126
 
123
127
  data.cost = self.cost.copy()
124
128
 
@@ -162,6 +166,13 @@ class ShuntData:
162
166
  """
163
167
  return self.C_bus_elm * (self.Y * self.active)
164
168
 
169
+ def get_fix_injections_per_bus(self) -> CxVec:
170
+ """
171
+ Get fixed Injections per bus
172
+ :return:
173
+ """
174
+ return self.C_bus_elm * (self.Y * self.active * (1 - self.controllable))
175
+
165
176
  def get_qmax_per_bus(self) -> Vec:
166
177
  """
167
178
  Get generator Qmax per bus
@@ -185,3 +196,10 @@ class ShuntData:
185
196
  :return: array with the bus indices
186
197
  """
187
198
  return tp.get_csr_bus_indices(self.C_bus_elm.tocsr())
199
+
200
+ def get_controllable_and_not_controllable_indices(self) -> Tuple[IntVec, IntVec]:
201
+ """
202
+ Get the indices of controllable generators
203
+ :return: idx_controllable, idx_non_controllable
204
+ """
205
+ return np.where(self.controllable == 1)[0], np.where(self.controllable == 0)[0]
@@ -142,7 +142,7 @@ class DcLine(BranchParent):
142
142
  self.register(key='fault_pos', units='p.u.', tpe=float,
143
143
  definition='Per-unit positioning of the fault:0 would be at the "from" side,1 would '
144
144
  'be at the "to" side,therefore 0.5 is at the middle.')
145
- self.register(key='template', units='', tpe=DeviceType.SequenceLineDevice, definition='', editable=False)
145
+ self.register(key='template', units='', tpe=DeviceType.AnyLineTemplateDevice, definition='', editable=False)
146
146
 
147
147
  self.register(key='locations', units='', tpe=SubObjectType.LineLocations, definition='', editable=False)
148
148
 
@@ -176,7 +176,7 @@ class Line(BranchParent):
176
176
  '0 would be at the "from" side,'
177
177
  '1 would be at the "to" side,'
178
178
  'therefore 0.5 is at the middle.')
179
- self.register(key='template', units='', tpe=DeviceType.SequenceLineDevice, definition='', editable=False)
179
+ self.register(key='template', units='', tpe=DeviceType.AnyLineTemplateDevice, definition='', editable=False)
180
180
  self.register(key='locations', units='', tpe=SubObjectType.LineLocations, definition='', editable=False)
181
181
 
182
182
  self.register(key='possible_tower_types', units='', tpe=SubObjectType.Associations,
@@ -30,6 +30,7 @@ class TapChanger:
30
30
  def __init__(self,
31
31
  total_positions: int = 5,
32
32
  neutral_position: int = 2,
33
+ normal_position: int = 2,
33
34
  dV: float = 0.01,
34
35
  asymmetry_angle: float = 90.0,
35
36
  tc_type: TapChangerTypes = TapChangerTypes.NoRegulation) -> None:
@@ -46,8 +47,10 @@ class TapChanger:
46
47
  self._total_positions = int(total_positions) # total number of positions
47
48
  self.dV = float(dV) # voltage increment in p.u.
48
49
  self.neutral_position = int(neutral_position) # neutral position
50
+ self.normal_position = int(normal_position) # normal position
49
51
  self._tap_position = int(neutral_position) # index with respect to the neutral position
50
52
  self.tc_type: TapChangerTypes = tc_type # tap changer mode
53
+ self._negative_low = False # for CGMES compatibility we store if the low step is negative
51
54
 
52
55
  # Calculated arrays
53
56
  self._ndv = np.zeros(self._total_positions)
@@ -85,7 +88,7 @@ class TapChanger:
85
88
  Set the tap position
86
89
  :param val: tap value
87
90
  """
88
- self._tap_position = val
91
+ self._tap_position = int(val)
89
92
 
90
93
  @property
91
94
  def tap_modules_array(self):
@@ -123,8 +126,10 @@ class TapChanger:
123
126
  "total_positions": self.total_positions,
124
127
  "dV": self.dV,
125
128
  "neutral_position": self.neutral_position,
129
+ "normal_position": self.normal_position,
126
130
  "tap_position": self._tap_position,
127
- "type": str(self.tc_type)
131
+ "type": str(self.tc_type),
132
+ "negative_low": self._negative_low
128
133
  }
129
134
 
130
135
  def parse(self, data: Dict[str, Union[str, float]]):
@@ -136,8 +141,10 @@ class TapChanger:
136
141
  self.total_positions = data.get("total_positions", 5)
137
142
  self.dV = data.get("dV", 0.01)
138
143
  self.neutral_position = data.get("neutral_position", 2)
144
+ self.normal_position = data.get("normal_position", 2)
139
145
  self.tap_position = data.get("tap_position", 2)
140
146
  self.tc_type = TapChangerTypes(data.get("type", TapChangerTypes.NoRegulation.value))
147
+ self._negative_low = data.get("negative_low", False)
141
148
  self.recalc()
142
149
 
143
150
  def to_df(self) -> pd.DataFrame:
@@ -279,7 +286,7 @@ class TapChanger:
279
286
 
280
287
  def get_tap_phase_min(self) -> float:
281
288
  """
282
- Min tap phase, cputed on the fly
289
+ Min tap phase, computed on the fly
283
290
  :return: float
284
291
  """
285
292
  return self.get_tap_phase2(tap_position=0)
@@ -299,8 +306,9 @@ class TapChanger:
299
306
  """
300
307
  return ((self.asymmetry_angle == other.asymmetry_angle)
301
308
  and (self.total_positions == other.total_positions)
302
- and (self.dV == other.dV)
309
+ and np.allclose(self.dV, other.dV, atol=1e-06)
303
310
  and (self.neutral_position == other.neutral_position)
311
+ and (self.normal_position == other.normal_position)
304
312
  and (self.tap_position == other.tap_position)
305
313
  and (self.tc_type == other.tc_type))
306
314
 
@@ -310,3 +318,77 @@ class TapChanger:
310
318
  :return:
311
319
  """
312
320
  return "Tap changer"
321
+
322
+ def init_from_cgmes(self,
323
+ low: int,
324
+ high: int,
325
+ normal: int,
326
+ neutral: int,
327
+ stepVoltageIncrement: float,
328
+ step: int,
329
+ asymmetry_angle: float = 0.0,
330
+ tc_type: TapChangerTypes = TapChangerTypes.NoRegulation) -> None:
331
+ """
332
+ Import TapChanger object from CGMES
333
+
334
+ :param low:
335
+ :param high:
336
+ :param normal:
337
+ :param neutral:
338
+ :param stepVoltageIncrement:
339
+ :param step:
340
+ :param asymmetry_angle:
341
+ :param tc_type:
342
+ :return:
343
+ """
344
+
345
+ self._negative_low = low < 0
346
+
347
+ if self._negative_low:
348
+ self.asymmetry_angle = float(asymmetry_angle) # assymetry angle (Theta)
349
+ self._total_positions = int(high-low+1) # total number of positions
350
+ self.dV = float(stepVoltageIncrement / 100) # voltage increment in p.u.
351
+ self.neutral_position = int(neutral - low + 1) # neutral position
352
+ self.normal_position = int(normal - low + 1) # normal position
353
+ self._tap_position = int(self.neutral_position + step) # index with respect to the neutral position
354
+ self.tc_type = tc_type # tap changer mode
355
+
356
+ else:
357
+ self.asymmetry_angle = float(asymmetry_angle) # assymetry angle (Theta)
358
+ self._total_positions = int(high-low+1) # total number of positions
359
+ self.dV = float(stepVoltageIncrement / 100) # voltage increment in p.u.
360
+ self.neutral_position = int(neutral) # neutral position
361
+ self.normal_position = int(normal) # normal position
362
+ self._tap_position = int(step) # index with respect to the neutral position
363
+ self.tc_type: TapChangerTypes = tc_type # tap changer mode
364
+
365
+ # Calculated arrays
366
+ self._ndv = np.zeros(self._total_positions)
367
+ self._tau_array = np.zeros(self._total_positions)
368
+ self._m_array = np.zeros(self._total_positions)
369
+ self.recalc()
370
+
371
+ def get_cgmes_values(self):
372
+ """
373
+ Returns with values of a Tap Changer in CGMES
374
+
375
+ :return:
376
+ :rtype:
377
+ """
378
+
379
+ if self._negative_low:
380
+ low = -self.neutral_position + 1
381
+ high = self.total_positions - self.neutral_position
382
+ normal = self.normal_position + low - 1
383
+ neutral = self.neutral_position + low - 1
384
+ sVI = self.dV * 100
385
+ step = self.tap_position + low - 1
386
+ else:
387
+ low = 0
388
+ high = self.total_positions-1
389
+ normal = self.normal_position
390
+ neutral = self.neutral_position
391
+ sVI = self.dV * 100
392
+ step = self.tap_position
393
+
394
+ return low, high, normal, neutral, sVI, step
@@ -90,6 +90,7 @@ class Transformer2W(ControllableBranchParent):
90
90
  build_status: BuildStatus = BuildStatus.Commissioned,
91
91
  tc_total_positions: int = 5,
92
92
  tc_neutral_position: int = 2,
93
+ tc_normal_position: int = 2,
93
94
  tc_dV: float = 0.01,
94
95
  tc_asymmetry_angle=90,
95
96
  tc_type: TapChangerTypes = TapChangerTypes.NoRegulation):
@@ -200,6 +201,7 @@ class Transformer2W(ControllableBranchParent):
200
201
  device_type=DeviceType.Transformer2WDevice,
201
202
  tc_total_positions=tc_total_positions,
202
203
  tc_neutral_position=tc_neutral_position,
204
+ tc_normal_position=tc_normal_position,
203
205
  tc_dV=tc_dV,
204
206
  tc_asymmetry_angle=tc_asymmetry_angle,
205
207
  tc_type=tc_type)
@@ -49,6 +49,9 @@ class Transformer3W(PhysicalDevice):
49
49
  name: str = 'Branch',
50
50
  bus0: Union[None, Bus] = None,
51
51
  bus1: Bus = None, bus2: Bus = None, bus3: Bus = None,
52
+ w1_idtag: Union[str, None] = None,
53
+ w2_idtag: Union[str, None] = None,
54
+ w3_idtag: Union[str, None] = None,
52
55
  V1=10.0, V2=10.0, V3=10.0, active=True,
53
56
  r12=0.0, r23=0.0, r31=0.0, x12=0.0, x23=0.0, x31=0.0,
54
57
  rate12=0.0, rate23=0.0, rate31=0.0,
@@ -113,9 +116,9 @@ class Transformer3W(PhysicalDevice):
113
116
  self._rate23 = float(rate23)
114
117
  self._rate31 = float(rate31)
115
118
 
116
- self.winding1 = Winding(bus_from=self.bus0, bus_to=bus1, HV=V1, LV=1.0, name=name + "_W1")
117
- self.winding2 = Winding(bus_from=self.bus0, bus_to=bus2, HV=V2, LV=1.0, name=name + "_W2")
118
- self.winding3 = Winding(bus_from=self.bus0, bus_to=bus3, HV=V3, LV=1.0, name=name + "_W3")
119
+ self.winding1 = Winding(bus_from=self.bus0, idtag=w1_idtag, bus_to=bus1, HV=V1, LV=1.0, name=name + "_W1")
120
+ self.winding2 = Winding(bus_from=self.bus0, idtag=w2_idtag, bus_to=bus2, HV=V2, LV=1.0, name=name + "_W2")
121
+ self.winding3 = Winding(bus_from=self.bus0, idtag=w3_idtag, bus_to=bus3, HV=V3, LV=1.0, name=name + "_W3")
119
122
 
120
123
  self.x = float(x)
121
124
  self.y = float(y)
@@ -125,6 +125,8 @@ class BranchParent(PhysicalDevice):
125
125
  self._rate = float(rate)
126
126
  self._rate_prof = Profile(default_value=rate, data_type=float)
127
127
 
128
+ # TODO define additional rates if needed, plus register property (only here, not in init)
129
+
128
130
  if not isinstance(contingency_factor, Union[float, int]):
129
131
  raise ValueError("contingency_factor must be a float")
130
132
  self._contingency_factor = float(contingency_factor)
@@ -82,6 +82,7 @@ class ControllableBranchParent(BranchParent):
82
82
  device_type: DeviceType,
83
83
  tc_total_positions: int = 5,
84
84
  tc_neutral_position: int = 2,
85
+ tc_normal_position: int = 2,
85
86
  tc_dV: float = 0.01,
86
87
  tc_asymmetry_angle=90,
87
88
  tc_type: TapChangerTypes = TapChangerTypes.NoRegulation):
@@ -186,6 +187,7 @@ class ControllableBranchParent(BranchParent):
186
187
  # tap changer object
187
188
  self._tap_changer = TapChanger(total_positions=tc_total_positions,
188
189
  neutral_position=tc_neutral_position,
190
+ normal_position=tc_normal_position,
189
191
  dV=tc_dV,
190
192
  asymmetry_angle=tc_asymmetry_angle,
191
193
  tc_type=tc_type)
@@ -24,7 +24,7 @@ from GridCalEngine.enumerations import (DeviceType, TimeFrame, BuildStatus, Wind
24
24
  HvdcControlType, ActionType, AvailableTransferMode, ContingencyMethod,
25
25
  CpfParametrization, CpfStopAt, InvestmentEvaluationMethod, SolverType,
26
26
  InvestmentsEvaluationObjectives, NodalCapacityMethod, TimeGrouping,
27
- ZonalGrouping, MIPSolvers, AcOpfMode,
27
+ ZonalGrouping, MIPSolvers, AcOpfMode, SubstationTypes,
28
28
  BranchImpedanceMode, FaultType, TapChangerTypes)
29
29
 
30
30
  # types that can be assigned to a GridCal property
@@ -55,7 +55,8 @@ GCPROP_TYPES = Union[
55
55
  Type[AcOpfMode],
56
56
  Type[BranchImpedanceMode],
57
57
  Type[FaultType],
58
- Type[TapChangerTypes]
58
+ Type[TapChangerTypes],
59
+ Type[SubstationTypes]
59
60
  ]
60
61
 
61
62
 
@@ -1839,7 +1839,8 @@ class MultiCircuit(Assets):
1839
1839
 
1840
1840
  def compare_circuits(self, grid2: "MultiCircuit",
1841
1841
  detailed_profile_comparison: bool = True,
1842
- skip_internals: bool = False) -> Tuple[bool, Logger]:
1842
+ skip_internals: bool = False,
1843
+ tolerance: float = 1e-06) -> Tuple[bool, Logger]:
1843
1844
  """
1844
1845
  Compare this circuit with another circuits for equality
1845
1846
  :param grid2: MultiCircuit
@@ -1896,12 +1897,21 @@ class MultiCircuit(Assets):
1896
1897
  v1 = elm1.get_property_value(prop=prop, t_idx=None)
1897
1898
  v2 = elm2.get_property_value(prop=prop, t_idx=None)
1898
1899
 
1899
- if v1 != v2:
1900
- logger.add_error(msg="Different snapshot values",
1901
- device_class=template_elm.device_type.value,
1902
- device_property=prop.name,
1903
- value=v2,
1904
- expected_value=v1)
1900
+ if prop.tpe == float:
1901
+ if not np.isclose(v1, v2, atol=tolerance):
1902
+ logger.add_error(
1903
+ msg="Different snapshot values",
1904
+ device_class=template_elm.device_type.value,
1905
+ device_property=prop.name,
1906
+ value=v2,
1907
+ expected_value=v1)
1908
+ else:
1909
+ if v1 != v2:
1910
+ logger.add_error(msg="Different snapshot values",
1911
+ device_class=template_elm.device_type.value,
1912
+ device_property=prop.name,
1913
+ value=v2,
1914
+ expected_value=v1)
1905
1915
 
1906
1916
  if prop.has_profile():
1907
1917
  p1 = elm1.get_profile_by_prop(prop=prop)
@@ -14,7 +14,6 @@
14
14
  # You should have received a copy of the GNU Lesser General Public License
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
- from typing import Union
18
17
  from GridCalEngine.Devices.Aggregation import *
19
18
  from GridCalEngine.Devices.Associations import *
20
19
  from GridCalEngine.Devices.Branches import *