GridCalEngine 5.0.0a17__tar.gz → 5.0.0a19__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 (390) hide show
  1. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Compilers/circuit_to_bentayga.py +0 -2
  2. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Compilers/circuit_to_data.py +18 -6
  3. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Compilers/circuit_to_newton_pa.py +7 -6
  4. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/branch_data.py +1 -1
  5. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/hvdc_data.py +2 -2
  6. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/numerical_circuit.py +1 -1
  7. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/area.py +0 -1
  8. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/contingency.py +0 -1
  9. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/contingency_group.py +0 -1
  10. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/emission_gas.py +0 -1
  11. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/fuel.py +0 -1
  12. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/investment.py +0 -1
  13. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/investments_group.py +0 -1
  14. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/technology.py +0 -1
  15. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Associations/generator_emission.py +0 -1
  16. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Associations/generator_fuel.py +0 -1
  17. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Associations/generator_technology.py +0 -1
  18. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/__init__.py +1 -1
  19. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/branch.py +3 -3
  20. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/dc_line.py +3 -70
  21. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/hvdc_line.py +2 -2
  22. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/line.py +4 -66
  23. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/switch.py +1 -1
  24. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/overhead_line_type.py +47 -17
  25. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/parent_branch.py +4 -4
  26. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/sequence_line_type.py +36 -17
  27. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/transformer_type.py +0 -1
  28. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/underground_line.py +37 -20
  29. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/transformer.py +1 -1
  30. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/transformer3w.py +5 -1
  31. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/upfc.py +1 -1
  32. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/vsc.py +1 -1
  33. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/winding.py +1 -1
  34. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/wire.py +0 -1
  35. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Diagrams/base_diagram.py +8 -9
  36. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Diagrams/bus_branch_diagram.py +1 -3
  37. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Diagrams/graphic_location.py +1 -1
  38. GridCalEngine-5.0.0a19/GridCalEngine/Core/Devices/Diagrams/map_diagram.py +75 -0
  39. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Diagrams/node_breaker_diagram.py +1 -3
  40. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/__init__.py +1 -0
  41. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/external_grid.py +1 -1
  42. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/generator.py +18 -84
  43. GridCalEngine-5.0.0a19/GridCalEngine/Core/Devices/Injections/generator_q_curve.py +219 -0
  44. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/injection_template.py +2 -2
  45. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/load.py +1 -1
  46. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/shunt.py +2 -2
  47. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/static_generator.py +1 -1
  48. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Substation/bus.py +3 -3
  49. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Substation/connectivity_node.py +0 -1
  50. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/__init__.py +0 -2
  51. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/editable_device.py +11 -11
  52. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/multi_circuit.py +151 -133
  53. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/admittance_matrices.py +1 -1
  54. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/bus_bar_section.py +1 -1
  55. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/switch.py +1 -1
  56. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/topological_node.py +1 -1
  57. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cim16/cim_devices.py +5 -4
  58. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/file_handler.py +13 -2
  59. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/excel_interface.py +5 -4
  60. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/pack_unpack.py +10 -3
  61. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/others/dpx_parser.py +4 -2
  62. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/others/pypsa_parser.py +2 -2
  63. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/area.py +7 -22
  64. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/branch.py +19 -10
  65. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/bus.py +12 -11
  66. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/facts.py +32 -78
  67. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/fixed_shunt.py +5 -5
  68. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/generator.py +22 -24
  69. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/induction_machine.py +44 -81
  70. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/inter_area.py +5 -22
  71. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/load.py +17 -18
  72. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/node.py +3 -4
  73. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/owner.py +0 -2
  74. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/substation.py +3 -6
  75. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/switched_shunt.py +11 -15
  76. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/system_switching_device.py +4 -5
  77. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/transformer.py +92 -457
  78. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/two_terminal_dc_line.py +1 -1
  79. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/vsc_dc_line.py +44 -106
  80. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/raw_to_gridcal.py +1 -1
  81. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/rawx_parser_legacy.py +4 -2
  82. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ATC/available_transfer_capacity_driver.py +3 -5
  83. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ATC/available_transfer_capacity_ts_driver.py +2 -6
  84. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Clustering/clustering_results.py +8 -11
  85. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_driver.py +8 -9
  86. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_results.py +22 -15
  87. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_driver.py +0 -1
  88. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_results.py +64 -41
  89. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_driver.py +33 -36
  90. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InputsAnalysis/inputs_analysis_driver.py +4 -2
  91. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +5 -4
  92. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_results.py +28 -12
  93. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/linear_analysis_driver.py +12 -12
  94. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/linear_analysis_options.py +2 -1
  95. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/linear_analysis_results.py +55 -33
  96. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_driver.py +6 -7
  97. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_results.py +19 -27
  98. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/ntc_opf.py +1 -1
  99. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/ntc_results.py +64 -69
  100. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/linear_opf_ts.py +64 -38
  101. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/opf_driver.py +16 -10
  102. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/opf_results.py +99 -27
  103. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/opf_ts_driver.py +17 -11
  104. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/opf_ts_results.py +37 -60
  105. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +20 -19
  106. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +63 -67
  107. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_driver.py +16 -17
  108. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_results.py +185 -119
  109. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +1 -1
  110. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit.py +9 -4
  111. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_driver.py +48 -37
  112. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_results.py +54 -96
  113. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +31 -29
  114. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/SigmaAnalysis/sigma_analysis_driver.py +9 -6
  115. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/StateEstimation/state_stimation_driver.py +12 -8
  116. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/reliability_driver.py +1 -1
  117. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_results.py +23 -29
  118. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/driver_template.py +4 -1
  119. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/result_types.py +2 -2
  120. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/results_template.py +50 -6
  121. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/__version__.py +1 -1
  122. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/api.py +1 -9
  123. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/basic_structures.py +1 -1
  124. {GridCalEngine-5.0.0a17/GridCalEngine/Core/Devices → GridCalEngine-5.0.0a19/GridCalEngine}/enumerations.py +42 -0
  125. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/PKG-INFO +1 -1
  126. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/setup.py +0 -18
  127. GridCalEngine-5.0.0a17/GridCalEngine/Core/Devices/Diagrams/map_diagram.py +0 -36
  128. GridCalEngine-5.0.0a17/GridCalEngine/Core/Devices/templates.py +0 -118
  129. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Compilers/__init__.py +0 -0
  130. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Compilers/circuit_to_optimods.py +0 -0
  131. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Compilers/circuit_to_pgm.py +0 -0
  132. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/__init__.py +0 -0
  133. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/battery_data.py +0 -0
  134. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/bus_data.py +0 -0
  135. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/generator_data.py +0 -0
  136. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/load_data.py +0 -0
  137. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/DataStructures/shunt_data.py +0 -0
  138. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/__init__.py +0 -0
  139. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/country.py +0 -0
  140. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Aggregation/zone.py +0 -0
  141. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Associations/__init__.py +0 -0
  142. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/tap_changer.py +0 -0
  143. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/__init__.py +0 -0
  144. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Branches/templates/line_template.py +0 -0
  145. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Diagrams/__init__.py +0 -0
  146. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Diagrams/map_location.py +0 -0
  147. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Injections/battery.py +0 -0
  148. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Substation/__init__.py +0 -0
  149. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/Substation/substation.py +0 -0
  150. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/Devices/measurement.py +0 -0
  151. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/__init__.py +0 -0
  152. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Core/topology.py +0 -0
  153. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/__init__.py +0 -0
  154. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/base/__init__.py +0 -0
  155. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/base/base_circuit.py +0 -0
  156. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/base/base_device.py +0 -0
  157. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/base/base_property.py +0 -0
  158. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/base/units.py +0 -0
  159. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/__init__.py +0 -0
  160. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/__init__.py +0 -0
  161. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_circuit.py +0 -0
  162. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_data_parser.py +0 -0
  163. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_enums.py +0 -0
  164. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_poperty.py +0 -0
  165. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_to_gridcal.py +0 -0
  166. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/cgmes_writer.py +0 -0
  167. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/__init__.py +0 -0
  168. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/__init__.py +0 -0
  169. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/cgm_region.py +0 -0
  170. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/control_area.py +0 -0
  171. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/energy_area.py +0 -0
  172. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/geographical_region.py +0 -0
  173. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/load_area.py +0 -0
  174. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/merging_agent.py +0 -0
  175. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/modelling_authority.py +0 -0
  176. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/operational_limit_set.py +0 -0
  177. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/operational_limit_type.py +0 -0
  178. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/sub_geographical_region.py +0 -0
  179. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/aggregation/sub_load_area.py +0 -0
  180. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/base.py +0 -0
  181. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/__init__.py +0 -0
  182. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/current_limit.py +0 -0
  183. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/dipole.py +0 -0
  184. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/equivalent_branch.py +0 -0
  185. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/__init__.py +0 -0
  186. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/ac_line_segment.py +0 -0
  187. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/line/line.py +0 -0
  188. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/tie_flow.py +0 -0
  189. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/__init__.py +0 -0
  190. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer.py +0 -0
  191. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_non_linear.py +0 -0
  192. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_symmetrical.py +0 -0
  193. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_table.py +0 -0
  194. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_table_point.py +0 -0
  195. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/phase_tap_changer_tabular.py +0 -0
  196. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/power_transformer.py +0 -0
  197. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/power_transformer_end.py +0 -0
  198. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer.py +0 -0
  199. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer_table.py +0 -0
  200. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/ratio_tap_changer_table_point.py +0 -0
  201. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/tap_changer.py +0 -0
  202. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/branches/transformer/tap_changer_control.py +0 -0
  203. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/conducting_equipment.py +0 -0
  204. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equipment.py +0 -0
  205. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equipment_container.py +0 -0
  206. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/equivalent_equipment.py +0 -0
  207. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/full_model.py +0 -0
  208. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/identified_object.py +0 -0
  209. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/__init__.py +0 -0
  210. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/energy_scheduling_type.py +0 -0
  211. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/energy_source.py +0 -0
  212. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/__init__.py +0 -0
  213. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/control_area_generating_unit.py +0 -0
  214. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/fossil_fuel.py +0 -0
  215. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/fuel_type.py +0 -0
  216. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/generating_unit.py +0 -0
  217. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_generating_unit.py +0 -0
  218. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_power_plant.py +0 -0
  219. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/hydro_pump.py +0 -0
  220. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/nuclear_generating_unit.py +0 -0
  221. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/reactive_capability_curve.py +0 -0
  222. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/rotating_machine.py +0 -0
  223. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/solar_generating_unit.py +0 -0
  224. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/synchronous_machine.py +0 -0
  225. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/thermal_generating_unit.py +0 -0
  226. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/generation/wind_generating_unit.py +0 -0
  227. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/__init__.py +0 -0
  228. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/conform_load.py +0 -0
  229. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/conform_load_group.py +0 -0
  230. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/energy_consumer.py +0 -0
  231. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/equivalent_injection.py +0 -0
  232. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/equivalent_network.py +0 -0
  233. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/load_group.py +0 -0
  234. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/load_response_characteristic.py +0 -0
  235. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/non_conform_load.py +0 -0
  236. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/load/non_conform_load_group.py +0 -0
  237. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/monopole.py +0 -0
  238. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/power_systems_resource.py +0 -0
  239. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/regulating_cond_eq.py +0 -0
  240. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/regulating_control.py +0 -0
  241. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/__init__.py +0 -0
  242. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/linear_shunt_compensator.py +0 -0
  243. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/shunt_compensator.py +0 -0
  244. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/injections/shunt/static_var_compensator.py +0 -0
  245. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/__init__.py +0 -0
  246. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/curve.py +0 -0
  247. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/inputs/curve_data.py +0 -0
  248. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/__init__.py +0 -0
  249. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_power_flow.py +0 -0
  250. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_shunt_compensator_sections.py +0 -0
  251. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_tap_step.py +0 -0
  252. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/sv_voltage.py +0 -0
  253. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/results/topological_island.py +0 -0
  254. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/__init__.py +0 -0
  255. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/acdc_terminal.py +0 -0
  256. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/base_voltage.py +0 -0
  257. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/breaker.py +0 -0
  258. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/bus_name_marker.py +0 -0
  259. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connectivity_node.py +0 -0
  260. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connectivity_node_container.py +0 -0
  261. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/connector.py +0 -0
  262. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/junction.py +0 -0
  263. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/load_breaker_switch.py +0 -0
  264. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/substation.py +0 -0
  265. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/voltage_level.py +0 -0
  266. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/substation/voltage_limit.py +0 -0
  267. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cgmes_2_4_15/devices/terminal.py +0 -0
  268. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cim16/__init__.py +0 -0
  269. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cim16/cim_circuit.py +0 -0
  270. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cim16/cim_data_parser.py +0 -0
  271. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cim16/cim_enums.py +0 -0
  272. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/cim16/cim_parser.py +0 -0
  273. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/db/__init__.py +0 -0
  274. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/db/base_db.py +0 -0
  275. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/db/cgmes_lookup_db.py +0 -0
  276. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/db/db_handler.py +0 -0
  277. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/db/file_system.py +0 -0
  278. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/cim/db/psse_lookup_db.py +0 -0
  279. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/dgs/__init__.py +0 -0
  280. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/dgs/dgs_parser.py +0 -0
  281. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/epc/__init__.py +0 -0
  282. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/epc/epc_parser.py +0 -0
  283. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/file_system.py +0 -0
  284. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/__init__.py +0 -0
  285. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/contingency_parser.py +0 -0
  286. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/generic_io_functions.py +0 -0
  287. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/h5_interface.py +0 -0
  288. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/json_parser.py +0 -0
  289. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/sqlite_interface.py +0 -0
  290. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/gridcal/zip_interface.py +0 -0
  291. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/matpower/__init__.py +0 -0
  292. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/matpower/matpower_branch_definitions.py +0 -0
  293. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/matpower/matpower_bus_definitions.py +0 -0
  294. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/matpower/matpower_gen_definitions.py +0 -0
  295. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/matpower/matpower_parser.py +0 -0
  296. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/matpower/matpower_storage_definitions.py +0 -0
  297. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/others/__init__.py +0 -0
  298. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/others/ipa_parser.py +0 -0
  299. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/others/plx_parser.py +0 -0
  300. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/__init__.py +0 -0
  301. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/__init__.py +0 -0
  302. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/gne_device.py +0 -0
  303. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/psse_circuit.py +0 -0
  304. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/psse_object.py +0 -0
  305. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/psse_property.py +0 -0
  306. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/devices/zone.py +0 -0
  307. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/gridcal_to_raw.py +0 -0
  308. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/raw_functions.py +0 -0
  309. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/raw_parser_legacy.py +0 -0
  310. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/raw_parser_writer.py +0 -0
  311. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/IO/raw/rawx_parser_writer.py +0 -0
  312. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/LICENSE.txt +0 -0
  313. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ATC/__init__.py +0 -0
  314. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Clustering/__init__.py +0 -0
  315. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Clustering/clustering.py +0 -0
  316. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Clustering/clustering_driver.py +0 -0
  317. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Clustering/clustering_options.py +0 -0
  318. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/__init__.py +0 -0
  319. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingencies_report.py +0 -0
  320. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_options.py +0 -0
  321. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_plan.py +0 -0
  322. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContingencyAnalysis/helm_contingencies.py +0 -0
  323. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContinuationPowerFlow/__init__.py +0 -0
  324. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +0 -0
  325. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Dynamics/__init__.py +0 -0
  326. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Dynamics/dynamic_modules.py +0 -0
  327. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Dynamics/transient_stability_driver.py +0 -0
  328. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InputsAnalysis/__init__.py +0 -0
  329. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InvestmentsEvaluation/MVRSM.py +0 -0
  330. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InvestmentsEvaluation/__init__.py +0 -0
  331. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/InvestmentsEvaluation/stop_crits.py +0 -0
  332. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/__init__.py +0 -0
  333. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +0 -0
  334. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/__init__.py +0 -0
  335. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/ntc_driver.py +0 -0
  336. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/ntc_options.py +0 -0
  337. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/ntc_ts_driver.py +0 -0
  338. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/NTC/ntc_ts_results.py +0 -0
  339. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/__init__.py +0 -0
  340. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/opf_options.py +0 -0
  341. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/OPF/simple_dispatch_ts.py +0 -0
  342. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/__init__.py +0 -0
  343. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py +0 -0
  344. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +0 -0
  345. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +0 -0
  346. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/derivatives.py +0 -0
  347. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/discrete_controls.py +0 -0
  348. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +0 -0
  349. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +0 -0
  350. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +0 -0
  351. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +0 -0
  352. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +0 -0
  353. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +0 -0
  354. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +0 -0
  355. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +0 -0
  356. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +0 -0
  357. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py +0 -0
  358. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py +0 -0
  359. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +0 -0
  360. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/__init__.py +0 -0
  361. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +0 -0
  362. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_input.py +0 -0
  363. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/ShortCircuitStudies/__init__.py +0 -0
  364. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/SigmaAnalysis/__init__.py +0 -0
  365. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/StateEstimation/__init__.py +0 -0
  366. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/StateEstimation/state_estimation.py +0 -0
  367. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/__init__.py +0 -0
  368. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/blackout_driver.py +0 -0
  369. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/latin_hypercube_sampling.py +0 -0
  370. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_driver.py +0 -0
  371. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_input.py +0 -0
  372. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Topology/__init__.py +0 -0
  373. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/Topology/topology_driver.py +0 -0
  374. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/__init__.py +0 -0
  375. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/driver_types.py +0 -0
  376. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/results_table.py +0 -0
  377. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Simulations/sparse_solve.py +0 -0
  378. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Sparse/__init__.py +0 -0
  379. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Sparse/csc.py +0 -0
  380. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Sparse/csc_numba.py +0 -0
  381. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/Sparse/utils.py +0 -0
  382. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/ThirdParty/SyntheticNetworks/__init__.py +0 -0
  383. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/ThirdParty/SyntheticNetworks/rpgm_algo.py +0 -0
  384. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/ThirdParty/__init__.py +0 -0
  385. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/ThirdParty/ortools/__init__.py +0 -0
  386. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/ThirdParty/ortools/ortools_extra.py +0 -0
  387. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/__init__.py +0 -0
  388. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/data_logger.py +0 -0
  389. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/GridCalEngine/grid_analysis.py +0 -0
  390. {GridCalEngine-5.0.0a17 → GridCalEngine-5.0.0a19}/setup.cfg +0 -0
@@ -694,11 +694,9 @@ def bentayga_linear_matrices(circuit: MultiCircuit, distributed_slack=False):
694
694
  def translate_bentayga_pf_results(grid: MultiCircuit, res) -> PowerFlowResults:
695
695
  results = PowerFlowResults(n=grid.get_bus_number(),
696
696
  m=grid.get_branch_number_wo_hvdc(),
697
- n_tr=grid.get_transformers2w_number(),
698
697
  n_hvdc=grid.get_hvdc_number(),
699
698
  bus_names=res.names,
700
699
  branch_names=res.names,
701
- transformer_names=[],
702
700
  hvdc_names=res.hvdc_names,
703
701
  bus_types=res.bus_types)
704
702
 
@@ -20,7 +20,7 @@ from GridCalEngine.Core.Devices.Substation.bus import Bus
20
20
  from GridCalEngine.Core.Devices.Aggregation.area import Area
21
21
  from GridCalEngine.Core.Devices.multi_circuit import MultiCircuit
22
22
  from GridCalEngine.basic_structures import BusMode, BranchImpedanceMode, CxVec, ExternalGridMode
23
- from GridCalEngine.Core.Devices.enumerations import ConverterControlType, TransformerControlType
23
+ from GridCalEngine.enumerations import ConverterControlType, TransformerControlType
24
24
  import GridCalEngine.Core.DataStructures as ds
25
25
 
26
26
 
@@ -292,8 +292,7 @@ def get_generator_data(circuit: MultiCircuit,
292
292
  data.names[k] = elm.name
293
293
  data.idtag[k] = elm.idtag
294
294
 
295
- data.qmin[k] = elm.Qmin
296
- data.qmax[k] = elm.Qmax
295
+
297
296
  data.controllable[k] = elm.is_controlled
298
297
  data.installed_p[k] = elm.Snom
299
298
 
@@ -363,6 +362,14 @@ def get_generator_data(circuit: MultiCircuit,
363
362
  elif elm.Vset != Vbus[i]:
364
363
  logger.add_error('Different set points', elm.bus.name, elm.Vset, Vbus[i])
365
364
 
365
+ # reactive power limits, for the given power value
366
+ if elm.use_reactive_power_curve:
367
+ data.qmin[k] = elm.q_curve.get_qmin(data.p[i])
368
+ data.qmax[k] = elm.q_curve.get_qmax(data.p[i])
369
+ else:
370
+ data.qmin[k] = elm.Qmin
371
+ data.qmax[k] = elm.Qmax
372
+
366
373
  data.C_bus_elm[i, k] = 1
367
374
 
368
375
  return data
@@ -402,9 +409,6 @@ def get_battery_data(circuit: MultiCircuit,
402
409
  data.names[k] = elm.name
403
410
  data.idtag[k] = elm.idtag
404
411
 
405
- data.qmin[k] = elm.Qmin
406
- data.qmax[k] = elm.Qmax
407
-
408
412
  data.controllable[k] = elm.is_controlled
409
413
  data.installed_p[k] = elm.Snom
410
414
 
@@ -481,6 +485,14 @@ def get_battery_data(circuit: MultiCircuit,
481
485
  elif elm.Vset != Vbus[i]:
482
486
  logger.add_error('Different set points', elm.bus.name, elm.Vset, Vbus[i])
483
487
 
488
+ # reactive power limits, for the given power value
489
+ if elm.use_reactive_power_curve:
490
+ data.qmin[k] = elm.q_curve.get_qmin(data.p[i])
491
+ data.qmax[k] = elm.q_curve.get_qmax(data.p[i])
492
+ else:
493
+ data.qmin[k] = elm.Qmin
494
+ data.qmax[k] = elm.Qmax
495
+
484
496
  data.C_bus_elm[i, k] = 1
485
497
 
486
498
  return data
@@ -19,7 +19,7 @@ import numpy as np
19
19
  from typing import List, Dict, Union
20
20
  from GridCalEngine.basic_structures import IntVec
21
21
  from GridCalEngine.Core.Devices.multi_circuit import MultiCircuit
22
- from GridCalEngine.Core.Devices.enumerations import TransformerControlType
22
+ from GridCalEngine.enumerations import TransformerControlType, HvdcControlType
23
23
  import GridCalEngine.Core.Devices as dev
24
24
  from GridCalEngine.basic_structures import SolverType, ReactivePowerControlMode
25
25
  from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions
@@ -820,8 +820,8 @@ def add_hvdc_data(circuit: MultiCircuit,
820
820
  :param time_indices: Array of time indices
821
821
  """
822
822
 
823
- cmode_dict = {dev.HvdcControlType.type_0_free: npa.HvdcControlMode.HvdcControlAngleDroop,
824
- dev.HvdcControlType.type_1_Pset: npa.HvdcControlMode.HvdcControlPfix}
823
+ cmode_dict = {HvdcControlType.type_0_free: npa.HvdcControlMode.HvdcControlAngleDroop,
824
+ HvdcControlType.type_1_Pset: npa.HvdcControlMode.HvdcControlPfix}
825
825
 
826
826
  for i, elm in enumerate(circuit.hvdc_lines):
827
827
  hvdc = npa.HvdcLine(uuid=elm.idtag,
@@ -1130,8 +1130,8 @@ def get_newton_pa_linear_opf_options(opf_opt: "OptimalPowerFlowOptions",
1130
1130
  bs.TimeGrouping.Monthly: npa.TimeGrouping.Monthly,
1131
1131
  bs.TimeGrouping.Hourly: npa.TimeGrouping.Hourly}
1132
1132
 
1133
- opt = npa.LinearOpfOptions()
1134
- opt.solver = solver_dict[opf_opt.mip_solver]
1133
+ opt = npa.LinearOpfOptions(solver=solver_dict[opf_opt.mip_solver])
1134
+ # opt.solver = solver_dict[opf_opt.mip_solver]
1135
1135
  opt.grouping = grouping_dict[opf_opt.grouping]
1136
1136
  opt.unit_commitment = False
1137
1137
  opt.compute_flows = opf_opt.zonal_grouping == ZonalGrouping.NoGrouping
@@ -1434,7 +1434,8 @@ def translate_newton_pa_opf_results(grid: MultiCircuit, res: "npa.NonlinearOpfRe
1434
1434
  F=res.F,
1435
1435
  T=res.T,
1436
1436
  F_hvdc=res.hvdc_F,
1437
- T_hvdc=res.hvdc_T)
1437
+ T_hvdc=res.hvdc_T,
1438
+ bus_area_indices=grid.get_bus_area_indices())
1438
1439
 
1439
1440
  results.Sbus = res.Scalc[0, :],
1440
1441
  results.voltage = res.voltage[0, :],
@@ -18,7 +18,7 @@ import numpy as np
18
18
  import pandas as pd
19
19
  import scipy.sparse as sp
20
20
  import GridCalEngine.Core.topology as tp
21
- from GridCalEngine.Core.Devices.enumerations import WindingsConnection
21
+ from GridCalEngine.enumerations import WindingsConnection
22
22
  from GridCalEngine.basic_structures import Vec, IntVec, StrVec, ObjVec
23
23
 
24
24
 
@@ -18,8 +18,8 @@ import numpy as np
18
18
  from typing import Tuple
19
19
  import scipy.sparse as sp
20
20
  import GridCalEngine.Core.topology as tp
21
- from GridCalEngine.Core.Devices.enumerations import HvdcControlType
22
- from GridCalEngine.basic_structures import CxVec, Vec, IntVec
21
+ from GridCalEngine.enumerations import HvdcControlType
22
+ from GridCalEngine.basic_structures import Vec, IntVec
23
23
 
24
24
 
25
25
  class HvdcData:
@@ -30,7 +30,7 @@ from GridCalEngine.Core.topology import compile_types
30
30
  from GridCalEngine.Simulations.sparse_solve import get_sparse_type
31
31
  import GridCalEngine.Core.Compilers.circuit_to_data as gc_compiler2
32
32
  import GridCalEngine.Core.admittance_matrices as ycalc
33
- from GridCalEngine.Core.Devices.enumerations import TransformerControlType, ConverterControlType
33
+ from GridCalEngine.enumerations import TransformerControlType, ConverterControlType
34
34
  import GridCalEngine.Core.DataStructures as ds
35
35
  from GridCalEngine.Core.Devices.Substation.bus import Bus
36
36
  from GridCalEngine.Core.Devices.Aggregation.area import Area
@@ -35,7 +35,6 @@ class GenericAreaGroup(EditableDevice):
35
35
  name=name,
36
36
  code=code,
37
37
  idtag=idtag,
38
- active=True,
39
38
  device_type=device_type)
40
39
 
41
40
  self.latitude = latitude
@@ -44,7 +44,6 @@ class Contingency(EditableDevice):
44
44
  EditableDevice.__init__(self,
45
45
  idtag=idtag,
46
46
  code=code,
47
- active=True,
48
47
  name=name,
49
48
  device_type=DeviceType.ContingencyDevice)
50
49
 
@@ -36,7 +36,6 @@ class ContingencyGroup(EditableDevice):
36
36
  name=name,
37
37
  idtag=idtag,
38
38
  code='',
39
- active=True,
40
39
  device_type=DeviceType.ContingencyGroupDevice)
41
40
 
42
41
  # Contingency type
@@ -43,7 +43,6 @@ class EmissionGas(EditableDevice):
43
43
  name=name,
44
44
  code=code,
45
45
  idtag=idtag,
46
- active=True,
47
46
  device_type=DeviceType.EmissionGasDevice)
48
47
 
49
48
  self.cost = cost
@@ -48,7 +48,6 @@ class Fuel(EditableDevice):
48
48
  name=name,
49
49
  code=code,
50
50
  idtag=idtag,
51
- active=True,
52
51
  device_type=DeviceType.FuelDevice)
53
52
 
54
53
  self.cost = cost
@@ -48,7 +48,6 @@ class Investment(EditableDevice):
48
48
  EditableDevice.__init__(self,
49
49
  idtag=idtag,
50
50
  code=code,
51
- active=True,
52
51
  name=name,
53
52
  device_type=DeviceType.InvestmentDevice)
54
53
 
@@ -41,7 +41,6 @@ class InvestmentsGroup(EditableDevice):
41
41
  name=name,
42
42
  idtag=idtag,
43
43
  code='',
44
- active=True,
45
44
  device_type=DeviceType.InvestmentsGroupDevice)
46
45
 
47
46
  # Contingency type
@@ -36,7 +36,6 @@ class Technology(EditableDevice):
36
36
  name=name,
37
37
  code=code,
38
38
  idtag=idtag,
39
- active=True,
40
39
  device_type=DeviceType.Technology)
41
40
 
42
41
  self.name2 = ""
@@ -42,7 +42,6 @@ class GeneratorEmission(EditableDevice):
42
42
  name=name,
43
43
  code=code,
44
44
  idtag=idtag,
45
- active=True,
46
45
  device_type=DeviceType.GeneratorEmissionAssociation)
47
46
 
48
47
  self.generator = generator
@@ -42,7 +42,6 @@ class GeneratorFuel(EditableDevice):
42
42
  name=name,
43
43
  code=code,
44
44
  idtag=idtag,
45
- active=True,
46
45
  device_type=DeviceType.GeneratorFuelAssociation)
47
46
 
48
47
  self.generator = generator
@@ -42,7 +42,6 @@ class GeneratorTechnology(EditableDevice):
42
42
  name=name,
43
43
  code=code,
44
44
  idtag=idtag,
45
- active=True,
46
45
  device_type=DeviceType.GeneratorTechnologyAssociation)
47
46
 
48
47
  self.generator = generator
@@ -16,7 +16,7 @@
16
16
  # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
 
18
18
 
19
- from GridCalEngine.Core.Devices.Branches.branch import Branch, BranchTemplate
19
+ from GridCalEngine.Core.Devices.Branches.branch import Branch, BranchTemplate, BranchType
20
20
  from GridCalEngine.Core.Devices.Branches.dc_line import DcLine
21
21
  from GridCalEngine.Core.Devices.Branches.line import Line
22
22
  from GridCalEngine.Core.Devices.Branches.hvdc_line import HvdcLine
@@ -21,13 +21,13 @@ import numpy as np
21
21
  from matplotlib import pyplot as plt
22
22
  from enum import Enum
23
23
  from GridCalEngine.Core.Devices.Substation.bus import Bus
24
- from GridCalEngine.Core.Devices.enumerations import BuildStatus
24
+ from GridCalEngine.enumerations import BuildStatus
25
25
  from GridCalEngine.Core.Devices.Branches.templates.parent_branch import ParentBranch
26
26
  from GridCalEngine.Core.Devices.Branches.tap_changer import TapChanger
27
- from GridCalEngine.Core.Devices.Branches.transformer import TransformerType, Transformer2W
27
+ from GridCalEngine.Core.Devices.Branches.transformer import Transformer2W
28
28
  from GridCalEngine.Core.Devices.Branches.line import Line
29
29
 
30
- from GridCalEngine.Core.Devices.editable_device import EditableDevice, DeviceType, GCProp
30
+ from GridCalEngine.Core.Devices.editable_device import DeviceType
31
31
 
32
32
  # Global sqrt of 3 (bad practice?)
33
33
  SQRT3 = np.sqrt(3.0)
@@ -17,16 +17,13 @@
17
17
 
18
18
 
19
19
  import pandas as pd
20
- import numpy as np
21
- from typing import Tuple, Union
20
+ from typing import Union
22
21
  from matplotlib import pyplot as plt
23
22
 
24
- from GridCalEngine.basic_structures import Logger
25
23
  from GridCalEngine.Core.Devices.Substation.bus import Bus
26
- from GridCalEngine.Core.Devices.Branches.templates.overhead_line_type import OverheadLineType
27
- from GridCalEngine.Core.Devices.Branches.line import LineTemplate, SequenceLineType, UndergroundLineType
24
+ from GridCalEngine.Core.Devices.Branches.line import LineTemplate
28
25
  from GridCalEngine.Core.Devices.Branches.templates.parent_branch import ParentBranch
29
- from GridCalEngine.Core.Devices.enumerations import DeviceType, BuildStatus
26
+ from GridCalEngine.enumerations import DeviceType, BuildStatus
30
27
 
31
28
 
32
29
  class DcLine(ParentBranch):
@@ -209,70 +206,6 @@ class DcLine(ParentBranch):
209
206
 
210
207
  return b
211
208
 
212
- def apply_template(self, obj: OverheadLineType, Sbase, logger=Logger()):
213
- """
214
- Apply a branch template to this object
215
-
216
- Arguments:
217
-
218
- **obj**: TransformerType or Tower object
219
-
220
- **Sbase** (float): Nominal power in MVA
221
-
222
- **logger** (list, []): Log list
223
-
224
- """
225
-
226
- if type(obj) is OverheadLineType:
227
-
228
- Vn = self.bus_to.Vnom
229
- Zbase = (Vn * Vn) / Sbase
230
- Ybase = 1 / Zbase
231
-
232
- z = obj.z_series() * self.length / Zbase
233
- y = obj.y_shunt() * self.length / Ybase
234
-
235
- self.R = np.round(z.real, 6)
236
-
237
- # get the rating in MVA = kA * kV
238
- self.rate = obj.rating * Vn * np.sqrt(3)
239
-
240
- if obj != self.template:
241
- self.template = obj
242
-
243
- elif type(obj) is UndergroundLineType:
244
- Vn = self.bus_to.Vnom
245
- Zbase = (Vn * Vn) / Sbase
246
- Ybase = 1 / Zbase
247
-
248
- z = obj.z_series() * self.length / Zbase
249
- y = obj.y_shunt() * self.length / Ybase
250
-
251
- self.R = np.round(z.real, 6)
252
-
253
- # get the rating in MVA = kA * kV
254
- self.rate = obj.rating * Vn * np.sqrt(3)
255
-
256
- if obj != self.template:
257
- self.template = obj
258
-
259
- elif type(obj) is SequenceLineType:
260
-
261
- Vn = self.bus_to.Vnom
262
- Zbase = (Vn * Vn) / Sbase
263
- Ybase = 1 / Zbase
264
-
265
- self.R = np.round(obj.R * self.length / Zbase, 6)
266
-
267
- # get the rating in MVA = kA * kV
268
- self.rate = obj.rating * Vn * np.sqrt(3)
269
-
270
- if obj != self.template:
271
- self.template = obj
272
-
273
- else:
274
- logger.add_error('Template not recognised', self.name)
275
-
276
209
  def get_save_data(self):
277
210
  """
278
211
  Return the data that matches the edit_headers
@@ -22,9 +22,9 @@ from typing import Tuple
22
22
  from matplotlib import pyplot as plt
23
23
 
24
24
  from GridCalEngine.Core.Devices.Substation.bus import Bus
25
- from GridCalEngine.Core.Devices.enumerations import DeviceType, BuildStatus
25
+ from GridCalEngine.enumerations import DeviceType, BuildStatus
26
26
  from GridCalEngine.Core.Devices.Branches.templates.parent_branch import ParentBranch
27
- from GridCalEngine.Core.Devices.enumerations import HvdcControlType
27
+ from GridCalEngine.enumerations import HvdcControlType
28
28
 
29
29
 
30
30
  def firing_angles_to_reactive_limits(P, alphamin, alphamax) -> Tuple[float, float]:
@@ -19,7 +19,7 @@ import numpy as np
19
19
  from typing import Union, Tuple
20
20
  from GridCalEngine.basic_structures import Logger
21
21
  from GridCalEngine.Core.Devices.Substation.bus import Bus
22
- from GridCalEngine.Core.Devices.enumerations import BuildStatus
22
+ from GridCalEngine.enumerations import BuildStatus
23
23
  from GridCalEngine.Core.Devices.Branches.templates.underground_line import UndergroundLineType
24
24
  from GridCalEngine.Core.Devices.Branches.templates.overhead_line_type import OverheadLineType
25
25
  from GridCalEngine.Core.Devices.Branches.transformer import Transformer2W
@@ -222,72 +222,10 @@ class Line(ParentBranch):
222
222
  :param logger: Logger
223
223
  """
224
224
 
225
- if type(obj) is OverheadLineType:
225
+ if type(obj) in [OverheadLineType, UndergroundLineType, SequenceLineType]:
226
226
 
227
- Vn = self.bus_to.Vnom
228
- Zbase = (Vn * Vn) / Sbase
229
- Ybase = 1 / Zbase
230
-
231
- z1 = obj.z_series() * self.length / Zbase
232
- y1 = obj.y_shunt() * self.length / Ybase
233
- self.R = np.round(z1.real, 6)
234
- self.X = np.round(z1.imag, 6)
235
- self.B = np.round(y1.imag, 6)
236
-
237
- z0 = obj.z0_series() * self.length / Zbase
238
- y0 = obj.y0_shunt() * self.length / Ybase
239
- self.R = np.round(z0.real, 6)
240
- self.X = np.round(z0.imag, 6)
241
- self.B = np.round(y0.imag, 6)
242
-
243
- z2 = obj.z2_series() * self.length / Zbase
244
- y2 = obj.y2_shunt() * self.length / Ybase
245
- self.R = np.round(z2.real, 6)
246
- self.X = np.round(z2.imag, 6)
247
- self.B = np.round(y2.imag, 6)
248
-
249
- # get the rating in MVA = kA * kV
250
- self.rate = obj.rating * Vn * np.sqrt(3)
251
-
252
- if self.template is not None:
253
- if obj != self.template:
254
- self.template = obj
255
- else:
256
- self.template = obj
257
-
258
- elif type(obj) is UndergroundLineType:
259
- Vn = self.bus_to.Vnom
260
- Zbase = (Vn * Vn) / Sbase
261
- Ybase = 1 / Zbase
262
-
263
- z = obj.z_series() * self.length / Zbase
264
- y = obj.y_shunt() * self.length / Ybase
265
-
266
- self.R = np.round(z.real, 6)
267
- self.X = np.round(z.imag, 6)
268
- self.B = np.round(y.imag, 6)
269
-
270
- # get the rating in MVA = kA * kV
271
- self.rate = obj.rating * Vn * np.sqrt(3)
272
-
273
- if self.template is not None:
274
- if obj != self.template:
275
- self.template = obj
276
- else:
277
- self.template = obj
278
-
279
- elif type(obj) is SequenceLineType:
280
-
281
- Vn = self.bus_to.Vnom
282
- Zbase = (Vn * Vn) / Sbase
283
- Ybase = 1 / Zbase
284
-
285
- self.R = np.round(obj.R * self.length / Zbase, 6)
286
- self.X = np.round(obj.X * self.length / Zbase, 6)
287
- self.B = np.round(obj.B * self.length / Ybase, 6)
288
-
289
- # get the rating in MVA = kA * kV
290
- self.rate = obj.rating * Vn * np.sqrt(3)
227
+ self.R, self.X, self.B, self.R0, self.X0, self.B0, self.rate = obj.get_values(Sbase=Sbase,
228
+ length=self.length)
291
229
 
292
230
  if self.template is not None:
293
231
  if obj != self.template:
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
  from GridCalEngine.Core.Devices.Substation.bus import Bus
20
- from GridCalEngine.Core.Devices.enumerations import BuildStatus
20
+ from GridCalEngine.enumerations import BuildStatus
21
21
  from GridCalEngine.Core.Devices.Branches.templates.parent_branch import ParentBranch
22
22
  from GridCalEngine.Core.Devices.editable_device import DeviceType
23
23
 
@@ -67,12 +67,13 @@ class OverheadLineType(EditableDevice):
67
67
  name=name,
68
68
  idtag=idtag,
69
69
  code='',
70
- active=True,
71
70
  device_type=DeviceType.OverheadLineTypeDevice)
72
71
 
73
72
  # list of wires in the tower
74
73
  self.wires_in_tower = list()
75
74
 
75
+ self.Vnom = 1.0
76
+
76
77
  # properties
77
78
  # self.tower_name = name
78
79
  self.earth_resistivity = 100
@@ -83,7 +84,6 @@ class OverheadLineType(EditableDevice):
83
84
  self.X1 = 0.0
84
85
 
85
86
  # total shunt admittance (positive sequence)
86
- self.Gsh1 = 0.0
87
87
  self.Bsh1 = 0.0
88
88
 
89
89
  # total series impedance (positive sequence)
@@ -91,11 +91,10 @@ class OverheadLineType(EditableDevice):
91
91
  self.X0 = 0.0
92
92
 
93
93
  # total shunt admittance (positive sequence)
94
- self.Gsh0 = 0.0
95
94
  self.Bsh0 = 0.0
96
95
 
97
96
  # current rating of the tower in kA
98
- self.rating = 0.0
97
+ self.Imax = 0.0
99
98
 
100
99
  # impedances
101
100
  self.z_abcn = None
@@ -120,13 +119,12 @@ class OverheadLineType(EditableDevice):
120
119
  self.register(key='frequency', units='Hz', tpe=float, definition='Frequency')
121
120
  self.register(key='R1', units='Ohm/km', tpe=float, definition='Positive sequence resistance')
122
121
  self.register(key='X1', units='Ohm/km', tpe=float, definition='Positive sequence reactance')
123
- self.register(key='Gsh1', units='S/km', tpe=float, definition='Positive sequence shunt conductance')
124
- self.register(key='Bsh1', units='S/km', tpe=float, definition='Positive sequence shunt susceptance')
122
+ self.register(key='Bsh1', units='uS/km', tpe=float, definition='Positive sequence shunt susceptance')
125
123
  self.register(key='R0', units='Ohm/km', tpe=float, definition='Zero-sequence resistance')
126
124
  self.register(key='X0', units='Ohm/km', tpe=float, definition='Zero sequence reactance')
127
- self.register(key='Gsh0', units='S/km', tpe=float, definition='Zero sequence shunt conductance')
128
- self.register(key='Bsh0', units='S/km', tpe=float, definition='Zero sequence shunt susceptance')
129
- self.register(key='rating', units='kA', tpe=float, definition='Current rating of the tower')
125
+ self.register(key='Bsh0', units='uS/km', tpe=float, definition='Zero sequence shunt susceptance')
126
+ self.register(key='Imax', units='kA', tpe=float, definition='Current rating of the tower', old_names=['rating'])
127
+ self.register(key='Vnom', units='kV', tpe=float, definition='Voltage rating of the line')
130
128
 
131
129
  def add_wire(self, w: Wire):
132
130
  """
@@ -158,19 +156,19 @@ class OverheadLineType(EditableDevice):
158
156
  """
159
157
  positive sequence shunt admittance in S per unit of length
160
158
  """
161
- return self.Gsh1 + 1j * self.Bsh1
159
+ return 1j * self.Bsh1
162
160
 
163
161
  def y0_shunt(self):
164
162
  """
165
163
  zero sequence shunt admittance in S per unit of length
166
164
  """
167
- return self.Gsh0 + 1j * self.Bsh0
165
+ return 1j * self.Bsh0
168
166
 
169
167
  def y2_shunt(self):
170
168
  """
171
169
  negative sequence shunt admittance in S per unit of length
172
170
  """
173
- return self.Gsh0 + 1j * self.Bsh0
171
+ return 1j * self.Bsh0
174
172
 
175
173
  def plot(self, ax=None):
176
174
  """
@@ -278,17 +276,15 @@ class OverheadLineType(EditableDevice):
278
276
  self.y_seq = calc_y_matrix(self.wires_in_tower, f=self.frequency, rho=self.earth_resistivity)
279
277
 
280
278
  # compute the tower rating in kA
281
- self.rating = self.compute_rating()
279
+ self.Imax = self.compute_rating()
282
280
 
283
281
  self.R0 = self.z_seq[0, 0].real
284
282
  self.X0 = self.z_seq[0, 0].imag
285
- self.Gsh0 = self.y_seq[0, 0].real
286
- self.Bsh0 = self.y_seq[0, 0].imag
283
+ self.Bsh0 = self.y_seq[0, 0].imag * 1e6
287
284
 
288
285
  self.R1 = self.z_seq[1, 1].real
289
286
  self.X1 = self.z_seq[1, 1].imag
290
- self.Gsh1 = self.y_seq[1, 1].real
291
- self.Bsh1 = self.y_seq[1, 1].imag
287
+ self.Bsh1 = self.y_seq[1, 1].imag * 1e6
292
288
  else:
293
289
  pass
294
290
 
@@ -303,6 +299,40 @@ class OverheadLineType(EditableDevice):
303
299
  if self.wires_in_tower[i].wire.name == wire.name:
304
300
  return True
305
301
 
302
+ def get_values(self, Sbase, length):
303
+ """
304
+
305
+ :param Sbase:
306
+ :param length:
307
+ :return:
308
+ """
309
+ Vn = self.Vnom
310
+ Zbase = (Vn * Vn) / Sbase
311
+ Ybase = 1 / Zbase
312
+
313
+ z1 = self.z_series() * length / Zbase
314
+ y1 = self.y_shunt() * length * -1e6 / Ybase
315
+ R1 = np.round(z1.real, 6)
316
+ X1 = np.round(z1.imag, 6)
317
+ B1 = np.round(y1.imag, 6)
318
+
319
+ z0 = self.z0_series() * length / Zbase
320
+ y0 = self.y0_shunt() * length * -1e6 / Ybase
321
+ R0 = np.round(z0.real, 6)
322
+ X0 = np.round(z0.imag, 6)
323
+ B0 = np.round(y0.imag, 6)
324
+
325
+ z2 = self.z2_series() * length / Zbase
326
+ y2 = self.y2_shunt() * length * -1e6 / Ybase
327
+ R2 = np.round(z2.real, 6)
328
+ X2 = np.round(z2.imag, 6)
329
+ B2 = np.round(y2.imag, 6)
330
+
331
+ # get the rating in MVA = kA * kV
332
+ rate = self.Imax * Vn * np.sqrt(3)
333
+
334
+ return R1, X1, B1, R0, X0, B0, rate
335
+
306
336
  def __str__(self):
307
337
  return self.name
308
338
 
@@ -24,7 +24,7 @@ from matplotlib import pyplot as plt
24
24
  from GridCalEngine.basic_structures import Logger, Vec, BoolVec
25
25
  from GridCalEngine.Core.Devices.Substation.bus import Bus
26
26
  from GridCalEngine.Core.Devices.Substation.connectivity_node import ConnectivityNode
27
- from GridCalEngine.Core.Devices.enumerations import BuildStatus
27
+ from GridCalEngine.enumerations import BuildStatus
28
28
  from GridCalEngine.Core.Devices.editable_device import EditableDevice, DeviceType
29
29
 
30
30
 
@@ -89,7 +89,6 @@ class ParentBranch(EditableDevice):
89
89
  name=name,
90
90
  idtag=idtag,
91
91
  code=code,
92
- active=active,
93
92
  device_type=device_type)
94
93
 
95
94
  # connectivity
@@ -99,6 +98,9 @@ class ParentBranch(EditableDevice):
99
98
  self.cn_from = cn_from
100
99
  self.cn_to = cn_to
101
100
 
101
+ self.active = active
102
+ self.active_prof = active_prof
103
+
102
104
  # List of measurements
103
105
  self.measurements = list()
104
106
 
@@ -120,8 +122,6 @@ class ParentBranch(EditableDevice):
120
122
 
121
123
  self.build_status = build_status
122
124
 
123
- self.active_prof = active_prof
124
-
125
125
  # line rating in MVA
126
126
  self.rate = rate
127
127
  self.rate_prof = rate_prof