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.9.tar.gz (5.9 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.9-cp313-cp313-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.7.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.7.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.7.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

pulsim-0.7.9-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.9.tar.gz.

File metadata

  • Download URL: pulsim-0.7.9.tar.gz
  • Upload date:
  • Size: 5.9 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.9.tar.gz
Algorithm Hash digest
SHA256 af826d125fdc12fd34fd2f7adf3b0e9c2397a3a9abc4a6efef86aaa290354797
MD5 b703675d289c52c0f6b428b272c1638c
BLAKE2b-256 8b81c88cb40eac88a66977b73f0bba0196e975b658261caaabfd8a7e2c35c001

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.9-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.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d114feca50efaff71fe3752941bc86077b9ce46cae874c31dd52299707b55d73
MD5 6a8ab29451396303b99b2d0d9f90b730
BLAKE2b-256 f95259045ba8a619a24b8285c106d646317a5d5e1fdee93acb0fdca242dbcb94

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 133207c3adbfbdfa9edcb4b0005e911588c59b4441b3a7b4b2472d41bf8f2d5d
MD5 5892466ef43a9a641bbafede8cd0e649
BLAKE2b-256 084f95e484db99d3dfe97214d422a1a44ba06e5baa7fc096e2bc4d281a1d7fca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8942a693685f07daf5081089ff6246855813cddca97c6025bdc2ca78387910e8
MD5 8d7dda888fa1961ca4c5ba184df74e25
BLAKE2b-256 9409a48dfae909227f85c7ca43b4c006759a1c5bc8786cc983259d17748d7094

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.9-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.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f5132aa7cb356352d60e54a68db17a94a143aabae90f1dfceb992ab4ad67f3bb
MD5 a4a61f332abd2e8c3ca3d7a54810019a
BLAKE2b-256 8305191bbeef55fe8db60cc04e173b6cb0af0c12a9e1d9aa7d8495f78c0f9e5e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 009f897fc645a764704b00a4843ec5d5945d9c74c0b5f22d1f7bdb16fcd3926e
MD5 75adb1e037303cb853a5bf0cc62472c9
BLAKE2b-256 46af205f41d1171192a6b4237b6f1fc6f2d2c442d56872e47f3cadfc68b66c31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1455b93bd089ac13a211b04fcb195e9db273a0eac97cfdb7faef0939bb24552
MD5 1de0ccef61564038547d8cc1ee1308c9
BLAKE2b-256 89378cf8b6703ace0551c105cb966f4f7357ae3bd05b649fe454227d9abc63c6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.9-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.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d839d9797fac9a0e57d3bcc67f6c53b8b5c9de5ea5a3a5871a97b4542be24719
MD5 956e2dcfb52880a4e0fa2c95cb297219
BLAKE2b-256 cd726d07a3480adffdec52b11bad972071ab506162ee4f97748c421d399e859f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79b70fb785643a67707b8a962efe998d4a26634495461b26d5ab9ef06388d7e5
MD5 e61147560ba19d80faff7690e9c2f03a
BLAKE2b-256 8ca60c379343d1e654395b20c3d93da8625f4a05a57dcd7bc0958925a7495451

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab3d2bdfea27c279d02fefd5a305ab6c1d29759f304885c0b0efa5367c47b8fc
MD5 2de34f7a7674a12ca7fdfcb3d5d791a3
BLAKE2b-256 bd8cddb97d03f4f959ccddc22748411879ba705ced0a19635b57f167d48f4827

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.9-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.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d88d1ac977770ed7ad99ec56fe9ab5ef50f29d7f2e3fa84c49ae773105a6447c
MD5 54d4432d6a795dd0bae685bffbcfd07d
BLAKE2b-256 ddb21b2b04da38b3ee6adae2fe6ed063c4027e99d9b4829abce735a8aa12cf53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2cf79dfc71107ce35823ae1ebdd47202f7bd8c48355fad46c6721f947216fcb
MD5 15a2e1185727ff956d79f194494a1092
BLAKE2b-256 f291a8614f021580411e0d7b0e7bd29c3ed38e6f7f7912662187ab547eaa4a88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c37a4f70b84960a84fba50d5caaa9fca5df13c59f0c82ceb21b393e9722791d0
MD5 a7541a87aa46c3826b565bea39247f47
BLAKE2b-256 7aad63bfef6c42d55f43fe2c4000cb2013b088d2bb95ed0c404295aae366d825

See more details on using hashes here.

Provenance

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