TOPS (Tiny Open Power System Simulator)
Note: This repository was previously called DynPSSimPy.
This is a package for performing dynamic power system simulations in Python. The aim is to provide a simple and lightweight tool which is easy to install, run and modify, to be used by researchers and in education. Performance is not the main priority. The only dependencies are numpy, scipy, pandas and matplotlib (the core functionality only uses numpy and scipy).
The package is being developed as part of ongoing research, and thus contains experimental features. Use at your own risk!
Some features:
- Newton-Rhapson power flow
- Dynamic time domain simulation (RMS/phasor approximation)
- Linearization, eigenvalue analysis/modal analysis
Installation
The package can be installed using pip, as follows:
pip install tops
Contributing and releases
Pull request titles must follow the Conventional Commits format. Use fix: ... for bug fixes, feat: ... for features, and a ! such as feat!: ... for breaking changes. Pull requests should be squash-merged using the pull request title as the commit message.
Release Please maintains a release pull request on main. That pull request updates CHANGELOG.md and the package version in pyproject.toml. Because Release Please uses the repository GITHUB_TOKEN, run the Tests workflow manually against the generated release branch before merging it. Merging the release pull request creates a version tag and GitHub release, builds and validates the distributions, and starts the protected pypi environment deployment.
Citing
If you use this code for your research, please cite this paper.
Example notebooks
Contact
Metadata
Release files for tops 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tops-0.3.0.tar.gz | 42.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tops-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 97.2 kB
Release files / tops-0.3.0.tar.gz
| Download URL | tops-0.3.0.tar.gz |
|---|---|
| Size | 42.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d04148e621d2459adb179cee9536d7c91deae9f2b6fb973e004d37fc47bcbdba
|
|
BLAKE2b-256 checksum How to use checksums |
2c7cc0f5178ed58eb757acfebebbe5f7d32a81e640c62363ab0c84afea7a2482
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logRelease files / tops-0.3.0-py3-none-any.whl
| Download URL | tops-0.3.0-py3-none-any.whl |
|---|---|
| Size | 54.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78241c27d3dac573208df688cfa1167f05598990aaf00964a0f5cb544235a11b
|
|
BLAKE2b-256 checksum How to use checksums |
45a07e3faafb833ad6107d31e4f3e710ea2b349e428c6aef769c4525a84c8dca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency log