ltbams 1.0.12__tar.gz → 1.0.14__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.
- {ltbams-1.0.12/ltbams.egg-info → ltbams-1.0.14}/PKG-INFO +21 -23
- {ltbams-1.0.12 → ltbams-1.0.14}/README.md +19 -22
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/_version.py +3 -3
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cli.py +2 -7
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/common.py +7 -3
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/documenter.py +2 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/matprocessor.py +174 -108
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/model.py +14 -6
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/param.py +5 -3
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/symprocessor.py +8 -2
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/var.py +1 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/extension/eva.py +11 -7
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/interface.py +7 -7
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/io/json.py +20 -16
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/io/matpower.py +10 -6
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/io/psse.py +4 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/io/xlsx.py +21 -16
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/main.py +53 -45
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/distributed/esd1.py +4 -7
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/distributed/ev.py +10 -6
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/distributed/pvd1.py +4 -7
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/group.py +17 -18
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/renewable/regc.py +14 -22
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/timeslot.py +30 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/zone.py +2 -4
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/exprcalc.py +11 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/optzbase.py +4 -3
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/report.py +2 -7
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/dcopf.py +7 -4
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/dcopf2.py +14 -4
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/dopf.py +2 -2
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/ed.py +5 -5
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/grbopt.py +2 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/pflow.py +1 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/pypower.py +8 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/routine.py +125 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/rted.py +5 -5
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/uc.py +2 -2
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/shared.py +99 -2
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/system.py +103 -18
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/utils/paths.py +6 -10
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/genroutineref.py +12 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/index.rst +4 -3
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/release-notes.rst +14 -0
- {ltbams-1.0.12 → ltbams-1.0.14/ltbams.egg-info}/PKG-INFO +21 -23
- {ltbams-1.0.12 → ltbams-1.0.14}/ltbams.egg-info/SOURCES.txt +1 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/ltbams.egg-info/requires.txt +1 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ltbams.egg-info/top_level.txt +0 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/pyproject.toml +3 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/requirements-dev.txt +1 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/requirements.txt +2 -1
- {ltbams-1.0.12 → ltbams-1.0.14}/setup.py +1 -1
- ltbams-1.0.14/tests/test_export_json.py +110 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_known_good.py +6 -6
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_matp.py +62 -35
- ltbams-1.0.12/tests/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/CONTRIBUTING.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/LICENSE +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/MANIFEST.in +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/__main__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/5bus/pjm5bus_demo.json +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/5bus/pjm5bus_demo.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/5bus/pjm5bus_ev.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/5bus/pjm5bus_jumper.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/hawaii40/Hawaii40.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee123/ieee123.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee123/ieee123_regcv1.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee14/ieee14.json +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee14/ieee14.raw +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee14/ieee14_conn.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee14/ieee14_uced.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee39/ieee39.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee39/ieee39_uced.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee39/ieee39_uced_esd1.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee39/ieee39_uced_pvd1.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/ieee39/ieee39_uced_vis.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/benchmark.json +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/case118.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/case14.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/case300.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/case39.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/case5.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/matpower/case_ACTIVSg2000.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/npcc/npcc.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/npcc/npcc_uced.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/pglib/pglib_opf_case39_epri__api.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/wecc/wecc.m +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/cases/wecc/wecc_uced.xlsx +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/core/service.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/extension/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/io/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/io/pypower.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/area.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/bus.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/cost.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/distributed/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/info.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/line.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/renewable/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/reserve.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/shunt.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/static/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/static/gen.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/models/static/pq.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/constraint.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/expression.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/objective.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/omodel.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/param.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/opt/var.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/acopf.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/dcpf.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/routines/type.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/utils/__init__.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ams/utils/misc.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/Makefile +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/make.bat +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/_templates/autosummary/base.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/_templates/autosummary/class.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/_templates/autosummary/module.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/_templates/autosummary/module_toctree.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/api.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/conf.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/examples/index.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/genmodelref.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/copyright.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/formats/index.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/formats/matpower.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/formats/psse.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/formats/pypower.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/formats/xlsx.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/formats/xlsx.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/index.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/install.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/overview.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/testcase.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/getting_started/verification.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/curent.ico +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/dcopf_time.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/educ_pie.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/sponsors/CURENT_Logo_Transparent.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/sponsors/CURENT_Logo_Transparent_Name.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/images/sponsors/doe.png +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/modeling/example.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/modeling/index.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/modeling/model.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/modeling/routine.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/docs/source/modeling/system.rst +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ltbams.egg-info/dependency_links.txt +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/ltbams.egg-info/entry_points.txt +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/setup.cfg +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_1st_system.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_addressing.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_case.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_cli.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_export_csv.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_group.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_interface.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_io.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_jumper.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_model.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_omodel.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_paths.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_report.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_repr.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_routine.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_acopf.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_dcopf.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_dcopf2.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_ed.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_opf.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_pflow.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_pypower.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_rted.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_rtn_uc.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/tests/test_service.py +0 -0
- {ltbams-1.0.12 → ltbams-1.0.14}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ltbams
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.14
|
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,7 @@ Requires-Dist: openpyxl
|
|
23
23
|
Requires-Dist: andes>=1.9.3
|
24
24
|
Requires-Dist: pybind11
|
25
25
|
Requires-Dist: cvxpy
|
26
|
+
Requires-Dist: cffi
|
26
27
|
Provides-Extra: dev
|
27
28
|
Requires-Dist: pytest; extra == "dev"
|
28
29
|
Requires-Dist: pytest-cov; extra == "dev"
|
@@ -50,30 +51,31 @@ Dynamic: home-page
|
|
50
51
|
|
51
52
|
# LTB AMS
|
52
53
|
|
54
|
+
<img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
|
55
|
+
|
53
56
|
Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the [CURENT Largescale Testbed][LTB Repository].
|
54
57
|
|
55
58
|

|
56
59
|
[](https://ieeexplore.ieee.org/document/10836855)
|
57
60
|
|
58
|
-
<img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
|
59
|
-
|
60
61
|
| Badges | | |
|
61
62
|
|---|---|---|
|
62
63
|
| Repo |  |  |
|
64
|
+
| Python | [](https://www.python.org/) |
|
63
65
|
| Version | [](https://pypi.org/project/ltbams/) | [](https://anaconda.org/conda-forge/ltbams) |
|
64
66
|
| Tag | [](https://github.com/CURENT/ams/tags) |  |
|
65
67
|
| Documentation | [](https://ltb.readthedocs.io/projects/ams/en/stable/?badge=stable) | [](https://ltb.readthedocs.io/projects/ams/en/develop/?badge=develop) |
|
66
68
|
| Download | [](https://pypi.org/project/ltbams/) | [](https://anaconda.org/conda-forge/ltbams) |
|
67
|
-
|
|
68
|
-
|
|
69
|
+
| Quality |  | [](https://codebeat.co/projects/github-com-curent-ams-master) |
|
70
|
+
| Coverage |  |  |
|
69
71
|
| Last Commit |  |  |
|
70
|
-
| CI | [](https://github.com/CURENT/ams/actions/workflows/compatibility.yml) | [](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml) |
|
72
|
+
| CI | [](https://github.com/CURENT/ams/actions/workflows/compatibility.yml) | [](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master) |
|
73
|
+
| CD | [](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml) | [](https://dev.azure.com/conda-forge/feedstock-builds/_build/latest?definitionId=21708&branchName=main) |
|
72
74
|
| Structure | [](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [](https://deepwiki.com/CURENT/ams) |
|
73
75
|
| Dependency | [](https://libraries.io/pypi/ltbams) | |
|
74
76
|
| Try on Binder | [](https://mybinder.org/v2/gh/curent/ams/master) | |
|
75
77
|
|
76
|
-
|
78
|
+
## Why AMS
|
77
79
|
|
78
80
|
AMS facilitates **Dynamics Incorporated Scheduling** and **Scheduling-Dynamics Co-Simulation**
|
79
81
|
through an integrated interface with ANDES.
|
@@ -148,9 +150,9 @@ Use the following resources to get involved.
|
|
148
150
|
- Read release notes highlighted [here][release notes]
|
149
151
|
- Try in Jupyter Notebook on [Binder][Binder]
|
150
152
|
- Check out the source code used for [benchmark][benchmark]
|
151
|
-
- Check out and
|
153
|
+
- Check out and cite our [paper][paper]
|
152
154
|
|
153
|
-
|
155
|
+
## Installation
|
154
156
|
|
155
157
|
AMS is released as ``ltbams`` on PyPI and conda-forge.
|
156
158
|
Install from PyPI using pip:
|
@@ -189,11 +191,11 @@ pip install git+https://github.com/CURENT/ams.git
|
|
189
191
|
- `cvxpy` is distributed with the open source solvers CLARABEL, OSQP, and SCS, but MIP-capable solvers need separate installation
|
190
192
|
- `cvxpy` versions **below 1.5** are incompatible with `numpy` versions **2.0 and above**
|
191
193
|
- If the solver `SCIP` encounters an import error caused by a missing `libscip.9.1.dylib`, try reinstalling its Python interface by running `pip install pyscipopt --no-binary scip --force`
|
192
|
-
- `kvxopt
|
194
|
+
- For the ImportError related to `kvxopt`, it is recommended to reinstall it via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries. More details can be found in this closed issue [Bug with dependency kvxopt 1.3.2.0](https://github.com/CURENT/andes/issues/508)
|
193
195
|
- Versions **1.0.0** and **1.0.1** are only available on PyPI
|
194
196
|
- Version **0.9.9** has known issues and has been yanked from PyPI
|
195
197
|
|
196
|
-
|
198
|
+
## Example Usage
|
197
199
|
|
198
200
|
```python
|
199
201
|
import ams
|
@@ -214,12 +216,15 @@ sa
|
|
214
216
|
>>> <andes.system.System at 0x14bd98190>
|
215
217
|
```
|
216
218
|
|
217
|
-
|
219
|
+
Here, RTED stands for Real-Time Economic Dispatch.
|
220
|
+
For a full list of acronyms used in the library, please consult the [Documentation - Routine Reference](https://ltb.readthedocs.io/projects/ams/en/stable/routineref.html#routine-reference).
|
221
|
+
|
222
|
+
## Citing AMS
|
218
223
|
If you use AMS for research or consulting, please cite the following paper in your publication that uses AMS:
|
219
224
|
|
220
|
-
> J. Wang et al., "Dynamics-
|
225
|
+
> J. Wang et al., "Dynamics-Incorporated Modeling Framework for Stability Constrained Scheduling Under High-Penetration of Renewable Energy," in IEEE Transactions on Sustainable Energy, vol. 16, no. 3, pp. 1673-1685, July 2025, doi: 10.1109/TSTE.2025.3528027.
|
221
226
|
|
222
|
-
|
227
|
+
## Sponsors and Contributors
|
223
228
|
AMS is the scheduling simulation engine for the CURENT Largescale Testbed (LTB).
|
224
229
|
More information about CURENT LTB can be found at the [LTB Repository][LTB Repository].
|
225
230
|
|
@@ -230,16 +235,9 @@ This work was supported in part by the Advanced Grid Research and Development Pr
|
|
230
235
|
|
231
236
|
See [GitHub contributors][GitHub contributors] for the contributor list.
|
232
237
|
|
233
|
-
|
238
|
+
## License
|
234
239
|
AMS is licensed under the [GPL v3 License](./LICENSE).
|
235
240
|
|
236
|
-
# Related Projects
|
237
|
-
- [Popular Open Source Libraries for Power System Analysis](https://github.com/ps-wiki/best-of-ps)
|
238
|
-
- [G-PST Tools Portal](https://g-pst.github.io/tools/): An open tools portal with a classification approach
|
239
|
-
- [Open Source Software (OSS) for Electricity Market Research, Teaching, and Training](https://www2.econ.iastate.edu/tesfatsi/ElectricOSS.htm)
|
240
|
-
|
241
|
-
Some commercial solvers provide academic licenses, such as COPT, GUROBI, CPLEX, and MOSEK.
|
242
|
-
|
243
241
|
* * *
|
244
242
|
|
245
243
|
[GitHub releases]: https://github.com/CURENT/ams/releases
|
@@ -1,29 +1,30 @@
|
|
1
1
|
# LTB AMS
|
2
2
|
|
3
|
+
<img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
|
4
|
+
|
3
5
|
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
6
|
|
5
7
|

|
6
8
|
[](https://ieeexplore.ieee.org/document/10836855)
|
7
9
|
|
8
|
-
<img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
|
9
|
-
|
10
10
|
| Badges | | |
|
11
11
|
|---|---|---|
|
12
12
|
| Repo |  |  |
|
13
|
+
| Python | [](https://www.python.org/) |
|
13
14
|
| Version | [](https://pypi.org/project/ltbams/) | [](https://anaconda.org/conda-forge/ltbams) |
|
14
15
|
| Tag | [](https://github.com/CURENT/ams/tags) |  |
|
15
16
|
| Documentation | [](https://ltb.readthedocs.io/projects/ams/en/stable/?badge=stable) | [](https://ltb.readthedocs.io/projects/ams/en/develop/?badge=develop) |
|
16
17
|
| Download | [](https://pypi.org/project/ltbams/) | [](https://anaconda.org/conda-forge/ltbams) |
|
17
|
-
|
|
18
|
-
|
|
18
|
+
| Quality |  | [](https://codebeat.co/projects/github-com-curent-ams-master) |
|
19
|
+
| Coverage |  |  |
|
19
20
|
| Last Commit |  |  |
|
20
|
-
| CI | [](https://github.com/CURENT/ams/actions/workflows/compatibility.yml) | [](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml) |
|
21
|
+
| CI | [](https://github.com/CURENT/ams/actions/workflows/compatibility.yml) | [](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master) |
|
22
|
+
| CD | [](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml) | [](https://dev.azure.com/conda-forge/feedstock-builds/_build/latest?definitionId=21708&branchName=main) |
|
22
23
|
| Structure | [](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [](https://deepwiki.com/CURENT/ams) |
|
23
24
|
| Dependency | [](https://libraries.io/pypi/ltbams) | |
|
24
25
|
| Try on Binder | [](https://mybinder.org/v2/gh/curent/ams/master) | |
|
25
26
|
|
26
|
-
|
27
|
+
## Why AMS
|
27
28
|
|
28
29
|
AMS facilitates **Dynamics Incorporated Scheduling** and **Scheduling-Dynamics Co-Simulation**
|
29
30
|
through an integrated interface with ANDES.
|
@@ -98,9 +99,9 @@ Use the following resources to get involved.
|
|
98
99
|
- Read release notes highlighted [here][release notes]
|
99
100
|
- Try in Jupyter Notebook on [Binder][Binder]
|
100
101
|
- Check out the source code used for [benchmark][benchmark]
|
101
|
-
- Check out and
|
102
|
+
- Check out and cite our [paper][paper]
|
102
103
|
|
103
|
-
|
104
|
+
## Installation
|
104
105
|
|
105
106
|
AMS is released as ``ltbams`` on PyPI and conda-forge.
|
106
107
|
Install from PyPI using pip:
|
@@ -139,11 +140,11 @@ pip install git+https://github.com/CURENT/ams.git
|
|
139
140
|
- `cvxpy` is distributed with the open source solvers CLARABEL, OSQP, and SCS, but MIP-capable solvers need separate installation
|
140
141
|
- `cvxpy` versions **below 1.5** are incompatible with `numpy` versions **2.0 and above**
|
141
142
|
- If the solver `SCIP` encounters an import error caused by a missing `libscip.9.1.dylib`, try reinstalling its Python interface by running `pip install pyscipopt --no-binary scip --force`
|
142
|
-
- `kvxopt
|
143
|
+
- For the ImportError related to `kvxopt`, it is recommended to reinstall it via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries. More details can be found in this closed issue [Bug with dependency kvxopt 1.3.2.0](https://github.com/CURENT/andes/issues/508)
|
143
144
|
- Versions **1.0.0** and **1.0.1** are only available on PyPI
|
144
145
|
- Version **0.9.9** has known issues and has been yanked from PyPI
|
145
146
|
|
146
|
-
|
147
|
+
## Example Usage
|
147
148
|
|
148
149
|
```python
|
149
150
|
import ams
|
@@ -164,12 +165,15 @@ sa
|
|
164
165
|
>>> <andes.system.System at 0x14bd98190>
|
165
166
|
```
|
166
167
|
|
167
|
-
|
168
|
+
Here, RTED stands for Real-Time Economic Dispatch.
|
169
|
+
For a full list of acronyms used in the library, please consult the [Documentation - Routine Reference](https://ltb.readthedocs.io/projects/ams/en/stable/routineref.html#routine-reference).
|
170
|
+
|
171
|
+
## Citing AMS
|
168
172
|
If you use AMS for research or consulting, please cite the following paper in your publication that uses AMS:
|
169
173
|
|
170
|
-
> J. Wang et al., "Dynamics-
|
174
|
+
> J. Wang et al., "Dynamics-Incorporated Modeling Framework for Stability Constrained Scheduling Under High-Penetration of Renewable Energy," in IEEE Transactions on Sustainable Energy, vol. 16, no. 3, pp. 1673-1685, July 2025, doi: 10.1109/TSTE.2025.3528027.
|
171
175
|
|
172
|
-
|
176
|
+
## Sponsors and Contributors
|
173
177
|
AMS is the scheduling simulation engine for the CURENT Largescale Testbed (LTB).
|
174
178
|
More information about CURENT LTB can be found at the [LTB Repository][LTB Repository].
|
175
179
|
|
@@ -180,16 +184,9 @@ This work was supported in part by the Advanced Grid Research and Development Pr
|
|
180
184
|
|
181
185
|
See [GitHub contributors][GitHub contributors] for the contributor list.
|
182
186
|
|
183
|
-
|
187
|
+
## License
|
184
188
|
AMS is licensed under the [GPL v3 License](./LICENSE).
|
185
189
|
|
186
|
-
# Related Projects
|
187
|
-
- [Popular Open Source Libraries for Power System Analysis](https://github.com/ps-wiki/best-of-ps)
|
188
|
-
- [G-PST Tools Portal](https://g-pst.github.io/tools/): An open tools portal with a classification approach
|
189
|
-
- [Open Source Software (OSS) for Electricity Market Research, Teaching, and Training](https://www2.econ.iastate.edu/tesfatsi/ElectricOSS.htm)
|
190
|
-
|
191
|
-
Some commercial solvers provide academic licenses, such as COPT, GUROBI, CPLEX, and MOSEK.
|
192
|
-
|
193
190
|
* * *
|
194
191
|
|
195
192
|
[GitHub releases]: https://github.com/CURENT/ams/releases
|
@@ -8,11 +8,11 @@ import json
|
|
8
8
|
|
9
9
|
version_json = '''
|
10
10
|
{
|
11
|
-
"date": "2025-
|
11
|
+
"date": "2025-08-31T23:37:40-0700",
|
12
12
|
"dirty": false,
|
13
13
|
"error": null,
|
14
|
-
"full-revisionid": "
|
15
|
-
"version": "1.0.
|
14
|
+
"full-revisionid": "595ed3a3be7f707c7c4aa79ac73bffa58919dc81",
|
15
|
+
"version": "1.0.14"
|
16
16
|
}
|
17
17
|
''' # END VERSION_JSON
|
18
18
|
|
@@ -23,18 +23,13 @@ command_aliases = {
|
|
23
23
|
|
24
24
|
def create_parser():
|
25
25
|
"""
|
26
|
-
Create a parser for the command-line interface
|
26
|
+
Create a parser for the command-line interface,
|
27
|
+
revised from `andes.cli.create_parser`.
|
27
28
|
|
28
29
|
Returns
|
29
30
|
-------
|
30
31
|
argparse.ArgumentParser
|
31
32
|
Parser with all AMS options
|
32
|
-
|
33
|
-
Notes
|
34
|
-
-----
|
35
|
-
Revised from the ANDES project (https://github.com/CURENT/andes).
|
36
|
-
Original author: Hantao Cui
|
37
|
-
License: GPL3
|
38
33
|
"""
|
39
34
|
|
40
35
|
parser = argparse.ArgumentParser()
|
@@ -1,16 +1,20 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
|
-
from andes.core.common import Config as
|
3
|
+
from andes.core.common import Config as adConfig
|
4
4
|
|
5
5
|
logger = logging.getLogger(__name__)
|
6
6
|
|
7
7
|
|
8
|
-
class Config(
|
8
|
+
class Config(adConfig):
|
9
9
|
"""
|
10
10
|
A class for storing configuration, can be used in system,
|
11
11
|
model, routine, and other modules.
|
12
12
|
|
13
|
-
Revised from `andes.core.common.Config
|
13
|
+
Revised from `andes.core.common.Config`, where update method
|
14
|
+
is modified to ensure values in the dictionary are set
|
15
|
+
in the configuration object.
|
16
|
+
|
17
|
+
.. versionadded:: 1.0.11
|
14
18
|
"""
|
15
19
|
|
16
20
|
def __init__(self, name, dct=None, **kwargs):
|