GridCalEngine 5.0.0a33__tar.gz → 5.0.2__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 (402) hide show
  1. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/numerical_circuit.py +2 -1
  2. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/admittance_matrices.py +16 -8
  3. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/helm_contingencies.py +2 -1
  4. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/ntc_opf.py +25 -28
  5. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/linear_opf_ts.py +56 -60
  6. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/opf_results.py +1 -1
  7. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/opf_ts_driver.py +1 -3
  8. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +3 -2
  9. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +140 -132
  10. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +8 -4
  11. GridCalEngine-5.0.2/GridCalEngine/Utils/MIP/ortools_interface.py +307 -0
  12. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/MIP/selected_interface.py +2 -4
  13. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/__version__.py +1 -1
  14. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/PKG-INFO +1 -1
  15. GridCalEngine-5.0.0a33/GridCalEngine/Utils/MIP/ortools_interface.py +0 -170
  16. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Compilers/__init__.py +0 -0
  17. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Compilers/circuit_to_bentayga.py +0 -0
  18. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Compilers/circuit_to_data.py +0 -0
  19. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Compilers/circuit_to_newton_pa.py +0 -0
  20. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Compilers/circuit_to_optimods.py +0 -0
  21. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Compilers/circuit_to_pgm.py +0 -0
  22. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/__init__.py +0 -0
  23. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/battery_data.py +0 -0
  24. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/branch_data.py +0 -0
  25. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/bus_data.py +0 -0
  26. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/generator_data.py +0 -0
  27. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/hvdc_data.py +0 -0
  28. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/load_data.py +0 -0
  29. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/DataStructures/shunt_data.py +0 -0
  30. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/__init__.py +0 -0
  31. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/area.py +0 -0
  32. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/contingency.py +0 -0
  33. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/contingency_group.py +0 -0
  34. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/country.py +0 -0
  35. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/emission_gas.py +0 -0
  36. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/fuel.py +0 -0
  37. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/investment.py +0 -0
  38. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/investments_group.py +0 -0
  39. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/technology.py +0 -0
  40. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Aggregation/zone.py +0 -0
  41. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Associations/__init__.py +0 -0
  42. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Associations/generator_emission.py +0 -0
  43. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Associations/generator_fuel.py +0 -0
  44. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Associations/generator_technology.py +0 -0
  45. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/__init__.py +0 -0
  46. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/branch.py +0 -0
  47. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/dc_line.py +0 -0
  48. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/hvdc_line.py +0 -0
  49. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/line.py +0 -0
  50. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/switch.py +0 -0
  51. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/tap_changer.py +0 -0
  52. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/__init__.py +0 -0
  53. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/line_template.py +0 -0
  54. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/overhead_line_type.py +0 -0
  55. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/parent_branch.py +0 -0
  56. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/sequence_line_type.py +0 -0
  57. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/transformer_type.py +0 -0
  58. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/templates/underground_line.py +0 -0
  59. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/transformer.py +0 -0
  60. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/transformer3w.py +0 -0
  61. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/upfc.py +0 -0
  62. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/vsc.py +0 -0
  63. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/winding.py +0 -0
  64. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Branches/wire.py +0 -0
  65. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/__init__.py +0 -0
  66. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/base_diagram.py +0 -0
  67. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/bus_branch_diagram.py +0 -0
  68. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/graphic_location.py +0 -0
  69. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/map_diagram.py +0 -0
  70. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/map_location.py +0 -0
  71. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Diagrams/node_breaker_diagram.py +0 -0
  72. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Fluid/__init__.py +0 -0
  73. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Fluid/fluid_node.py +0 -0
  74. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Fluid/fluid_path.py +0 -0
  75. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Fluid/fluid_pump.py +0 -0
  76. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Fluid/fluid_turbine.py +0 -0
  77. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/__init__.py +0 -0
  78. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/battery.py +0 -0
  79. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/external_grid.py +0 -0
  80. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/generator.py +0 -0
  81. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/generator_q_curve.py +0 -0
  82. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/injection_template.py +0 -0
  83. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/load.py +0 -0
  84. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/shunt.py +0 -0
  85. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Injections/static_generator.py +0 -0
  86. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Substation/__init__.py +0 -0
  87. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Substation/bus.py +0 -0
  88. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Substation/connectivity_node.py +0 -0
  89. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/Substation/substation.py +0 -0
  90. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/__init__.py +0 -0
  91. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/editable_device.py +0 -0
  92. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/measurement.py +0 -0
  93. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/multi_circuit.py +0 -0
  94. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/profile.py +0 -0
  95. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/Devices/sparse_array.py +0 -0
  96. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/__init__.py +0 -0
  97. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Core/topology.py +0 -0
  98. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/__init__.py +0 -0
  99. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/base/__init__.py +0 -0
  100. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/base/base_circuit.py +0 -0
  101. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/base/base_device.py +0 -0
  102. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/base/base_property.py +0 -0
  103. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/base/units.py +0 -0
  104. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/__init__.py +0 -0
  105. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/__init__.py +0 -0
  106. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_circuit.py +0 -0
  107. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_data_parser.py +0 -0
  108. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_enums.py +0 -0
  109. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_poperty.py +0 -0
  110. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_to_gridcal.py +0 -0
  111. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_writer.py +0 -0
  112. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/__init__.py +0 -0
  113. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/__init__.py +0 -0
  114. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/cgm_region.py +0 -0
  115. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/control_area.py +0 -0
  116. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/energy_area.py +0 -0
  117. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/geographical_region.py +0 -0
  118. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/load_area.py +0 -0
  119. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/merging_agent.py +0 -0
  120. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/modelling_authority.py +0 -0
  121. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/operational_limit_set.py +0 -0
  122. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/operational_limit_type.py +0 -0
  123. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/sub_geographical_region.py +0 -0
  124. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/sub_load_area.py +0 -0
  125. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/base.py +0 -0
  126. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/__init__.py +0 -0
  127. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/current_limit.py +0 -0
  128. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/dipole.py +0 -0
  129. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/equivalent_branch.py +0 -0
  130. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/__init__.py +0 -0
  131. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/ac_line_segment.py +0 -0
  132. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/line.py +0 -0
  133. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/tie_flow.py +0 -0
  134. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/__init__.py +0 -0
  135. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer.py +0 -0
  136. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_non_linear.py +0 -0
  137. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_symmetrical.py +0 -0
  138. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_table.py +0 -0
  139. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_table_point.py +0 -0
  140. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_tabular.py +0 -0
  141. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/power_transformer.py +0 -0
  142. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/power_transformer_end.py +0 -0
  143. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer.py +0 -0
  144. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer_table.py +0 -0
  145. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer_table_point.py +0 -0
  146. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/tap_changer.py +0 -0
  147. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/tap_changer_control.py +0 -0
  148. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/conducting_equipment.py +0 -0
  149. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equipment.py +0 -0
  150. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equipment_container.py +0 -0
  151. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equivalent_equipment.py +0 -0
  152. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/full_model.py +0 -0
  153. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/identified_object.py +0 -0
  154. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/__init__.py +0 -0
  155. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/energy_scheduling_type.py +0 -0
  156. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/energy_source.py +0 -0
  157. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/__init__.py +0 -0
  158. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/control_area_generating_unit.py +0 -0
  159. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/fossil_fuel.py +0 -0
  160. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/fuel_type.py +0 -0
  161. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/generating_unit.py +0 -0
  162. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_generating_unit.py +0 -0
  163. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_power_plant.py +0 -0
  164. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_pump.py +0 -0
  165. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/nuclear_generating_unit.py +0 -0
  166. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/reactive_capability_curve.py +0 -0
  167. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/rotating_machine.py +0 -0
  168. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/solar_generating_unit.py +0 -0
  169. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/synchronous_machine.py +0 -0
  170. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/thermal_generating_unit.py +0 -0
  171. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/wind_generating_unit.py +0 -0
  172. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/__init__.py +0 -0
  173. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/conform_load.py +0 -0
  174. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/conform_load_group.py +0 -0
  175. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/energy_consumer.py +0 -0
  176. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/equivalent_injection.py +0 -0
  177. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/equivalent_network.py +0 -0
  178. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/load_group.py +0 -0
  179. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/load_response_characteristic.py +0 -0
  180. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/non_conform_load.py +0 -0
  181. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/non_conform_load_group.py +0 -0
  182. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/monopole.py +0 -0
  183. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/power_systems_resource.py +0 -0
  184. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/regulating_cond_eq.py +0 -0
  185. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/regulating_control.py +0 -0
  186. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/__init__.py +0 -0
  187. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/linear_shunt_compensator.py +0 -0
  188. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/shunt_compensator.py +0 -0
  189. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/static_var_compensator.py +0 -0
  190. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/__init__.py +0 -0
  191. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/curve.py +0 -0
  192. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/curve_data.py +0 -0
  193. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/__init__.py +0 -0
  194. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_power_flow.py +0 -0
  195. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_shunt_compensator_sections.py +0 -0
  196. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_tap_step.py +0 -0
  197. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_voltage.py +0 -0
  198. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/topological_island.py +0 -0
  199. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/__init__.py +0 -0
  200. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/acdc_terminal.py +0 -0
  201. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/base_voltage.py +0 -0
  202. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/breaker.py +0 -0
  203. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/bus_bar_section.py +0 -0
  204. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/bus_name_marker.py +0 -0
  205. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connectivity_node.py +0 -0
  206. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connectivity_node_container.py +0 -0
  207. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connector.py +0 -0
  208. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/junction.py +0 -0
  209. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/load_breaker_switch.py +0 -0
  210. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/substation.py +0 -0
  211. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/switch.py +0 -0
  212. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/voltage_level.py +0 -0
  213. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/voltage_limit.py +0 -0
  214. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/terminal.py +0 -0
  215. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/topological_node.py +0 -0
  216. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cim16/__init__.py +0 -0
  217. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cim16/cim_circuit.py +0 -0
  218. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cim16/cim_data_parser.py +0 -0
  219. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cim16/cim_devices.py +0 -0
  220. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cim16/cim_enums.py +0 -0
  221. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/cim16/cim_parser.py +0 -0
  222. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/db/__init__.py +0 -0
  223. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/db/base_db.py +0 -0
  224. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/db/cgmes_lookup_db.py +0 -0
  225. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/db/db_handler.py +0 -0
  226. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/db/file_system.py +0 -0
  227. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/cim/db/psse_lookup_db.py +0 -0
  228. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/dgs/__init__.py +0 -0
  229. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/dgs/dgs_parser.py +0 -0
  230. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/epc/__init__.py +0 -0
  231. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/epc/epc_parser.py +0 -0
  232. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/file_handler.py +0 -0
  233. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/file_system.py +0 -0
  234. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/__init__.py +0 -0
  235. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/contingency_parser.py +0 -0
  236. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/excel_interface.py +0 -0
  237. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/generic_io_functions.py +0 -0
  238. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/h5_interface.py +0 -0
  239. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/json_parser.py +0 -0
  240. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/pack_unpack.py +0 -0
  241. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/sqlite_interface.py +0 -0
  242. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/gridcal/zip_interface.py +0 -0
  243. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/matpower/__init__.py +0 -0
  244. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/matpower/matpower_branch_definitions.py +0 -0
  245. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/matpower/matpower_bus_definitions.py +0 -0
  246. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/matpower/matpower_gen_definitions.py +0 -0
  247. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/matpower/matpower_parser.py +0 -0
  248. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/matpower/matpower_storage_definitions.py +0 -0
  249. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/others/__init__.py +0 -0
  250. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/others/dpx_parser.py +0 -0
  251. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/others/ipa_parser.py +0 -0
  252. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/others/plx_parser.py +0 -0
  253. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/others/pypsa_parser.py +0 -0
  254. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/__init__.py +0 -0
  255. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/__init__.py +0 -0
  256. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/area.py +0 -0
  257. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/branch.py +0 -0
  258. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/bus.py +0 -0
  259. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/facts.py +0 -0
  260. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/fixed_shunt.py +0 -0
  261. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/generator.py +0 -0
  262. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/gne_device.py +0 -0
  263. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/induction_machine.py +0 -0
  264. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/inter_area.py +0 -0
  265. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/load.py +0 -0
  266. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/node.py +0 -0
  267. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/owner.py +0 -0
  268. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/psse_circuit.py +0 -0
  269. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/psse_object.py +0 -0
  270. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/psse_property.py +0 -0
  271. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/substation.py +0 -0
  272. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/switched_shunt.py +0 -0
  273. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/system_switching_device.py +0 -0
  274. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/transformer.py +0 -0
  275. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/two_terminal_dc_line.py +0 -0
  276. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/vsc_dc_line.py +0 -0
  277. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/devices/zone.py +0 -0
  278. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/gridcal_to_raw.py +0 -0
  279. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/raw_functions.py +0 -0
  280. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/raw_parser_legacy.py +0 -0
  281. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/raw_parser_writer.py +0 -0
  282. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/raw_to_gridcal.py +0 -0
  283. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/rawx_parser_legacy.py +0 -0
  284. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/IO/raw/rawx_parser_writer.py +0 -0
  285. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/LICENSE.txt +0 -0
  286. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ATC/__init__.py +0 -0
  287. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ATC/available_transfer_capacity_driver.py +0 -0
  288. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ATC/available_transfer_capacity_ts_driver.py +0 -0
  289. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Clustering/__init__.py +0 -0
  290. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Clustering/clustering.py +0 -0
  291. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Clustering/clustering_driver.py +0 -0
  292. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Clustering/clustering_options.py +0 -0
  293. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Clustering/clustering_results.py +0 -0
  294. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/__init__.py +0 -0
  295. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingencies_report.py +0 -0
  296. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_driver.py +0 -0
  297. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_options.py +0 -0
  298. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_results.py +0 -0
  299. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_driver.py +0 -0
  300. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_results.py +0 -0
  301. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_plan.py +0 -0
  302. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContinuationPowerFlow/__init__.py +0 -0
  303. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +0 -0
  304. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_driver.py +0 -0
  305. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_input.py +0 -0
  306. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_options.py +0 -0
  307. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_results.py +0 -0
  308. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Dynamics/__init__.py +0 -0
  309. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Dynamics/dynamic_modules.py +0 -0
  310. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Dynamics/transient_stability_driver.py +0 -0
  311. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InputsAnalysis/__init__.py +0 -0
  312. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InputsAnalysis/inputs_analysis_driver.py +0 -0
  313. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InvestmentsEvaluation/MVRSM.py +0 -0
  314. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InvestmentsEvaluation/__init__.py +0 -0
  315. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +0 -0
  316. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_results.py +0 -0
  317. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/InvestmentsEvaluation/stop_crits.py +0 -0
  318. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/__init__.py +0 -0
  319. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +0 -0
  320. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/linear_analysis_driver.py +0 -0
  321. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/linear_analysis_options.py +0 -0
  322. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/linear_analysis_results.py +0 -0
  323. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_driver.py +0 -0
  324. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_results.py +0 -0
  325. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/__init__.py +0 -0
  326. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/ntc_driver.py +0 -0
  327. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/ntc_options.py +0 -0
  328. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/ntc_results.py +0 -0
  329. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/ntc_ts_driver.py +0 -0
  330. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/NTC/ntc_ts_results.py +0 -0
  331. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/__init__.py +0 -0
  332. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/opf_driver.py +0 -0
  333. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/opf_options.py +0 -0
  334. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/opf_ts_results.py +0 -0
  335. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/OPF/simple_dispatch_ts.py +0 -0
  336. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/__init__.py +0 -0
  337. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py +0 -0
  338. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +0 -0
  339. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +0 -0
  340. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/derivatives.py +0 -0
  341. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/discrete_controls.py +0 -0
  342. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +0 -0
  343. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +0 -0
  344. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +0 -0
  345. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +0 -0
  346. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +0 -0
  347. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +0 -0
  348. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +0 -0
  349. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +0 -0
  350. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +0 -0
  351. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py +0 -0
  352. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py +0 -0
  353. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +0 -0
  354. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/__init__.py +0 -0
  355. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +0 -0
  356. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +0 -0
  357. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_driver.py +0 -0
  358. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_input.py +0 -0
  359. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_results.py +0 -0
  360. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ShortCircuitStudies/__init__.py +0 -0
  361. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit.py +0 -0
  362. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_driver.py +0 -0
  363. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_results.py +0 -0
  364. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/SigmaAnalysis/__init__.py +0 -0
  365. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/SigmaAnalysis/sigma_analysis_driver.py +0 -0
  366. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/StateEstimation/__init__.py +0 -0
  367. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/StateEstimation/state_estimation.py +0 -0
  368. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/StateEstimation/state_stimation_driver.py +0 -0
  369. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/__init__.py +0 -0
  370. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/blackout_driver.py +0 -0
  371. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/latin_hypercube_sampling.py +0 -0
  372. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/reliability_driver.py +0 -0
  373. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_driver.py +0 -0
  374. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_input.py +0 -0
  375. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_results.py +0 -0
  376. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Topology/__init__.py +0 -0
  377. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/Topology/topology_driver.py +0 -0
  378. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/__init__.py +0 -0
  379. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/driver_template.py +0 -0
  380. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/driver_types.py +0 -0
  381. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/result_types.py +0 -0
  382. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/results_table.py +0 -0
  383. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/results_template.py +0 -0
  384. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Simulations/sparse_solve.py +0 -0
  385. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/MIP/__init__.py +0 -0
  386. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/MIP/pulp_interface.py +0 -0
  387. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/Sparse/__init__.py +0 -0
  388. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/Sparse/csc.py +0 -0
  389. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/Sparse/csc_numba.py +0 -0
  390. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/Sparse/utils.py +0 -0
  391. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/__init__.py +0 -0
  392. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/rpgm_algo.py +0 -0
  393. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/ThirdParty/__init__.py +0 -0
  394. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/Utils/__init__.py +0 -0
  395. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/__init__.py +0 -0
  396. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/api.py +0 -0
  397. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/basic_structures.py +0 -0
  398. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/data_logger.py +0 -0
  399. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/enumerations.py +0 -0
  400. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/GridCalEngine/grid_analysis.py +0 -0
  401. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/setup.cfg +0 -0
  402. {GridCalEngine-5.0.0a33 → GridCalEngine-5.0.2}/setup.py +0 -0
@@ -1135,7 +1135,8 @@ class NumericalCircuit:
1135
1135
  c=self.branch_data.c,
1136
1136
  Yshunt_bus=self.Yshunt_from_devices,
1137
1137
  conn=self.branch_data.conn,
1138
- seq=1
1138
+ seq=1,
1139
+ add_windings_phase=False
1139
1140
  )
1140
1141
  return self.admittances_.Ybus
1141
1142
 
@@ -142,7 +142,8 @@ def compute_admittances(R: Vec,
142
142
  c: Vec,
143
143
  Yshunt_bus: CxVec,
144
144
  conn: Union[List[WindingsConnection], ObjVec],
145
- seq: int) -> Admittance:
145
+ seq: int,
146
+ add_windings_phase: bool = False) -> Admittance:
146
147
  """
147
148
  Compute the complete admittance matrices for the general power flow methods (Newton-Raphson based)
148
149
 
@@ -166,6 +167,7 @@ def compute_admittances(R: Vec,
166
167
  :param Yshunt_bus: array of shunts equivalent power per bus, from the shunt devices (p.u.)
167
168
  :param seq: Sequence [0, 1, 2]
168
169
  :param conn: array of windings connections (numpy array of WindingsConnection)
170
+ :param add_windings_phase: Add the phases of the transformer windings (for short circuits mainly)
169
171
  :return: Admittance instance
170
172
  """
171
173
  r30_deg = np.exp(1.0j * np.pi / 6.0)
@@ -212,14 +214,20 @@ def compute_admittances(R: Vec,
212
214
 
213
215
  elif seq == 1: # positive sequence
214
216
 
215
- # only need to include the phase shift of +-30 degrees
216
- factor_psh = np.array([r30_deg if con == WindingsConnection.GD or con == WindingsConnection.SD else 1.0
217
- for con in conn])
217
+ if add_windings_phase:
218
+ # only need to include the phase shift of +-30 degrees
219
+ factor_psh = np.array([r30_deg if con == WindingsConnection.GD or con == WindingsConnection.SD else 1.0
220
+ for con in conn])
218
221
 
219
- Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f)
220
- Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t) * factor_psh
221
- Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f) * np.conj(factor_psh)
222
- Ytt = (ys + bc2) / (vtap_t * vtap_t)
222
+ Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f)
223
+ Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t) * factor_psh
224
+ Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f) * np.conj(factor_psh)
225
+ Ytt = (ys + bc2) / (vtap_t * vtap_t)
226
+ else:
227
+ Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f)
228
+ Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t)
229
+ Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f)
230
+ Ytt = (ys + bc2) / (vtap_t * vtap_t)
223
231
 
224
232
  else: # original
225
233
  # Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f)
@@ -95,7 +95,8 @@ def calc_V_outage(nc: NumericalCircuit,
95
95
  c=nc.branch_data.c[contingency_br_indices],
96
96
  Yshunt_bus=np.zeros(nc.nbus),
97
97
  conn=nc.branch_data.conn[contingency_br_indices],
98
- seq=1)
98
+ seq=1,
99
+ add_windings_phase=False)
99
100
 
100
101
  # solve the modified HELM
101
102
  _, V, _, norm_f = helm_coefficients_dY(dY=adm.Ybus,
@@ -33,9 +33,8 @@ from GridCalEngine.Core.DataStructures.load_data import LoadData
33
33
  from GridCalEngine.Core.DataStructures.branch_data import BranchData
34
34
  from GridCalEngine.Core.DataStructures.hvdc_data import HvdcData
35
35
  from GridCalEngine.Core.DataStructures.bus_data import BusData
36
- from GridCalEngine.basic_structures import Logger, Mat, Vec, IntVec, BoolVec, StrVec, DateVec, CxMat
37
- from GridCalEngine.Utils.MIP.selected_interface import (LpExp, LpVar, LpModel, get_lp_var_value, lpDot,
38
- set_var_bounds, join)
36
+ from GridCalEngine.basic_structures import Logger, Vec, IntVec, BoolVec, StrVec, CxMat
37
+ from GridCalEngine.Utils.MIP.selected_interface import LpExp, LpVar, LpModel, lpDot, set_var_bounds, join
39
38
  from GridCalEngine.enumerations import TransformerControlType, HvdcControlType, AvailableTransferMode
40
39
  from GridCalEngine.Simulations.LinearFactors.linear_analysis import LinearAnalysis, LinearMultiContingencies
41
40
  from GridCalEngine.Simulations.ATC.available_transfer_capacity_driver import compute_alpha
@@ -315,7 +314,7 @@ class BusNtcVars:
315
314
  self.Pcalc = np.zeros((nt, n_elm), dtype=object)
316
315
  self.inj_delta = np.zeros((nt, n_elm), dtype=object)
317
316
 
318
- def get_values(self, Sbase: float) -> "BusNtcVars":
317
+ def get_values(self, Sbase: float, model: LpModel) -> "BusNtcVars":
319
318
  """
320
319
  Return an instance of this class where the arrays content are not LP vars but their value
321
320
  :return: BusVars
@@ -329,13 +328,11 @@ class BusNtcVars:
329
328
  for t in range(nt):
330
329
 
331
330
  for i in range(n_elm):
332
- data.theta[t, i] = get_lp_var_value(self.theta[t, i])
333
- data.shadow_prices[t, i] = get_lp_var_value(self.kirchhoff[t, i])
334
-
335
- data.load_shedding[t, i] = get_lp_var_value(self.load_shedding[t, i]) * Sbase
336
-
337
- data.Pcalc[t, i] = get_lp_var_value(self.Pcalc[t, i]) * Sbase
338
- data.inj_delta[t, i] = get_lp_var_value(self.inj_delta[t, i])
331
+ data.theta[t, i] = model.get_value(self.theta[t, i])
332
+ data.shadow_prices[t, i] = model.get_dual_value(self.kirchhoff[t, i])
333
+ data.load_shedding[t, i] = model.get_value(self.load_shedding[t, i]) * Sbase
334
+ data.Pcalc[t, i] = model.get_value(self.Pcalc[t, i]) * Sbase
335
+ data.inj_delta[t, i] = model.get_value(self.inj_delta[t, i])
339
336
 
340
337
  # format the arrays appropriately
341
338
  data.theta = data.theta.astype(float, copy=False)
@@ -375,7 +372,7 @@ class BranchNtcVars:
375
372
  # t, m, c, contingency, negative_slack, positive_slack
376
373
  self.contingency_flow_data: List[Tuple[int, int, int, Union[float, LpVar, LpExp], LpVar, LpVar]] = list()
377
374
 
378
- def get_values(self, Sbase: float) -> "BranchNtcVars":
375
+ def get_values(self, Sbase: float, model: LpModel) -> "BranchNtcVars":
379
376
  """
380
377
  Return an instance of this class where the arrays content are not LP vars but their value
381
378
  :return: BranchVars
@@ -387,19 +384,19 @@ class BranchNtcVars:
387
384
 
388
385
  for t in range(nt):
389
386
  for i in range(n_elm):
390
- data.flows[t, i] = get_lp_var_value(self.flows[t, i]) * Sbase
391
- data.flow_slacks_pos[t, i] = get_lp_var_value(self.flow_slacks_pos[t, i]) * Sbase
392
- data.flow_slacks_neg[t, i] = get_lp_var_value(self.flow_slacks_neg[t, i]) * Sbase
393
- data.tap_angles[t, i] = get_lp_var_value(self.tap_angles[t, i])
394
- data.flow_constraints_ub[t, i] = get_lp_var_value(self.flow_constraints_ub[t, i])
395
- data.flow_constraints_lb[t, i] = get_lp_var_value(self.flow_constraints_lb[t, i])
387
+ data.flows[t, i] = model.get_value(self.flows[t, i]) * Sbase
388
+ data.flow_slacks_pos[t, i] = model.get_value(self.flow_slacks_pos[t, i]) * Sbase
389
+ data.flow_slacks_neg[t, i] = model.get_value(self.flow_slacks_neg[t, i]) * Sbase
390
+ data.tap_angles[t, i] = model.get_value(self.tap_angles[t, i])
391
+ data.flow_constraints_ub[t, i] = model.get_value(self.flow_constraints_ub[t, i])
392
+ data.flow_constraints_lb[t, i] = model.get_value(self.flow_constraints_lb[t, i])
396
393
 
397
394
  for i in range(len(self.contingency_flow_data)):
398
395
  t, m, c, var, neg_slack, pos_slack = self.contingency_flow_data[i]
399
396
  self.contingency_flow_data[i] = (t, m, c,
400
- get_lp_var_value(var),
401
- get_lp_var_value(neg_slack),
402
- get_lp_var_value(pos_slack))
397
+ model.get_value(var),
398
+ model.get_value(neg_slack),
399
+ model.get_value(pos_slack))
403
400
 
404
401
  # format the arrays appropriately
405
402
  data.flows = data.flows.astype(float, copy=False)
@@ -444,7 +441,7 @@ class HvdcNtcVars:
444
441
  self.rates = np.zeros((nt, n_elm), dtype=float)
445
442
  self.loading = np.zeros((nt, n_elm), dtype=float)
446
443
 
447
- def get_values(self, Sbase: float) -> "HvdcNtcVars":
444
+ def get_values(self, Sbase: float, model: LpModel) -> "HvdcNtcVars":
448
445
  """
449
446
  Return an instance of this class where the arrays content are not LP vars but their value
450
447
  :return: HvdcVars
@@ -455,7 +452,7 @@ class HvdcNtcVars:
455
452
 
456
453
  for t in range(nt):
457
454
  for i in range(n_elm):
458
- data.flows[t, i] = get_lp_var_value(self.flows[t, i]) * Sbase
455
+ data.flows[t, i] = model.get_value(self.flows[t, i]) * Sbase
459
456
 
460
457
  # format the arrays appropriately
461
458
  data.flows = data.flows.astype(float, copy=False)
@@ -500,7 +497,7 @@ class NtcVars:
500
497
  # power shift
501
498
  self.power_shift = np.zeros(nt, dtype=object)
502
499
 
503
- def get_values(self, Sbase: float) -> "NtcVars":
500
+ def get_values(self, Sbase: float, model: LpModel) -> "NtcVars":
504
501
  """
505
502
  Return an instance of this class where the arrays content are not LP vars but their value
506
503
  :return: OpfVars instance
@@ -517,15 +514,15 @@ class NtcVars:
517
514
  n_hvdc=self.n_hvdc,
518
515
  model=self.model)
519
516
 
520
- data.bus_vars = self.bus_vars.get_values(Sbase)
521
- data.branch_vars = self.branch_vars.get_values(Sbase)
522
- data.hvdc_vars = self.hvdc_vars.get_values(Sbase)
517
+ data.bus_vars = self.bus_vars.get_values(Sbase, model)
518
+ data.branch_vars = self.branch_vars.get_values(Sbase, model)
519
+ data.hvdc_vars = self.hvdc_vars.get_values(Sbase, model)
523
520
 
524
521
  # todo: check if acceptable_solution must to be an array, one solution per hour
525
522
  data.acceptable_solution = self.acceptable_solution
526
523
 
527
524
  for t in range(nt):
528
- data.power_shift[t] = get_lp_var_value(self.power_shift[t])
525
+ data.power_shift[t] = model.get_value(self.power_shift[t])
529
526
 
530
527
  # format the arrays appropriately
531
528
  data.power_shift = data.power_shift.astype(float, copy=False)
@@ -34,8 +34,7 @@ from GridCalEngine.Core.DataStructures.branch_data import BranchData
34
34
  from GridCalEngine.Core.DataStructures.hvdc_data import HvdcData
35
35
  from GridCalEngine.Core.DataStructures.bus_data import BusData
36
36
  from GridCalEngine.basic_structures import Logger, Vec, IntVec, DateVec
37
- from GridCalEngine.Utils.MIP.selected_interface import (LpExp, LpVar, LpModel, get_lp_var_value, lpDot,
38
- set_var_bounds, join)
37
+ from GridCalEngine.Utils.MIP.selected_interface import LpExp, LpVar, LpModel, lpDot, set_var_bounds, join
39
38
  from GridCalEngine.enumerations import TransformerControlType, HvdcControlType
40
39
  from GridCalEngine.Simulations.LinearFactors.linear_analysis import LinearAnalysis, LinearMultiContingency, \
41
40
  LinearMultiContingencies
@@ -88,7 +87,7 @@ class BusVars:
88
87
  self.kirchhoff = np.zeros((nt, n_elm), dtype=object)
89
88
  self.shadow_prices = np.zeros((nt, n_elm), dtype=float)
90
89
 
91
- def get_values(self, Sbase: float) -> "BusVars":
90
+ def get_values(self, Sbase: float, model: LpModel) -> "BusVars":
92
91
  """
93
92
  Return an instance of this class where the arrays content are not LP vars but their value
94
93
  :return: BusVars
@@ -100,10 +99,10 @@ class BusVars:
100
99
 
101
100
  for t in range(nt):
102
101
  for i in range(n_elm):
103
- data.theta[t, i] = get_lp_var_value(self.theta[t, i])
104
- data.Pcalc[t, i] = get_lp_var_value(self.Pcalc[t, i])
105
- data.branch_injections[t, i] = get_lp_var_value(self.branch_injections[t, i]) * Sbase
106
- data.shadow_prices[t, i] = get_lp_var_value(self.kirchhoff[t, i])
102
+ data.theta[t, i] = model.get_value(self.theta[t, i])
103
+ data.Pcalc[t, i] = model.get_value(self.Pcalc[t, i])
104
+ data.branch_injections[t, i] = model.get_value(self.branch_injections[t, i]) * Sbase
105
+ data.shadow_prices[t, i] = model.get_dual_value(self.kirchhoff[t, i])
107
106
 
108
107
  # format the arrays aproprietly
109
108
  data.theta = data.theta.astype(float, copy=False)
@@ -128,7 +127,7 @@ class LoadVars:
128
127
 
129
128
  self.p = np.zeros((nt, n_elm), dtype=float) # to be filled (no vars)
130
129
 
131
- def get_values(self, Sbase: float) -> "LoadVars":
130
+ def get_values(self, Sbase: float, model: LpModel) -> "LoadVars":
132
131
  """
133
132
  Return an instance of this class where the arrays content are not LP vars but their value
134
133
  :return: LoadVars
@@ -140,7 +139,7 @@ class LoadVars:
140
139
 
141
140
  for t in range(nt):
142
141
  for i in range(n_elm):
143
- data.shedding[t, i] = get_lp_var_value(self.shedding[t, i]) * Sbase
142
+ data.shedding[t, i] = model.get_value(self.shedding[t, i]) * Sbase
144
143
 
145
144
  # format the arrays aproprietly
146
145
  data.shedding = data.shedding.astype(float, copy=False)
@@ -165,7 +164,7 @@ class GenerationVars:
165
164
  self.starting_up = np.zeros((nt, n_elm), dtype=object)
166
165
  self.shutting_down = np.zeros((nt, n_elm), dtype=object)
167
166
 
168
- def get_values(self, Sbase: float) -> "GenerationVars":
167
+ def get_values(self, Sbase: float, model: LpModel) -> "GenerationVars":
169
168
  """
170
169
  Return an instance of this class where the arrays content are not LP vars but their value
171
170
  :return: GenerationVars
@@ -175,11 +174,11 @@ class GenerationVars:
175
174
 
176
175
  for t in range(nt):
177
176
  for i in range(n_elm):
178
- data.p[t, i] = get_lp_var_value(self.p[t, i]) * Sbase
179
- data.shedding[t, i] = get_lp_var_value(self.shedding[t, i]) * Sbase
180
- data.producing[t, i] = get_lp_var_value(self.producing[t, i])
181
- data.starting_up[t, i] = get_lp_var_value(self.starting_up[t, i])
182
- data.shutting_down[t, i] = get_lp_var_value(self.shutting_down[t, i])
177
+ data.p[t, i] = model.get_value(self.p[t, i]) * Sbase
178
+ data.shedding[t, i] = model.get_value(self.shedding[t, i]) * Sbase
179
+ data.producing[t, i] = model.get_value(self.producing[t, i])
180
+ data.starting_up[t, i] = model.get_value(self.starting_up[t, i])
181
+ data.shutting_down[t, i] = model.get_value(self.shutting_down[t, i])
183
182
 
184
183
  # format the arrays aproprietly
185
184
  data.p = data.p.astype(float, copy=False)
@@ -205,7 +204,7 @@ class BatteryVars(GenerationVars):
205
204
  GenerationVars.__init__(self, nt=nt, n_elm=n_elm)
206
205
  self.e = np.zeros((nt, n_elm), dtype=object)
207
206
 
208
- def get_values(self, Sbase: float) -> "BatteryVars":
207
+ def get_values(self, Sbase: float, model: LpModel) -> "BatteryVars":
209
208
  """
210
209
  Return an instance of this class where the arrays content are not LP vars but their value
211
210
  :return: GenerationVars
@@ -215,12 +214,12 @@ class BatteryVars(GenerationVars):
215
214
 
216
215
  for t in range(nt):
217
216
  for i in range(n_elm):
218
- data.p[t, i] = get_lp_var_value(self.p[t, i]) * Sbase
219
- data.e[t, i] = get_lp_var_value(self.e[t, i]) * Sbase
220
- data.shedding[t, i] = get_lp_var_value(self.shedding[t, i]) * Sbase
221
- data.producing[t, i] = get_lp_var_value(self.producing[t, i])
222
- data.starting_up[t, i] = get_lp_var_value(self.starting_up[t, i])
223
- data.shutting_down[t, i] = get_lp_var_value(self.shutting_down[t, i])
217
+ data.p[t, i] = model.get_value(self.p[t, i]) * Sbase
218
+ data.e[t, i] = model.get_value(self.e[t, i]) * Sbase
219
+ data.shedding[t, i] = model.get_value(self.shedding[t, i]) * Sbase
220
+ data.producing[t, i] = model.get_value(self.producing[t, i])
221
+ data.starting_up[t, i] = model.get_value(self.starting_up[t, i])
222
+ data.shutting_down[t, i] = model.get_value(self.shutting_down[t, i])
224
223
 
225
224
  # format the arrays aproprietly
226
225
  data.p = data.p.astype(float, copy=False)
@@ -257,31 +256,30 @@ class BranchVars:
257
256
  # t, m, c, contingency, negative_slack, positive_slack
258
257
  self.contingency_flow_data: List[Tuple[int, int, int, Union[float, LpVar, LpExp], LpVar, LpVar]] = list()
259
258
 
260
- def get_values(self, Sbase: float) -> "BranchVars":
259
+ def get_values(self, Sbase: float, model: LpModel) -> "BranchVars":
261
260
  """
262
261
  Return an instance of this class where the arrays content are not LP vars but their value
263
262
  :return: BranchVars
264
263
  """
265
264
  nt, n_elm = self.flows.shape
266
265
  data = BranchVars(nt=nt, n_elm=n_elm)
267
-
268
266
  data.rates = self.rates
269
267
 
270
268
  for t in range(nt):
271
269
  for i in range(n_elm):
272
- data.flows[t, i] = get_lp_var_value(self.flows[t, i]) * Sbase
273
- data.flow_slacks_pos[t, i] = get_lp_var_value(self.flow_slacks_pos[t, i]) * Sbase
274
- data.flow_slacks_neg[t, i] = get_lp_var_value(self.flow_slacks_neg[t, i]) * Sbase
275
- data.tap_angles[t, i] = get_lp_var_value(self.tap_angles[t, i])
276
- data.flow_constraints_ub[t, i] = get_lp_var_value(self.flow_constraints_ub[t, i])
277
- data.flow_constraints_lb[t, i] = get_lp_var_value(self.flow_constraints_lb[t, i])
270
+ data.flows[t, i] = model.get_value(self.flows[t, i]) * Sbase
271
+ data.flow_slacks_pos[t, i] = model.get_value(self.flow_slacks_pos[t, i]) * Sbase
272
+ data.flow_slacks_neg[t, i] = model.get_value(self.flow_slacks_neg[t, i]) * Sbase
273
+ data.tap_angles[t, i] = model.get_value(self.tap_angles[t, i])
274
+ data.flow_constraints_ub[t, i] = model.get_value(self.flow_constraints_ub[t, i])
275
+ data.flow_constraints_lb[t, i] = model.get_value(self.flow_constraints_lb[t, i])
278
276
 
279
277
  for i in range(len(self.contingency_flow_data)):
280
278
  t, m, c, var, neg_slack, pos_slack = self.contingency_flow_data[i]
281
279
  self.contingency_flow_data[i] = (t, m, c,
282
- get_lp_var_value(var),
283
- get_lp_var_value(neg_slack),
284
- get_lp_var_value(pos_slack))
280
+ model.get_value(var),
281
+ model.get_value(neg_slack),
282
+ model.get_value(pos_slack))
285
283
 
286
284
  # format the arrays aproprietly
287
285
  data.flows = data.flows.astype(float, copy=False)
@@ -326,7 +324,7 @@ class HvdcVars:
326
324
  self.rates = np.zeros((nt, n_elm), dtype=float)
327
325
  self.loading = np.zeros((nt, n_elm), dtype=float)
328
326
 
329
- def get_values(self, Sbase: float) -> "HvdcVars":
327
+ def get_values(self, Sbase: float, model: LpModel) -> "HvdcVars":
330
328
  """
331
329
  Return an instance of this class where the arrays content are not LP vars but their value
332
330
  :return: HvdcVars
@@ -337,7 +335,7 @@ class HvdcVars:
337
335
 
338
336
  for t in range(nt):
339
337
  for i in range(n_elm):
340
- data.flows[t, i] = get_lp_var_value(self.flows[t, i]) * Sbase
338
+ data.flows[t, i] = model.get_value(self.flows[t, i]) * Sbase
341
339
 
342
340
  # format the arrays aproprietly
343
341
  data.flows = data.flows.astype(float, copy=False)
@@ -380,7 +378,7 @@ class OpfVars:
380
378
  self.branch_vars = BranchVars(nt=nt, n_elm=nbr)
381
379
  self.hvdc_vars = HvdcVars(nt=nt, n_elm=n_hvdc)
382
380
 
383
- def get_values(self, Sbase: float) -> "OpfVars":
381
+ def get_values(self, Sbase: float, model: LpModel) -> "OpfVars":
384
382
  """
385
383
  Return an instance of this class where the arrays content are not LP vars but their value
386
384
  :return: OpfVars instance
@@ -392,12 +390,12 @@ class OpfVars:
392
390
  nl=self.nl,
393
391
  nbr=self.nbr,
394
392
  n_hvdc=self.n_hvdc)
395
- data.bus_vars = self.bus_vars.get_values(Sbase)
396
- data.load_vars = self.load_vars.get_values(Sbase)
397
- data.gen_vars = self.gen_vars.get_values(Sbase)
398
- data.batt_vars = self.batt_vars.get_values(Sbase)
399
- data.branch_vars = self.branch_vars.get_values(Sbase)
400
- data.hvdc_vars = self.hvdc_vars.get_values(Sbase)
393
+ data.bus_vars = self.bus_vars.get_values(Sbase, model)
394
+ data.load_vars = self.load_vars.get_values(Sbase, model)
395
+ data.gen_vars = self.gen_vars.get_values(Sbase, model)
396
+ data.batt_vars = self.batt_vars.get_values(Sbase, model)
397
+ data.branch_vars = self.branch_vars.get_values(Sbase, model)
398
+ data.hvdc_vars = self.hvdc_vars.get_values(Sbase, model)
401
399
 
402
400
  data.acceptable_solution = self.acceptable_solution
403
401
  return data
@@ -636,8 +634,9 @@ def add_linear_battery_formulation(t: Union[int, None],
636
634
 
637
635
  # power boundaries of the generator
638
636
  if not skip_generation_limits:
639
- batt_vars.p[t, k].SetLb(batt_data_t.availability[k] * batt_data_t.pmin[k] / Sbase)
640
- batt_vars.p[t, k].SetUb(batt_data_t.availability[k] * batt_data_t.pmax[k] / Sbase)
637
+ set_var_bounds(var=batt_vars.p[t, k],
638
+ lb=batt_data_t.availability[k] * batt_data_t.pmin[k] / Sbase,
639
+ ub=batt_data_t.availability[k] * batt_data_t.pmax[k] / Sbase)
641
640
 
642
641
  # compute the time increment in hours
643
642
  dt = (time_array[t] - time_array[t - 1]).seconds / 3600.0
@@ -994,8 +993,7 @@ def add_linear_node_balance(t_idx: int,
994
993
  gen_vars: GenerationVars,
995
994
  batt_vars: BatteryVars,
996
995
  load_vars: LoadVars,
997
- prob: LpModel,
998
- logger: Logger):
996
+ prob: LpModel):
999
997
  """
1000
998
  Add the kirchoff nodal equality
1001
999
  :param t_idx: time step
@@ -1027,13 +1025,10 @@ def add_linear_node_balance(t_idx: int,
1027
1025
 
1028
1026
  # add the equality restrictions
1029
1027
  for k in range(bus_data.nbus):
1030
- name = join("kirchoff_", [t_idx, k], "_")
1031
- try:
1032
- bus_vars.kirchhoff[t_idx, k] = prob.add_cst(
1033
- cst=bus_vars.Pcalc[t_idx, k] == P_esp[k],
1034
- name=name)
1035
- except AttributeError:
1036
- logger.add_warning("Kirchoff 0=0", name, comment='Cannot enforce Pcalc zero=Pset zero')
1028
+ bus_vars.kirchhoff[t_idx, k] = prob.add_cst(
1029
+ cst=bus_vars.Pcalc[t_idx, k] == P_esp[k],
1030
+ name=join("kirchoff_", [t_idx, k], "_")
1031
+ )
1037
1032
 
1038
1033
  for i in vd:
1039
1034
  set_var_bounds(var=bus_vars.theta[t_idx, i], lb=0.0, ub=0.0)
@@ -1195,8 +1190,7 @@ def run_linear_opf_ts(grid: MultiCircuit,
1195
1190
  gen_vars=mip_vars.gen_vars,
1196
1191
  batt_vars=mip_vars.batt_vars,
1197
1192
  load_vars=mip_vars.load_vars,
1198
- prob=lp_model,
1199
- logger=logger)
1193
+ prob=lp_model)
1200
1194
 
1201
1195
  # add branch contingencies ---------------------------------------------------------------------------------
1202
1196
  if consider_contingencies:
@@ -1259,16 +1253,18 @@ def run_linear_opf_ts(grid: MultiCircuit,
1259
1253
 
1260
1254
  # gather the results
1261
1255
  if status == LpModel.OPTIMAL:
1262
- print('Solution:')
1263
- print('Objective value =', lp_model.fobj_value())
1256
+ logger.add_info("Objective function", value=lp_model.fobj_value())
1264
1257
  mip_vars.acceptable_solution = True
1265
1258
  else:
1266
- print('The problem does not have an optimal solution.')
1259
+ logger.add_error("The problem does not have an optimal solution.")
1267
1260
  mip_vars.acceptable_solution = False
1268
1261
  lp_file_name = grid.name + "_debug.lp"
1269
1262
  lp_model.save_model(file_name=lp_file_name)
1270
- print("Debug LP model saved as:", lp_file_name)
1263
+ logger.add_info("Debug LP model saved", value=lp_file_name)
1264
+
1265
+ vars_v = mip_vars.get_values(grid.Sbase, model=lp_model)
1271
1266
 
1272
- vars_v = mip_vars.get_values(grid.Sbase)
1267
+ # add the model logger to the main logger
1268
+ logger += lp_model.logger
1273
1269
 
1274
1270
  return vars_v
@@ -382,7 +382,7 @@ class OptimalPowerFlowResults(ResultsTemplate):
382
382
 
383
383
  elif result_type == ResultTypes.HvdcLoading:
384
384
  labels = self.hvdc_names
385
- y = self.hvdc_loading
385
+ y = self.hvdc_loading * 100.0
386
386
  y_label = '(%)'
387
387
  title = 'HVDC loading'
388
388
 
@@ -18,7 +18,6 @@ import datetime
18
18
 
19
19
  import numpy as np
20
20
  import pandas as pd
21
- import time
22
21
  from typing import Union
23
22
  from GridCalEngine.basic_structures import TimeGrouping, get_time_groups
24
23
  from GridCalEngine.Core.Devices.multi_circuit import MultiCircuit
@@ -213,8 +212,7 @@ class OptimalPowerFlowTimeSeriesDriver(TimeSeriesDriverTemplate):
213
212
  self.results.generator_power[time_indices, :] = opf_vars.gen_vars.p
214
213
  self.results.Sf[time_indices, :] = opf_vars.branch_vars.flows
215
214
  self.results.St[time_indices, :] = -opf_vars.branch_vars.flows
216
- self.results.overloads[time_indices,
217
- :] = opf_vars.branch_vars.flow_slacks_pos - opf_vars.branch_vars.flow_slacks_neg
215
+ self.results.overloads[time_indices, :] = opf_vars.branch_vars.flow_slacks_pos - opf_vars.branch_vars.flow_slacks_neg
218
216
  self.results.loading[time_indices, :] = opf_vars.branch_vars.loading
219
217
  self.results.phase_shift[time_indices, :] = opf_vars.branch_vars.tap_angles
220
218
  # self.results.Sbus[time_indices, :] = problem.get_power_injections()
@@ -46,8 +46,9 @@ class PowerFlowDriver(DriverTemplate):
46
46
  """
47
47
  PowerFlowDriver class constructor
48
48
  :param grid: MultiCircuit instance
49
- :param options: PowerFlowOptions instance
50
- :param opf_results: OptimalPowerFlowResults instance
49
+ :param options: PowerFlowOptions instance (optional)
50
+ :param opf_results: OptimalPowerFlowResults instance (optional)
51
+ :param engine: EngineType (i.e. EngineType.GridCal) (optional)
51
52
  """
52
53
 
53
54
  DriverTemplate.__init__(self, grid=grid, engine=engine)