Metadata-Version: 2.4
Name: dpsim
Version: 1.4.0
Summary: dynamic real-time power system simulator
Author-email: The DPsim Authors <post_acs@eonerc.rwth-aachen.de>
License-Expression: MPL-2.0
Project-URL: Homepage, https://github.com/sogno-platform/dpsim
Project-URL: Bug Tracker, https://github.com/sogno-platform/dpsim/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.0.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: scipy>=1.10.0
Provides-Extra: dev
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx_rtd_theme; extra == "dev"
Requires-Dist: pytest-runner; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pyyaml; extra == "dev"
Requires-Dist: pybind11[global]; extra == "dev"
Requires-Dist: villas-dataprocessing>=0.2.6; extra == "dev"
Requires-Dist: villas-node; extra == "dev"
Requires-Dist: paho-mqtt==1.1; extra == "dev"
Provides-Extra: manylinux
Requires-Dist: sphinx; extra == "manylinux"
Requires-Dist: sphinx_rtd_theme; extra == "manylinux"
Requires-Dist: pytest-runner; extra == "manylinux"
Requires-Dist: pytest; extra == "manylinux"
Requires-Dist: pyyaml; extra == "manylinux"
Requires-Dist: pybind11[global]; extra == "manylinux"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pyyaml; extra == "test"
Requires-Dist: nbformat; extra == "test"
Requires-Dist: nbconvert; extra == "test"
Dynamic: license-file

# <img src="docs/images/dpsim.png" width=40 /> DPsim

[![CI](https://github.com/sogno-platform/dpsim/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/sogno-platform/dpsim/actions/workflows/ci.yaml)

[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
[![codecov](https://codecov.io/gh/sogno-platform/dpsim/graph/badge.svg?token=FLUOQ8U7MH)](https://codecov.io/gh/sogno-platform/dpsim)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/4887/badge)](https://www.bestpractices.dev/projects/4887)

DPsim is a solver library for dynamic power system simulation.

- It supports both the electromagnetic transient (EMT) and dynamic phasor (DP) domain for dynamic simulation.
- A powerflow solver is included for standalone usage or initialization of dynamic simulations.
- It provides a Python module which can be embedded in any Python 3 application / scripts.
- The simulation core is implemented in highly-efficient C++ code.
- It supports real-time execution with time-steps down to 50 uS.
- It can load models in the IEC61970 CIM / CGMES XML format.
- It can be interfaced to a variety of protocols and interfaces via [VILLASnode](https://fein-aachen.org/projects/villas-node/).

## Getting started

### Using Binder

Click the badge below to explore the interactive Jupyter notebooks in your browser:

[![Binder](https://2i2c.mybinder.org/badge_logo.svg)](https://2i2c.mybinder.org/v2/gh/sogno-platform/dpsim/HEAD?urlpath=%2Fdoc%2Ftree%2Fexamples%2FIndex.ipynb)

### Using Python on Linux and Windows

Install DPsim using the command

```shell
pip install dpsim
```

Wheels are published for CPython 3.10 through 3.14 on Linux and Windows x86-64. The Windows
wheel is built without VILLASnode, real-time support and Sundials; use WSL2 or the `sogno/dpsim`
container if you need those. See the
[installation instructions](https://sogno.energy/dpsim/docs/user-guide/install/) for the full
matrix.

## Documentation

The [documentation](https://sogno.energy/dpsim/) has build / installation instructions, links to examples and explains the concepts implemented in DPsim as well as its architecture.

## License

The project is released under the terms of the [MPL 2.0](https://mozilla.org/MPL/2.0/).

For email inquiries regarding other licensing options, please contact the Institute for Automation of Complex Power Systems (ACS), which coordinates DPsim development: [post_acs@eonerc.rwth-aachen.de](mailto:post_acs@eonerc.rwth-aachen.de).

## Contact

[GitHub Discussions](https://github.com/sogno-platform/dpsim/discussions) - Ask questions, share ideas, and get community support.

## Contribute

If you want to get more involved with DPsim, we welcome contributions of all kinds, including code, documentation, examples, models, bug reports, feature requests, and reviews.

Please open a Pull Request or issue on [GitHub](https://github.com/sogno-platform/dpsim), or start a discussion there to propose ideas and get feedback from the community.

Have you developed something new and want to contribute it? Check the [documentation](https://sogno.energy/dpsim/) for details on the preferred way to organize your code contributions.

## Contributors

See [CONTRIBUTORS.md](https://github.com/sogno-platform/dpsim/blob/master/CONTRIBUTORS.md) for a list of contributors.
