Skip to main content

High-performance circuit simulator for power electronics

Project description

PulsimCore

High-performance backend for power electronics simulation.

PulsimCore combines a C++ simulation kernel with a Python-first runtime so you can build, validate, and ship converter simulations with reproducible YAML netlists.

Why PulsimCore

  • Python-native workflow: import pulsim
  • Versioned YAML netlist schema (pulsim-v1)
  • Robust transient flow for switched converters (fallback-aware)
  • Mixed-domain support (control, events, thermal coupling)
  • Built-in benchmark, parity, and stress tooling for CI gates

Quick Start

Build local bindings

cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DPULSIM_BUILD_PYTHON=ON
cmake --build build -j

Run a first simulation

PYTHONPATH=build/python python3 - <<'PY'
import pulsim as ps

parser = ps.YamlParser(ps.YamlParserOptions())
circuit, options = parser.load("benchmarks/circuits/rc_step.yaml")

options.newton_options.num_nodes = int(circuit.num_nodes())
options.newton_options.num_branches = int(circuit.num_branches())

sim = ps.Simulator(circuit, options)
result = sim.run_transient(circuit.initial_state())

print("success:", result.success, "steps:", result.total_steps)
PY

Documentation

Closed-Loop + Thermal Quickstart

Use the backend-ready closed-loop buck example:

PYTHONPATH=build/python python3 - <<'PY'
import pulsim as ps

parser = ps.YamlParser(ps.YamlParserOptions())
circuit, options = parser.load("examples/09_buck_closed_loop_loss_thermal_validation_backend.yaml")
options.newton_options.num_nodes = int(circuit.num_nodes())
options.newton_options.num_branches = int(circuit.num_branches())

sim = ps.Simulator(circuit, options)
result = sim.run_transient(circuit.initial_state())

print("ok:", result.success)
print("max_temp:", result.thermal_summary.max_temperature)
print("components:", len(result.component_electrothermal))
print("thermal_trace_keys:", [k for k in result.virtual_channels if k.startswith("T(")])
PY

Generate a plot with electrical/control channels plus switch thermal trace (T(M1)):

PYTHONPATH=build/python python3 examples/plot_buck_closed_loop_thermal_backend.py

Validation and Performance Workflows

# Python runtime tests
PYTHONPATH=build/python pytest python/tests -v --ignore=python/tests/validation

# C++ kernel tests
ctest --test-dir build --output-on-failure

# Benchmark suite
PYTHONPATH=build/python python3 benchmarks/benchmark_runner.py --output-dir benchmarks/out

Product Surface

Supported user-facing surface:

  • Python runtime (import pulsim)
  • YAML netlists (schema: pulsim-v1)

Legacy CLI/gRPC/JSON-first paths are not the canonical integration target.

Docs Deployment (GitHub Pages)

Docs are published by .github/workflows/docs.yml using MkDocs Material + mike:

  • PR: strict docs build
  • main: deploy dev docs channel
  • vX.Y.Z tag: deploy release docs and update latest

In repository settings, set Pages Source to GitHub Actions.

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

pulsim-0.7.6.tar.gz (5.6 MB view details)

Uploaded Source

Built Distributions

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

pulsim-0.7.6-cp313-cp313-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.7.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pulsim-0.7.6-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.7.6-cp312-cp312-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.7.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pulsim-0.7.6-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.7.6-cp311-cp311-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pulsim-0.7.6-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.7.6-cp310-cp310-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.7.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pulsim-0.7.6-cp310-cp310-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pulsim-0.7.6.tar.gz.

File metadata

  • Download URL: pulsim-0.7.6.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pulsim-0.7.6.tar.gz
Algorithm Hash digest
SHA256 4513e5a0b3802c162beeed76dacfdcb943af442efb0e605c526d3c3d5ecea5b8
MD5 b915303a95c995dec115aab0f91f4daf
BLAKE2b-256 646ae64fb7c5426f3f604fc97d8618df1397baa573bde8cc753f83b36a88b6d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6.tar.gz:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pulsim-0.7.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 34de01fe87802f92630e6dc409228bf811abfb1a1db8f4ee0c3a901d9bd27043
MD5 900be4e788f0696ab1050284f9d82cc4
BLAKE2b-256 25cd14971bda9db6f44dbf3e3c8da2db59adb45ec620f6673e0b2e5803aaa9bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78442c4e699a5350fc75cda7ae24e5bb611ee53ca134bda7079b674490b3d500
MD5 b17b55777b5f0ec432da0a3401a05799
BLAKE2b-256 29508ee8c85c478bd19483655a854ec420e7a6af0eee2edfc4e7067b6468f2c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a629774f0cb7339d8e134e07dd0fc7ccc3d076fb7d6f66296ed0e01ab944fd0
MD5 ce8536fb485decdee56d7ca6d1384a4c
BLAKE2b-256 6574b3c8accaef27a14a97fd7e90068c0d44d4cb4aa13b3a6e84553bf7f1be53

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pulsim-0.7.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 21c2e80c1d53ff807f314a6b4594c2e47eb96ced9d2355e7024068ec00d29fc9
MD5 7c20141357292d0247085a577756b253
BLAKE2b-256 e90c58d7b4f0224f12aad83ede0c32f9ed0d1e790db91f9b64a4e32cf98f2712

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9e5b36a9cb1aef105df3cb0ed9a68fe97a356204f11b82bf89a21edf6d87e0f
MD5 880062ab0cd1c2c36e9d557f8858485d
BLAKE2b-256 8372c50502ba727a4ac67dfd812c25f5e0567e879472969ef1befa3f83e22932

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e853f267b5cf5eeeb548460872e7886b756c1e3c7eece3e55734d6dd037562a4
MD5 86027545cf13b3ae6275f94949f398d3
BLAKE2b-256 d5be3e57c7d0a29118ce2f1ea39c081d7682e625f45b4f3a92101b7b9e38a2fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pulsim-0.7.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7d92f359f610cc0362574d4103ca9d1464658239abe0b74ec0fd7036db23bca4
MD5 c7f8d8308a2b5b32e69eb4196c2b5c5f
BLAKE2b-256 bae0ee8947a81c6d779058d77578190e6afd5f126487ab8ce8c6e24f5f1c0d81

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c41442575e306ba76e65b853e331f50bbd0e58c47a9bb298ce1c2f4d54b8d30
MD5 99770cc0985198d44242afe60b4a8651
BLAKE2b-256 cb221cd04141fd85b7e59386ef2ef1a63b1ca8ea26623d83eb06e90df4c8d272

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8640d8e3bb576465b9ae367bfc6e2fbb2225293b8398f35963d8142c4c66c999
MD5 a0f0c0e19a0fb822765412645fb656ec
BLAKE2b-256 93063c91b81756ac905afb07f966d9f475c7e419401e366fa5b5d8bbcdf51284

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pulsim-0.7.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ca15a513e15393d68d74405fe6ce829b233916b230285c08aaa24024378b1afc
MD5 16ff0ebb3159f43b96cf34fb785adccd
BLAKE2b-256 2ce6259c91b8df11ca0009f18dc2c7ab6a4e1e37c312399aeba548dfa56d621e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6551b0e3f2fff7107b86a88e5193ef21f923ad4d825b6f96ced9448f61b5fc4
MD5 366c36d943b99ec482657ab7cb68343d
BLAKE2b-256 d2fad2204eec367c79532a3443af886aa88b8ea4a587d29db114117edf4c2e79

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsim-0.7.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 666f7b12fcd5dc74fb068f2b460b2262554312fdaca8f48f6828c0ed464c2bb7
MD5 978ada3707e43da45d65cb0d4edf27cf
BLAKE2b-256 38e13c21697aed41d8aabfa1806c94336fbfc04b81ffb1a05f94e5586a70033d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.6-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on lgili/Pulsim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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