Skip to main content

Framework to create partially automated networks made up of resistors and capacitors.

Project description

PyRC Logo


PyPI - Version PyPI - License DOI Typing

PyRC is a package for modeling and solving dynamic thermal RC-network problems. It brings the simplicity of Python to physics-based dynamic models that can be represented as ODEs and solved efficiently by numerical algorithms. The automation of geometric thermal problems in PyRC makes it easy to combine existing Python scripts with accurate, physics-based dynamic models.

PyRC started as research software, built from scientists for scientists, and later for everyone. It was initiated at the Institute for Building Energetics, Thermotechnology and Energy Storage (IGTE) at the University of Stuttgart by Joel Kimmich and Tim Jourdan.

When to use PyRC

  • Multidimensional dynamic thermal problems
  • Systems where time scales span nanoseconds to decades
  • Avoiding the complexity of CFD mesh generation
  • Thermal networks with unstructured topology
  • Extending or customizing solvers directly in Python
  • Parameterizing large-scale RC-networks with up to thousands of elements
  • Parameterizing small-scale RC-networks with only a few elements
  • Time-dependent system matrices or boundary conditions
  • Solving partial differential equations via lumped-parameter models
  • Creating geometric networks with visual aid of VPython
  • Obtaining the state-space representation of complex systems with hundreds or thousands of capacities and resistors — even without solving the ODE

Installation

pip install pyrc

Performance

  • Network with weather data as boundary conditions and 280 radiation source terms; simulating one year with a maximum time step of 0.4 s on a single core at 3.2 GHz:
    • 3'302 capacities, 10'717 resistances
    • Pre-simulation to initialize: 2.5 hours (~7 simulated days)
    • Total simulation time: ~6.5 days
  • Smaller systems (~400 nodes) run 1'000 times faster than simulated time.
  • Largest simulated system: over 6'000 capacitors and 30'000 resistors.

Fun Facts

  • In principle, PyRC works not only for thermal problems but also for electrical ones. However, this has not yet been tested, and an Induction class modeling the behaviour of an electrical coil is still missing. Contributions are welcome!
  • Even without solving the ODE, PyRC can be used to obtain the state-space representation of complex systems with hundreds or thousands of capacities and resistors.

Publications

First publication:

Kimmich, J. & Jourdan, T.: "Python Package for Generating Dynamic Systems and Simulating Resistance-Capacitance Networks (PyRC)", DaRUS, 2026. https://dx.doi.org/10.18419/darus-5765

Poster presented at the 1st Stuttgart Research Software Day, 2026:

Kimmich, J. & Jourdan, T.: "PyRC", Zenodo, 2026. https://doi.org/10.5281/zenodo.18832971

Further publications are in progress.

Notes

  • PyRC was first applied to simulate a dynamic thermal system with constant mass flow under boundary conditions from weather data (solar radiation and ambient temperature) over a full year, including parameter studies.
  • More extensive testing beyond the cases covered so far is necessary. Contributions in this regard are particularly welcome.

Contributing

See CONTRIBUTING.rst for how to contribute to PyRC.

License

See LICENSE.txt for the license.

Funding

Funded by the Federal Ministry for Economic Affairs and Energy (Bundesministerium für Wirtschaft und Energie), Germany.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrc-0.1.0.tar.gz (146.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyrc-0.1.0-py3-none-any.whl (178.9 kB view details)

Uploaded Python 3

File details

Details for the file pyrc-0.1.0.tar.gz.

File metadata

  • Download URL: pyrc-0.1.0.tar.gz
  • Upload date:
  • Size: 146.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for pyrc-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0d426746f201ad9b7b5a9922204e565f1bfed7386ca2cc08c90ff89cc7b5d3e2
MD5 b6f172c14d015cbc0e13c575fa268e17
BLAKE2b-256 87fe402d9ef5046625b8ac18fb8aa55bac26f2a123ff03a8af5ea5948914cec5

See more details on using hashes here.

File details

Details for the file pyrc-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyrc-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 178.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for pyrc-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a618f208dc96ed7da813ec65c138cb94e961fbac986b2d95b2adc91d7cec889d
MD5 3821504e6f017a839efad56cf980687e
BLAKE2b-256 ec4b3cc8023676952ac28f803d6b4d0f8cebbc419f699a52d4980fa5b2808064

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page