p3s - parallel pandapower solver
CPU / GPU based AC/DC Powerflow solver
- PyPI package: https://pypi.org/project/parallel-pandapower-solver/
- Free software: BSD-3-Clause
- Documentation: https://parallel-pandapower-solver.readthedocs.io.
Features
Solvers
- C++ Newton-Raphson with KLU, single and multi-threaded (using openMP)
- GPU-resident polar Newton solver (cuDSS, cuSolverRF and cuSolverSp QR)
- reference python / numba implementation
Study opportunities
- batched timeseries calculation
- N-1 contingency analysis with islanding detection (including a "reslack" feature)
- station controllers solved inside the Newton Raphson (still under review)
Robustness
- Armijo damped Newton-Raphson
- DC power-flow initialisation with flat start fallback
- voltage-band plausibility check against non-physical roots
- per-case convergence and per-bus served masks
Integration
- operates directly on pandapower networks (standalone)
- zero-copy numpy interface, using pybind11, no per-call marshalling
- Linux and Windows native builds; pip installable
- Will be directly integrated in pandapower
Verification
- all results are verified against pandapower
- test pipeline automatically tests every change
- accuracy is 1e-11 vs pandapower
Installation
Compiled C++/KLU Newton-Raphson solver (the nr_klu extension). Opt-in because it needs a C++17 compiler and SuiteSparse/KLU at build time.
Installs the separate p3s-cpp distribution, whose CMake build drops nr_klu into the p3s package so from p3s import nr_klu works.
pip install p3s[cpp] # from an index (published p3s-cpp)
pip install .[cpp] # from a checkout (see note below)
From a source checkout, p3s-cpp is not on an index, so build it explicitly:
pip install ./p3s/cpp
(SuiteSparse must be available, e.g. conda install -c conda-forge suitesparse.)
(cuda-toolkit1 must be available, e.g. conda install -c nvidia/label/cuda-12.4.0 cuda-toolkit.)
Look into docs/installation.md for more details.
Acknowledgment
The code in this repository was created as part of the research project “GRAVITON”, supported by the German Federal Ministry for Economic Affairs and Climate Action (BMWE) on the basis of a decision by the German Bundestag (grant no. 03EIM4109).
Credits
This package was created with Cookiecutter and the audreyfeldroy/cookiecutter-pypackage project template.
-
CUDA libraries are not part of this repository and must be acquired separately from NVIDIA, under their respective license terms. ↩
Metadata
Release files for parallel-pandapower-solver 1.1.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 | |
|---|---|---|---|
| parallel_pandapower_solver-1.1.0.tar.gz | 120.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| parallel_pandapower_solver-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 256.5 kB
Release files / parallel_pandapower_solver-1.1.0.tar.gz
| Download URL | parallel_pandapower_solver-1.1.0.tar.gz |
|---|---|
| Size | 120.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60c49806be2cc77acdebca95298567068a6ad9fedab4b4dcf20e3ea3e00ea2b5
|
|
BLAKE2b-256 checksum How to use checksums |
4c669f2b6398d6f07b2757fae40b7199fdaa5b28b22e84016c8d002b3f5dc4c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 24, 2026.
Transparency logRelease files / parallel_pandapower_solver-1.1.0-py3-none-any.whl
| Download URL | parallel_pandapower_solver-1.1.0-py3-none-any.whl |
|---|---|
| Size | 136.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aa7fdfbaf1df56c95cfa1eb24780bb079f8ec70d2d6a83ee994ba900e865c075
|
|
BLAKE2b-256 checksum How to use checksums |
4ac9eae83ed64ed3025e298e395b8de213830bc76e94460ff8f407a089ba8a16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 24, 2026.
Transparency log