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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: pulsim-0.7.7.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.7.tar.gz
Algorithm Hash digest
SHA256 2646d118a7a1f625081391e3a4268aeb495f29ff48d83f46830f663998f3e416
MD5 d4d34d6dec879cc62f9141d411e89141
BLAKE2b-256 5233bea26babc8d6d99836a7cbc902abd54e849cfff69e356c4e4cd8ebd3d161

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.7-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.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 579e3aa69206f6bd8f1da103952a2ee3b9f63f296088edde399f04407cef7207
MD5 47889a48424a1934c5a9fe705aae86f1
BLAKE2b-256 2825e5e74b99ed4df9b85f37ecd00bd4a85214b1b7373f1d45eed213351737dc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3254a2febfe345d94cc501efdd10f17ec3e403bfada9ec113552f22345c074b6
MD5 c2a8ef4223788d816491be2e85d576ce
BLAKE2b-256 5f046f06da9502bc5ab1339af1dcc7915bb23fb13fa91d66daafa17c4a827d17

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b1779a3a6daf2d8b857ce361fd2b560ea3af9e123902d0b79243a3808d0b931
MD5 51e4190475133d79bbd96b2e9a275ea6
BLAKE2b-256 d2b0b91c8a687dabf5a4e252da94d6593365bbda22ce198613c13a6e599980fc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.7-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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2af652cb95ea0d4b7fd2f4dd3c5f9499b497f6dd5d9f0f0bdc6ec253a9730208
MD5 e93e4e291199119f04f3ed9764686eb0
BLAKE2b-256 d0e932981d4002869050b7f3c79a5bc86ea87f75055a52e0e3db7a0f0545d52f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 143869ae19670365e4c4203eaf20b85edce76f054538a886d560dcd6a1ccaf21
MD5 bb4e3eb86174ab86ffc619dad06c1afb
BLAKE2b-256 6441cc4ab37304e64b547715eef9c5cb3a5f4bce52abb089bf99fc28f456440c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 780ba1ddeb9a87130178e4b18dd91e50ba2cdceda93f48ddf14bcc080b4c41b4
MD5 b0850ed80f9d8585c065871a34d3a4db
BLAKE2b-256 81e253a2896ed4d9a988dbfce26cd4f74c2509cd475b708b3e4b011edb6194d5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.7-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.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7aafcead9880a1b08d18dc1f09d7355ba3888ea9bb73fdcf49490a510244cae6
MD5 25930e43f73953c1c7e00bd089c7b191
BLAKE2b-256 d832e3ca8fb009832b2266a6f5af5eedb8478901731733b72a93c7d8e5031517

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e8960508a747a880e6a614499b4734cf0f558e4b08abd67b928a97a1c395f76b
MD5 deb708da9892eba93ba3e30c833c641c
BLAKE2b-256 9b6d1f365669f3ac8e92c39d8713f595272a89db4bf1a9ae5523a689081005f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb842823c87d7e5bbdf049866af3328062407334b0ce6b444cdc62ff9a8587fd
MD5 f6f6e35cee8854475a6700cc8567834b
BLAKE2b-256 5d0fe72dcea8a819127ae34cb169266b077cb9a4befe6317073c410a8770b3f7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.7-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.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e09a0bb9a227f7094d5cc6db2f8cacc13b950838b5eb2f043794f7ef005174a6
MD5 f80ded8380b6c0b62490183da42da265
BLAKE2b-256 01dcca51173be71ed356063377ae9c5495cb4fc08fa859bfd775420de7654043

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a08c4a9a22b9e51101d1dc6482f52a3480f10b5d26cfb22c53ecd7fefe5d3045
MD5 0387dbbdf1b2f190de1318bc0d7fc2ba
BLAKE2b-256 5f3fbbc2dbdef0ad4c55e5e604a89f45ec317c8f021b5483a2450ec64f1e8444

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed73444c8d4cd3974d39c72a713c8e99c866b768b6562108cda65b81aa577a20
MD5 fed5d83c6138cd5a36e9857a18c57d54
BLAKE2b-256 ae2443d0588c923e0af74696cbd2becb2a2c545ba4a2a295a5bb3a4e1f343021

See more details on using hashes here.

Provenance

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