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.8.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.8-cp313-cp313-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.7.8-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.8-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.7.8-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.8-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.8-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.8-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.7.8-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.8-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.8.tar.gz.

File metadata

  • Download URL: pulsim-0.7.8.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.8.tar.gz
Algorithm Hash digest
SHA256 107a339f409310d6d44835406995d178db6d0a6b9a6b945843d43a4b97631677
MD5 b145b9305e455427ef8551b90c71e454
BLAKE2b-256 35115f3f409f234910b3842f2746151e38a85b1c674478d19d0cdc9f0b971df4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8.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.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.8-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.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dbb9b045f62cea75c6fb35e0c6424aa4004b8d131aebd2f78e6566c9fead2769
MD5 5d994632258735ca199fb1713e031ed8
BLAKE2b-256 e89071119795e47906a644be127a42bcf5f58bcaf42c090248db4554bffc06a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 feeb5db21aaedff7ce36e07b2ac66db7f132155ca7d8b23259f22cc9e3046db0
MD5 f0c2154e6206bea9cadfd81543569532
BLAKE2b-256 a368044ccc9b1b525a65f145b77bee354a2885407aae9ee14d13171ea270d2d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03b0e8e711efd76033a0e2e55d3a183d7cb43dc04374887e28fb5f6885aa1ed8
MD5 717a365cf81ccb4918dee9496db2b464
BLAKE2b-256 c775ab5e2cde514dd41cfc4676f3af17e82e3a5a82eb2ca6f00a7cad991bd10d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.8-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.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 eaa77ef306b44a83413261bf9d5493a56aa7a8324ebf2c1426ef6d64013de706
MD5 2198e942a10fc627691f746384eb5f35
BLAKE2b-256 1bd44a64a51050347e4abcbbcc6cf326ea6032357c14b702a3683e6c303828cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0720109882e1d9df309722ade6d20037b1de528c4c42c7b47d661e9895b8d07a
MD5 29af86eff1b5f8442a1ffd2a88c8d1a9
BLAKE2b-256 767023e1f07da5851fa99f789198e330eb64e7f110a60f1204d3a835017b5e19

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddf307da6dd1e4cede63ce40505e87d4af8af3574e86cc9d781f607b6d146ab1
MD5 5abc107867166bebdcf9f12e689bd11f
BLAKE2b-256 6716d1673315cad9f8bcafeffa640040c624dc497b5b9a2bfe8d0d67626ddc08

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.8-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.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42990f16759dee34a482f7e077966b164725bdb2720da0fa88ea64a0e96a8c77
MD5 bdb698e83301b1665afed879e566b7d3
BLAKE2b-256 302ebf514ca34c54e8a2cf679fc8e80c8392fd3260d116956c19bd4a567e382f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69b190a3b4209e8a99f5e4070f8cc4ccdae500a8adac63d0be286ce39995a01c
MD5 64190776c7cdfa8a36b762950be50e0a
BLAKE2b-256 ffe28140728ad5f3c9d73423098c85c14dd5bb7a8a1a9cc5dc1ddd95ead9a965

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 790252675003306db2f87939d2ffe775e1f96edb01bc489b7bee206866fc970d
MD5 03ff8b415ce1fe61baf5a28061a81e9d
BLAKE2b-256 967fc046a3356ebfeb70dd40c437457ede63fa4f8c6f0c60c866176e82127c65

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pulsim-0.7.8-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.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 84d0f2123a6cd5d2f72e19afa880c5658b8c84d842502a12b4c709abd80cfcec
MD5 0db6d9f674371ae4b58a5b9869ef4915
BLAKE2b-256 1f21364eae674e70f88a3394fc24548a12db0ffe27c74ee11967d863d80d4ccf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8129a0a929f509f6eba565100260fd2d1328cc9adfd290d389bb05cdc00b3eb4
MD5 9bfcf14cf65ff23601aacb439c357d2b
BLAKE2b-256 ff211939b2af4cad47ac66a6e6f49ca9dd7f6afdae7453793f4675576c963c02

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pulsim-0.7.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16e5286d93b96abaf682e40804a441b254d8fa6922edb995e6a5fbf2941d0a33
MD5 36adf2df1289e6f1e9ff7157b7a201b0
BLAKE2b-256 56b87a0b202908cea04c2bf41d3d7e07ad23d1bb69f6b2621263f17e3862be54

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsim-0.7.8-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