ltbams 1.0.9__tar.gz → 1.0.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. {ltbams-1.0.9/ltbams.egg-info → ltbams-1.0.11}/PKG-INFO +85 -48
  2. {ltbams-1.0.9 → ltbams-1.0.11}/README.md +62 -47
  3. {ltbams-1.0.9 → ltbams-1.0.11}/ams/__init__.py +0 -1
  4. {ltbams-1.0.9 → ltbams-1.0.11}/ams/_version.py +3 -3
  5. ltbams-1.0.11/ams/cases/5bus/pjm5bus_demo.json +1324 -0
  6. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/__init__.py +1 -0
  7. ltbams-1.0.11/ams/core/common.py +30 -0
  8. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/documenter.py +130 -62
  9. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/model.py +1 -1
  10. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/symprocessor.py +1 -1
  11. {ltbams-1.0.9 → ltbams-1.0.11}/ams/extension/eva.py +1 -1
  12. {ltbams-1.0.9 → ltbams-1.0.11}/ams/interface.py +42 -26
  13. {ltbams-1.0.9 → ltbams-1.0.11}/ams/io/matpower.py +31 -17
  14. ltbams-1.0.11/ams/io/psse.py +283 -0
  15. {ltbams-1.0.9 → ltbams-1.0.11}/ams/main.py +2 -2
  16. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/group.py +2 -1
  17. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/static/pq.py +7 -3
  18. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/param.py +1 -2
  19. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/__init__.py +2 -3
  20. ltbams-1.0.11/ams/routines/acopf.py +14 -0
  21. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/dcopf.py +8 -0
  22. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/dcpf.py +1 -1
  23. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/ed.py +4 -2
  24. ltbams-1.0.11/ams/routines/grbopt.py +155 -0
  25. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/pflow.py +2 -2
  26. ltbams-1.0.11/ams/routines/pypower.py +622 -0
  27. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/routine.py +4 -10
  28. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/uc.py +2 -2
  29. {ltbams-1.0.9 → ltbams-1.0.11}/ams/shared.py +26 -43
  30. {ltbams-1.0.9 → ltbams-1.0.11}/ams/system.py +120 -4
  31. {ltbams-1.0.9 → ltbams-1.0.11}/ams/utils/paths.py +3 -3
  32. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/api.rst +2 -0
  33. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/examples/index.rst +2 -1
  34. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/genroutineref.py +1 -1
  35. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/install.rst +9 -6
  36. ltbams-1.0.11/docs/source/images/dcopf_time.png +0 -0
  37. ltbams-1.0.11/docs/source/images/educ_pie.png +0 -0
  38. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/release-notes.rst +37 -57
  39. {ltbams-1.0.9 → ltbams-1.0.11/ltbams.egg-info}/PKG-INFO +85 -48
  40. {ltbams-1.0.9 → ltbams-1.0.11}/ltbams.egg-info/SOURCES.txt +8 -25
  41. ltbams-1.0.11/ltbams.egg-info/requires.txt +36 -0
  42. {ltbams-1.0.9 → ltbams-1.0.11}/pyproject.toml +15 -0
  43. {ltbams-1.0.9 → ltbams-1.0.11}/requirements-dev.txt +2 -1
  44. {ltbams-1.0.9 → ltbams-1.0.11}/requirements.txt +1 -1
  45. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_1st_system.py +2 -2
  46. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_case.py +14 -14
  47. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_export_csv.py +1 -1
  48. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_interface.py +24 -2
  49. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_io.py +50 -0
  50. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_omodel.py +1 -1
  51. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_report.py +6 -6
  52. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_routine.py +2 -2
  53. ltbams-1.0.11/tests/test_rtn_acopf.py +75 -0
  54. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_rtn_dcopf.py +1 -1
  55. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_rtn_dcopf2.py +1 -1
  56. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_rtn_ed.py +9 -9
  57. ltbams-1.0.11/tests/test_rtn_opf.py +142 -0
  58. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_rtn_pflow.py +0 -72
  59. ltbams-1.0.11/tests/test_rtn_pypower.py +315 -0
  60. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_rtn_rted.py +8 -8
  61. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_rtn_uc.py +18 -18
  62. ltbams-1.0.9/ams/io/psse.py +0 -6
  63. ltbams-1.0.9/ams/pypower/__init__.py +0 -8
  64. ltbams-1.0.9/ams/pypower/_compat.py +0 -9
  65. ltbams-1.0.9/ams/pypower/core/__init__.py +0 -8
  66. ltbams-1.0.9/ams/pypower/core/pips.py +0 -894
  67. ltbams-1.0.9/ams/pypower/core/ppoption.py +0 -244
  68. ltbams-1.0.9/ams/pypower/core/ppver.py +0 -18
  69. ltbams-1.0.9/ams/pypower/core/solver.py +0 -2451
  70. ltbams-1.0.9/ams/pypower/eps.py +0 -6
  71. ltbams-1.0.9/ams/pypower/idx.py +0 -174
  72. ltbams-1.0.9/ams/pypower/io.py +0 -604
  73. ltbams-1.0.9/ams/pypower/make/__init__.py +0 -11
  74. ltbams-1.0.9/ams/pypower/make/matrices.py +0 -665
  75. ltbams-1.0.9/ams/pypower/make/pdv.py +0 -506
  76. ltbams-1.0.9/ams/pypower/routines/__init__.py +0 -7
  77. ltbams-1.0.9/ams/pypower/routines/cpf.py +0 -513
  78. ltbams-1.0.9/ams/pypower/routines/cpf_callbacks.py +0 -114
  79. ltbams-1.0.9/ams/pypower/routines/opf.py +0 -1803
  80. ltbams-1.0.9/ams/pypower/routines/opffcns.py +0 -1946
  81. ltbams-1.0.9/ams/pypower/routines/pflow.py +0 -852
  82. ltbams-1.0.9/ams/pypower/toggle.py +0 -1098
  83. ltbams-1.0.9/ams/pypower/utils.py +0 -293
  84. ltbams-1.0.9/ams/routines/acopf.py +0 -117
  85. ltbams-1.0.9/ams/routines/cpf.py +0 -65
  86. ltbams-1.0.9/ams/routines/dcpf0.py +0 -196
  87. ltbams-1.0.9/ams/routines/pflow0.py +0 -113
  88. ltbams-1.0.9/docs/source/images/dcopf_time.png +0 -0
  89. ltbams-1.0.9/ltbams.egg-info/requires.txt +0 -11
  90. ltbams-1.0.9/tests/test_rtn_dcpf.py +0 -77
  91. {ltbams-1.0.9 → ltbams-1.0.11}/CONTRIBUTING.rst +0 -0
  92. {ltbams-1.0.9 → ltbams-1.0.11}/LICENSE +0 -0
  93. {ltbams-1.0.9 → ltbams-1.0.11}/MANIFEST.in +0 -0
  94. {ltbams-1.0.9 → ltbams-1.0.11}/ams/__main__.py +0 -0
  95. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/5bus/pjm5bus_demo.xlsx +0 -0
  96. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/5bus/pjm5bus_ev.xlsx +0 -0
  97. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/5bus/pjm5bus_jumper.xlsx +0 -0
  98. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/hawaii40/Hawaii40.m +0 -0
  99. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee123/ieee123.xlsx +0 -0
  100. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee123/ieee123_regcv1.xlsx +0 -0
  101. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee14/ieee14.json +0 -0
  102. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee14/ieee14.raw +0 -0
  103. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee14/ieee14_conn.xlsx +0 -0
  104. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee14/ieee14_uced.xlsx +0 -0
  105. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee39/ieee39.xlsx +0 -0
  106. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee39/ieee39_uced.xlsx +0 -0
  107. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee39/ieee39_uced_esd1.xlsx +0 -0
  108. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee39/ieee39_uced_pvd1.xlsx +0 -0
  109. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/ieee39/ieee39_uced_vis.xlsx +0 -0
  110. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/benchmark.json +0 -0
  111. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/case118.m +0 -0
  112. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/case14.m +0 -0
  113. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/case300.m +0 -0
  114. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/case39.m +0 -0
  115. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/case5.m +0 -0
  116. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/matpower/case_ACTIVSg2000.m +0 -0
  117. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/npcc/npcc.m +0 -0
  118. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/npcc/npcc_uced.xlsx +0 -0
  119. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/pglib/pglib_opf_case39_epri__api.m +0 -0
  120. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/wecc/wecc.m +0 -0
  121. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cases/wecc/wecc_uced.xlsx +0 -0
  122. {ltbams-1.0.9 → ltbams-1.0.11}/ams/cli.py +0 -0
  123. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/matprocessor.py +0 -0
  124. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/param.py +0 -0
  125. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/service.py +0 -0
  126. {ltbams-1.0.9 → ltbams-1.0.11}/ams/core/var.py +0 -0
  127. {ltbams-1.0.9 → ltbams-1.0.11}/ams/extension/__init__.py +0 -0
  128. {ltbams-1.0.9 → ltbams-1.0.11}/ams/io/__init__.py +0 -0
  129. {ltbams-1.0.9 → ltbams-1.0.11}/ams/io/json.py +0 -0
  130. {ltbams-1.0.9 → ltbams-1.0.11}/ams/io/pypower.py +0 -0
  131. {ltbams-1.0.9 → ltbams-1.0.11}/ams/io/xlsx.py +0 -0
  132. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/__init__.py +0 -0
  133. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/area.py +0 -0
  134. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/bus.py +0 -0
  135. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/cost.py +0 -0
  136. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/distributed/__init__.py +0 -0
  137. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/distributed/esd1.py +0 -0
  138. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/distributed/ev.py +0 -0
  139. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/distributed/pvd1.py +0 -0
  140. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/info.py +0 -0
  141. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/line.py +0 -0
  142. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/renewable/__init__.py +0 -0
  143. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/renewable/regc.py +0 -0
  144. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/reserve.py +0 -0
  145. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/shunt.py +0 -0
  146. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/static/__init__.py +0 -0
  147. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/static/gen.py +0 -0
  148. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/timeslot.py +0 -0
  149. {ltbams-1.0.9 → ltbams-1.0.11}/ams/models/zone.py +0 -0
  150. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/__init__.py +0 -0
  151. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/constraint.py +0 -0
  152. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/exprcalc.py +0 -0
  153. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/expression.py +0 -0
  154. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/objective.py +0 -0
  155. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/omodel.py +0 -0
  156. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/optzbase.py +0 -0
  157. {ltbams-1.0.9 → ltbams-1.0.11}/ams/opt/var.py +0 -0
  158. {ltbams-1.0.9 → ltbams-1.0.11}/ams/report.py +0 -0
  159. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/dcopf2.py +0 -0
  160. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/dopf.py +0 -0
  161. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/rted.py +0 -0
  162. {ltbams-1.0.9 → ltbams-1.0.11}/ams/routines/type.py +0 -0
  163. {ltbams-1.0.9 → ltbams-1.0.11}/ams/utils/__init__.py +0 -0
  164. {ltbams-1.0.9 → ltbams-1.0.11}/ams/utils/misc.py +0 -0
  165. {ltbams-1.0.9 → ltbams-1.0.11}/docs/Makefile +0 -0
  166. {ltbams-1.0.9 → ltbams-1.0.11}/docs/make.bat +0 -0
  167. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/_templates/autosummary/base.rst +0 -0
  168. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/_templates/autosummary/class.rst +0 -0
  169. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/_templates/autosummary/module.rst +0 -0
  170. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/_templates/autosummary/module_toctree.rst +0 -0
  171. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/conf.py +0 -0
  172. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/genmodelref.py +0 -0
  173. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/copyright.rst +0 -0
  174. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/formats/index.rst +0 -0
  175. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/formats/matpower.rst +0 -0
  176. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/formats/psse.rst +0 -0
  177. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/formats/pypower.rst +0 -0
  178. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/formats/xlsx.png +0 -0
  179. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/formats/xlsx.rst +0 -0
  180. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/index.rst +0 -0
  181. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/overview.rst +0 -0
  182. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/testcase.rst +0 -0
  183. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/getting_started/verification.rst +0 -0
  184. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/images/curent.ico +0 -0
  185. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png +0 -0
  186. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/images/sponsors/CURENT_Logo_Transparent.png +0 -0
  187. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/images/sponsors/CURENT_Logo_Transparent_Name.png +0 -0
  188. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/images/sponsors/doe.png +0 -0
  189. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/index.rst +0 -0
  190. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/modeling/example.rst +0 -0
  191. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/modeling/index.rst +0 -0
  192. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/modeling/model.rst +0 -0
  193. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/modeling/routine.rst +0 -0
  194. {ltbams-1.0.9 → ltbams-1.0.11}/docs/source/modeling/system.rst +0 -0
  195. {ltbams-1.0.9 → ltbams-1.0.11}/ltbams.egg-info/dependency_links.txt +0 -0
  196. {ltbams-1.0.9 → ltbams-1.0.11}/ltbams.egg-info/entry_points.txt +0 -0
  197. {ltbams-1.0.9 → ltbams-1.0.11}/ltbams.egg-info/top_level.txt +0 -0
  198. {ltbams-1.0.9 → ltbams-1.0.11}/setup.cfg +0 -0
  199. {ltbams-1.0.9 → ltbams-1.0.11}/setup.py +0 -0
  200. {ltbams-1.0.9 → ltbams-1.0.11}/tests/__init__.py +0 -0
  201. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_addressing.py +0 -0
  202. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_cli.py +0 -0
  203. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_group.py +0 -0
  204. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_jumper.py +0 -0
  205. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_known_good.py +0 -0
  206. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_matp.py +0 -0
  207. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_model.py +0 -0
  208. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_paths.py +0 -0
  209. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_repr.py +0 -0
  210. {ltbams-1.0.9 → ltbams-1.0.11}/tests/test_service.py +0 -0
  211. {ltbams-1.0.9 → ltbams-1.0.11}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ltbams
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Python software for scheduling modeling and co-simulation with dynamics.
5
5
  Home-page: https://github.com/CURENT/ams
6
6
  Author: Jinning Wang
@@ -23,6 +23,28 @@ Requires-Dist: openpyxl
23
23
  Requires-Dist: andes>=1.9.3
24
24
  Requires-Dist: pybind11
25
25
  Requires-Dist: cvxpy
26
+ Provides-Extra: dev
27
+ Requires-Dist: pytest; extra == "dev"
28
+ Requires-Dist: pytest-cov; extra == "dev"
29
+ Requires-Dist: coverage; extra == "dev"
30
+ Requires-Dist: flake8; extra == "dev"
31
+ Requires-Dist: numpydoc; extra == "dev"
32
+ Requires-Dist: toml; extra == "dev"
33
+ Provides-Extra: nlp
34
+ Requires-Dist: PYPOWER; extra == "nlp"
35
+ Requires-Dist: pyoptinterface; extra == "nlp"
36
+ Requires-Dist: gurobipy; extra == "nlp"
37
+ Requires-Dist: gurobi-optimods; extra == "nlp"
38
+ Provides-Extra: doc
39
+ Requires-Dist: pandoc; extra == "doc"
40
+ Requires-Dist: ipython; extra == "doc"
41
+ Requires-Dist: sphinx; extra == "doc"
42
+ Requires-Dist: pydata-sphinx-theme; extra == "doc"
43
+ Requires-Dist: numpydoc; extra == "doc"
44
+ Requires-Dist: sphinx-copybutton; extra == "doc"
45
+ Requires-Dist: sphinx-panels; extra == "doc"
46
+ Requires-Dist: myst-parser; extra == "doc"
47
+ Requires-Dist: nbsphinx; extra == "doc"
26
48
  Dynamic: author
27
49
  Dynamic: home-page
28
50
 
@@ -30,40 +52,26 @@ Dynamic: home-page
30
52
 
31
53
  Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the [CURENT Largescale Testbed][LTB Repository].
32
54
 
33
- [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://github.com/CURENT/ams/blob/master/LICENSE)
34
- ![platforms](https://anaconda.org/conda-forge/ltbams/badges/platforms.svg)
35
- [![Python Versions](https://img.shields.io/badge/Python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
55
+ ![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)
36
56
  [![DOI:10.1109/TSTE.2025.3528027](https://zenodo.org/badge/DOI/10.1109/TSTE.2025.3528027.svg)](https://ieeexplore.ieee.org/document/10836855)
37
- [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
38
- [![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH)](https://codecov.io/gh/CURENT/ams)
39
-
40
- [![GitHub Tag](https://img.shields.io/github/v/tag/CURENT/ams)](https://github.com/CURENT/ams/tags)
41
- ![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/curent/ams/latest/develop)
42
- [![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master)](https://github.com/CURENT/ams/commits/master/)
43
- [![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop)](https://github.com/CURENT/ams/commits/develop/)
44
-
45
- [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams)
46
- ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams)
47
- [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
48
-
49
- [![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
50
- [![Publish to TestPyPI and PyPI](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg?branch=master)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
51
- [![Azure Pipline](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
52
57
 
53
58
  <img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
54
59
 
55
- | | Stable | Develop |
56
- |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
57
- | Documentation | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) | [![Develop Documentation](https://readthedocs.org/projects/ams/badge/?version=develop)](https://ams.readthedocs.io/en/develop/?badge=develop) |
58
-
59
-
60
- | Badges | | |
61
- |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
62
- | Downloads | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.python.org/pypi/ltbams) | [![Conda Version](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
63
- | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
64
- | Code Quality |[![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)| [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) |
65
-
66
-
60
+ | Badges | | |
61
+ |---|---|---|
62
+ | Repo | ![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg) | ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams) |
63
+ | Version | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.org/project/ltbams/) | [![Anaconda-Server Badge](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
64
+ | Tag | [![GitHub Tag](https://img.shields.io/github/v/tag/CURENT/ams)](https://github.com/CURENT/ams/tags) | ![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/curent/ams/latest/develop) |
65
+ | Documentation | [![Read the Docs](https://img.shields.io/readthedocs/ams?label=stable)](https://ltb.readthedocs.io/projects/ams/en/stable/?badge=stable) | [![Read the Docs](https://img.shields.io/readthedocs/ams?label=develop)](https://ltb.readthedocs.io/projects/ams/en/develop/?badge=develop) |
66
+ | Download | [![PyPI - Downloads](https://img.shields.io/pypi/dm/ltbams)](https://pypi.org/project/ltbams/) | [![Anaconda-Server Badge](https://anaconda.org/conda-forge/ltbams/badges/downloads.svg)](https://anaconda.org/conda-forge/ltbams) |
67
+ | Code Quality | ![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050) | ![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050) |
68
+ | Code Cov | ![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH) | |
69
+ | Last Commit | ![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master) | ![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop) |
70
+ | CI | [![Compatibility](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml) | [![Build Status](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=scuc)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=scuc) |
71
+ | CD | [![Publish](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml) | |
72
+ | Structure | [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/CURENT/ams) |
73
+ | Dependency | [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams) | |
74
+ | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
67
75
 
68
76
  # Why AMS
69
77
 
@@ -82,25 +90,27 @@ and solved with third-party solvers.
82
90
 
83
91
  AMS produces credible scheduling results and competitive performance.
84
92
  The following results show the comparison of DCOPF between AMS and other tools.
85
-
86
- | Cost [\$] | AMS | pandapower | MATPOWER |
87
- |-----------------------|--------------|--------------|--------------|
88
- | IEEE 14-Bus | 7,642.59 | 7,642.59 | 7,642.59 |
89
- | IEEE 39-Bus | 41,263.94 | 41,263.94 | 41,263.94 |
90
- | PEGASE 89-Bus | 5,733.37 | 5,733.37 | 5,733.37 |
91
- | IEEE 118-Bus | 125,947.88 | 125,947.88 | 125,947.88 |
92
- | NPCC 140-Bus | 810,033.37 | 810,016.06 | 810,033.37 |
93
- | WECC 179-Bus | 411,706.13 | 411,706.13 | 411,706.13 |
94
- | IEEE 300-Bus | 706,292.32 | 706,292.32 | 706,292.32 |
95
- | PEGASE 1354-Bus | 1,218,096.86 | 1,218,096.86 | 1,218,096.86 |
96
- | PEGASE 2869-Bus | 2,386,235.33 | 2,386,235.33 | 2,386,235.33 |
97
- | GOC 4020-Bus | 793,634.11 | 793,634.11 | 793,634.11 |
98
- | EPIGRIDS 5658-Bus | 1,195,466.12 | 1,195,466.12 | 1,195,466.12 |
99
- | EPIGRIDS 7336-Bus | 1,855,870.94 | 1,855,870.94 | 1,855,870.94 |
93
+ In the table, **AMS Gap** is the difference between the AMS and MATPOWER results,
94
+ and **pandapower Gap** is the difference between the pandapower and MATPOWER results.
95
+
96
+ | Case | MATPOWER [\$] | AMS Gap [\$] | pandapower Gap [\$] |
97
+ |------------------|--------------|--------------|---------------------|
98
+ | IEEE 14-Bus | 7,642.59 | 0.00 | 0.00 |
99
+ | IEEE 39-Bus | 41,263.94 | 0.00 | 0.00 |
100
+ | PEGASE 89-Bus | 5,733.37 | 0.00 | 0.00 |
101
+ | IEEE 118-Bus | 125,947.88 | 0.00 | 0.00 |
102
+ | NPCC 140-Bus | 810,033.37 | 0.00 | **-17.31** |
103
+ | WECC 179-Bus | 411,706.13 | 0.00 | 0.00 |
104
+ | IEEE 300-Bus | 706,292.32 | 0.00 | 0.00 |
105
+ | PEGASE 1354-Bus | 1,218,096.86 | 0.00 | 0.00 |
106
+ | PEGASE 2869-Bus | 2,386,235.33 | 0.00 | 0.00 |
107
+ | GOC 4020-Bus | 793,634.11 | 0.00 | 0.00 |
108
+ | EPIGRIDS 5658-Bus| 1,195,466.12 | 0.00 | 0.00 |
109
+ | EPIGRIDS 7336-Bus| 1,855,870.94 | 0.00 | 0.00 |
100
110
 
101
111
  <div style="text-align: left;">
102
112
  <img src="docs/source/images/dcopf_time.png" alt="DCOPF Time" width="480" height="auto">
103
- <p><strong>Figure:</strong> Computation time of OPF on small-scale cases.</p>
113
+ <p><strong>Figure:</strong> Computation time of OPF on medium to large cases.</p>
104
114
  </div>
105
115
 
106
116
  In the bar chart, the gray bar labeled "AMS Symbolic Processing" represents the time spent
@@ -113,6 +123,19 @@ Regarding the baselines, the blue and green bars represent the running time of M
113
123
  solver MIPS and pandapower using solver PIPS, respectively.
114
124
  The results for AMS, pandapower, and matpower are the average time consumed over ten repeat tests.
115
125
 
126
+ <div style="text-align: left;">
127
+ <img src="docs/source/images/educ_pie.png" alt="DCOPF Time" width="480" height="auto">
128
+ <p><strong>Figure:</strong> Computation time distribution for multi-period economic dispatch and
129
+ unit commitment using a 31,777-bus case.</p>
130
+ </div>
131
+
132
+ To further demonstrate AMS's scalability, we validated multi-period economic dispatch and unit commitment
133
+ on an ultra-large power system case with 31,777 buses, 4,664 generators, 41,573 transmission lines,
134
+ and 5 time intervals.
135
+ The computation time distribution for this case is shown in the figure below. Notably, the time spent
136
+ on symbolic processing remains negligible even at this scale, highlighting AMS's efficiency for
137
+ large-scale studies.
138
+
116
139
  AMS is currently under active development.
117
140
  Use the following resources to get involved.
118
141
 
@@ -136,6 +159,20 @@ Install from PyPI using pip:
136
159
  pip install ltbams
137
160
  ```
138
161
 
162
+ You can also install with optional dependencies, such as ``dev``, ``docs``, and ``nlp``:
163
+
164
+ ```bash
165
+ pip install ltbams[dev]
166
+ pip install ltbams[docs]
167
+ pip install ltbams[nlp]
168
+ ```
169
+
170
+ Or install with all optional dependencies:
171
+
172
+ ```bash
173
+ pip install ltbams[all]
174
+ ```
175
+
139
176
  Install from conda-forge using conda:
140
177
 
141
178
  ```bash
@@ -197,7 +234,7 @@ See [GitHub contributors][GitHub contributors] for the contributor list.
197
234
  AMS is licensed under the [GPL v3 License](./LICENSE).
198
235
 
199
236
  # Related Projects
200
- - [Popular Open Source Libraries for Power System Analysis](https://github.com/jinningwang/best-of-ps)
237
+ - [Popular Open Source Libraries for Power System Analysis](https://github.com/ps-wiki/best-of-ps)
201
238
  - [G-PST Tools Portal](https://g-pst.github.io/tools/): An open tools portal with a classification approach
202
239
  - [Open Source Software (OSS) for Electricity Market Research, Teaching, and Training](https://www2.econ.iastate.edu/tesfatsi/ElectricOSS.htm)
203
240
 
@@ -2,40 +2,26 @@
2
2
 
3
3
  Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the [CURENT Largescale Testbed][LTB Repository].
4
4
 
5
- [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://github.com/CURENT/ams/blob/master/LICENSE)
6
- ![platforms](https://anaconda.org/conda-forge/ltbams/badges/platforms.svg)
7
- [![Python Versions](https://img.shields.io/badge/Python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
5
+ ![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)
8
6
  [![DOI:10.1109/TSTE.2025.3528027](https://zenodo.org/badge/DOI/10.1109/TSTE.2025.3528027.svg)](https://ieeexplore.ieee.org/document/10836855)
9
- [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
10
- [![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH)](https://codecov.io/gh/CURENT/ams)
11
-
12
- [![GitHub Tag](https://img.shields.io/github/v/tag/CURENT/ams)](https://github.com/CURENT/ams/tags)
13
- ![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/curent/ams/latest/develop)
14
- [![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master)](https://github.com/CURENT/ams/commits/master/)
15
- [![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop)](https://github.com/CURENT/ams/commits/develop/)
16
-
17
- [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams)
18
- ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams)
19
- [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
20
-
21
- [![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
22
- [![Publish to TestPyPI and PyPI](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg?branch=master)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
23
- [![Azure Pipline](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
24
7
 
25
8
  <img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
26
9
 
27
- | | Stable | Develop |
28
- |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
29
- | Documentation | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) | [![Develop Documentation](https://readthedocs.org/projects/ams/badge/?version=develop)](https://ams.readthedocs.io/en/develop/?badge=develop) |
30
-
31
-
32
- | Badges | | |
33
- |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
34
- | Downloads | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.python.org/pypi/ltbams) | [![Conda Version](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
35
- | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
36
- | Code Quality |[![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)| [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) |
37
-
38
-
10
+ | Badges | | |
11
+ |---|---|---|
12
+ | Repo | ![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg) | ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams) |
13
+ | Version | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.org/project/ltbams/) | [![Anaconda-Server Badge](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
14
+ | Tag | [![GitHub Tag](https://img.shields.io/github/v/tag/CURENT/ams)](https://github.com/CURENT/ams/tags) | ![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/curent/ams/latest/develop) |
15
+ | Documentation | [![Read the Docs](https://img.shields.io/readthedocs/ams?label=stable)](https://ltb.readthedocs.io/projects/ams/en/stable/?badge=stable) | [![Read the Docs](https://img.shields.io/readthedocs/ams?label=develop)](https://ltb.readthedocs.io/projects/ams/en/develop/?badge=develop) |
16
+ | Download | [![PyPI - Downloads](https://img.shields.io/pypi/dm/ltbams)](https://pypi.org/project/ltbams/) | [![Anaconda-Server Badge](https://anaconda.org/conda-forge/ltbams/badges/downloads.svg)](https://anaconda.org/conda-forge/ltbams) |
17
+ | Code Quality | ![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050) | ![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050) |
18
+ | Code Cov | ![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH) | |
19
+ | Last Commit | ![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master) | ![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop) |
20
+ | CI | [![Compatibility](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml) | [![Build Status](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=scuc)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=scuc) |
21
+ | CD | [![Publish](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml) | |
22
+ | Structure | [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/CURENT/ams) |
23
+ | Dependency | [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams) | |
24
+ | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
39
25
 
40
26
  # Why AMS
41
27
 
@@ -54,25 +40,27 @@ and solved with third-party solvers.
54
40
 
55
41
  AMS produces credible scheduling results and competitive performance.
56
42
  The following results show the comparison of DCOPF between AMS and other tools.
57
-
58
- | Cost [\$] | AMS | pandapower | MATPOWER |
59
- |-----------------------|--------------|--------------|--------------|
60
- | IEEE 14-Bus | 7,642.59 | 7,642.59 | 7,642.59 |
61
- | IEEE 39-Bus | 41,263.94 | 41,263.94 | 41,263.94 |
62
- | PEGASE 89-Bus | 5,733.37 | 5,733.37 | 5,733.37 |
63
- | IEEE 118-Bus | 125,947.88 | 125,947.88 | 125,947.88 |
64
- | NPCC 140-Bus | 810,033.37 | 810,016.06 | 810,033.37 |
65
- | WECC 179-Bus | 411,706.13 | 411,706.13 | 411,706.13 |
66
- | IEEE 300-Bus | 706,292.32 | 706,292.32 | 706,292.32 |
67
- | PEGASE 1354-Bus | 1,218,096.86 | 1,218,096.86 | 1,218,096.86 |
68
- | PEGASE 2869-Bus | 2,386,235.33 | 2,386,235.33 | 2,386,235.33 |
69
- | GOC 4020-Bus | 793,634.11 | 793,634.11 | 793,634.11 |
70
- | EPIGRIDS 5658-Bus | 1,195,466.12 | 1,195,466.12 | 1,195,466.12 |
71
- | EPIGRIDS 7336-Bus | 1,855,870.94 | 1,855,870.94 | 1,855,870.94 |
43
+ In the table, **AMS Gap** is the difference between the AMS and MATPOWER results,
44
+ and **pandapower Gap** is the difference between the pandapower and MATPOWER results.
45
+
46
+ | Case | MATPOWER [\$] | AMS Gap [\$] | pandapower Gap [\$] |
47
+ |------------------|--------------|--------------|---------------------|
48
+ | IEEE 14-Bus | 7,642.59 | 0.00 | 0.00 |
49
+ | IEEE 39-Bus | 41,263.94 | 0.00 | 0.00 |
50
+ | PEGASE 89-Bus | 5,733.37 | 0.00 | 0.00 |
51
+ | IEEE 118-Bus | 125,947.88 | 0.00 | 0.00 |
52
+ | NPCC 140-Bus | 810,033.37 | 0.00 | **-17.31** |
53
+ | WECC 179-Bus | 411,706.13 | 0.00 | 0.00 |
54
+ | IEEE 300-Bus | 706,292.32 | 0.00 | 0.00 |
55
+ | PEGASE 1354-Bus | 1,218,096.86 | 0.00 | 0.00 |
56
+ | PEGASE 2869-Bus | 2,386,235.33 | 0.00 | 0.00 |
57
+ | GOC 4020-Bus | 793,634.11 | 0.00 | 0.00 |
58
+ | EPIGRIDS 5658-Bus| 1,195,466.12 | 0.00 | 0.00 |
59
+ | EPIGRIDS 7336-Bus| 1,855,870.94 | 0.00 | 0.00 |
72
60
 
73
61
  <div style="text-align: left;">
74
62
  <img src="docs/source/images/dcopf_time.png" alt="DCOPF Time" width="480" height="auto">
75
- <p><strong>Figure:</strong> Computation time of OPF on small-scale cases.</p>
63
+ <p><strong>Figure:</strong> Computation time of OPF on medium to large cases.</p>
76
64
  </div>
77
65
 
78
66
  In the bar chart, the gray bar labeled "AMS Symbolic Processing" represents the time spent
@@ -85,6 +73,19 @@ Regarding the baselines, the blue and green bars represent the running time of M
85
73
  solver MIPS and pandapower using solver PIPS, respectively.
86
74
  The results for AMS, pandapower, and matpower are the average time consumed over ten repeat tests.
87
75
 
76
+ <div style="text-align: left;">
77
+ <img src="docs/source/images/educ_pie.png" alt="DCOPF Time" width="480" height="auto">
78
+ <p><strong>Figure:</strong> Computation time distribution for multi-period economic dispatch and
79
+ unit commitment using a 31,777-bus case.</p>
80
+ </div>
81
+
82
+ To further demonstrate AMS's scalability, we validated multi-period economic dispatch and unit commitment
83
+ on an ultra-large power system case with 31,777 buses, 4,664 generators, 41,573 transmission lines,
84
+ and 5 time intervals.
85
+ The computation time distribution for this case is shown in the figure below. Notably, the time spent
86
+ on symbolic processing remains negligible even at this scale, highlighting AMS's efficiency for
87
+ large-scale studies.
88
+
88
89
  AMS is currently under active development.
89
90
  Use the following resources to get involved.
90
91
 
@@ -108,6 +109,20 @@ Install from PyPI using pip:
108
109
  pip install ltbams
109
110
  ```
110
111
 
112
+ You can also install with optional dependencies, such as ``dev``, ``docs``, and ``nlp``:
113
+
114
+ ```bash
115
+ pip install ltbams[dev]
116
+ pip install ltbams[docs]
117
+ pip install ltbams[nlp]
118
+ ```
119
+
120
+ Or install with all optional dependencies:
121
+
122
+ ```bash
123
+ pip install ltbams[all]
124
+ ```
125
+
111
126
  Install from conda-forge using conda:
112
127
 
113
128
  ```bash
@@ -169,7 +184,7 @@ See [GitHub contributors][GitHub contributors] for the contributor list.
169
184
  AMS is licensed under the [GPL v3 License](./LICENSE).
170
185
 
171
186
  # Related Projects
172
- - [Popular Open Source Libraries for Power System Analysis](https://github.com/jinningwang/best-of-ps)
187
+ - [Popular Open Source Libraries for Power System Analysis](https://github.com/ps-wiki/best-of-ps)
173
188
  - [G-PST Tools Portal](https://g-pst.github.io/tools/): An open tools portal with a classification approach
174
189
  - [Open Source Software (OSS) for Electricity Market Research, Teaching, and Training](https://www2.econ.iastate.edu/tesfatsi/ElectricOSS.htm)
175
190
 
@@ -6,7 +6,6 @@ from ams import opt # NOQA
6
6
  from ams.main import config_logger, load, run # NOQA
7
7
  from ams.system import System # NOQA
8
8
  from ams.utils.paths import get_case, list_cases # NOQA
9
- from ams.shared import ppc2df # NOQA
10
9
 
11
10
  __author__ = 'Jining Wang'
12
11
 
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-04-23T12:23:08-0400",
11
+ "date": "2025-05-23T17:38:11-0400",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "248188b6caf31eaf1089b55a84e41aaa6115df78",
15
- "version": "1.0.9"
14
+ "full-revisionid": "6d7b555f5f48c751648594a535711b9fd21d2a85",
15
+ "version": "1.0.11"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18