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))
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.6.4.tar.gz (5.3 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.6.4-cp313-cp313-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.6.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

pulsim-0.6.4-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.6.4-cp312-cp312-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.6.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

pulsim-0.6.4-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.6.4-cp311-cp311-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.6.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

pulsim-0.6.4-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.6.4-cp310-cp310-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.6.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

pulsim-0.6.4-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pulsim-0.6.4.tar.gz
Algorithm Hash digest
SHA256 9e69b2eea7cbbe80a2eee7d2f215ed4cc6e356435ffee9d9a6c2b95fbfa97327
MD5 15df8de91ace79e49222119ab14777b6
BLAKE2b-256 0bc2633292f43a3c36c598499d31907f284ff72e09748999f407c70dd6be8491

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.7 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.6.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f135127691073995046ea5b36af0e81d4107d995fbc3c0fbd4b7d503735acaf9
MD5 61d8e46dc156542709c6a4c293e8612d
BLAKE2b-256 f9d5f47398df3c1658ff852828b08288567b94dbeb8983bf0784651cba9372e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e9f46a997c8a9e312a68f1fb9a57f619f7bd9713576bbc4129846cac88fe336
MD5 88c1603733dae319c8e23d23516ef574
BLAKE2b-256 f44226920e2d2d96512ed0facf42401b95a9df130ca64eb407a4da75067aa1fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b74a90b9cdab1a4004326b36224e6a46d934dd4456c2742b45884cd715ac47b
MD5 689bc2de36b1e111e8444c41807903db
BLAKE2b-256 07dd2cde660dee976f90fbfc0a0ff77382476505883ae9f14f9f7aa28234632e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.7 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.6.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3a2a8908f380688fe65fdfc3a8efde97d93c06a34ed565f182a6f7a93af2a8c9
MD5 b84daf176be6a99df384fcfb07b23916
BLAKE2b-256 14089124a446df61f4dd9882cc7c6ff4eb2dab2dd729b83866fa888d3b1108a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 03bc45405ed42d3c6d7d34aab7d5cc8e40b3a005d114c0b2fbb0e8742286cc29
MD5 7820b04bd84b1f93aa9fbf483ca9bf83
BLAKE2b-256 addaedf9aeef8d33dc79b95a01bee153ad45065aff1db3174b602d990089ca61

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40257d1180a69582d56c9c3d630e31eb9723b5b3d15a5e8ce558a676fccd5725
MD5 27ce5832013d7e8e9fba8c11deb0b85a
BLAKE2b-256 238b25478532a37486843e333a3c91500c9c7c3c466dd456f5f82221f537b623

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.7 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.6.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4013e4c08d73fe3731ee5c630319f94ee44d74bfe37df1a12d125b6edc8a3cf7
MD5 ffd714d2bc06542dd6a9d64d4a590143
BLAKE2b-256 a72abf4101aa100b0216e2e6a01d16a029229c242a181111813471d7d8a35420

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a110baeb9a76c3a75aea1e073ed0a428286e3f852f1a64345bc57cd250c63a1
MD5 f52b9f2c4a053b837f2e0d42e5004477
BLAKE2b-256 c9585dfe7760560b5d6767da592e5542195b4adeee6cf39cd98c085e3d59ee9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 770ad15604209d72ed84ff5e4213cd7d756764742106ac2cf980097c1a443185
MD5 e8f7574d11d325dcb7d5366b2e72169c
BLAKE2b-256 c41e551bf03acabdb598385d6cadd52c5173c1e06a19444d84162d28bacf1e44

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.7 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.6.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 27ef3447469421d6c0c93dda318dd28ca4500a235727ad40cb9eb52eb4daad53
MD5 fdf9300b1a8929e9a5dd73dc58e15fb8
BLAKE2b-256 02690143a4a7b87f31102c6b4feda31206195770ed070578765c64818e473933

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8eff283c654fe86ba766df434746a7647663d5f860c8c7bd234ec13114341883
MD5 a030e87538ef76fb8796b31edb17e1d9
BLAKE2b-256 6dc1350060c2fd7dffb1528f4eb3aa4a132b2b3919bcb62c724b472d1467675f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5c722fb4ab3045d814eb879d731d8cd0f33414ef4da52dd05bace1ec7d163ef
MD5 90de1be5303edb71dc115f5d2fb063af
BLAKE2b-256 4c753779e1fe46521f18410be9922ed296480ebc85a0854e081e5ae796f23f35

See more details on using hashes here.

Provenance

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