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.2.tar.gz (5.5 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.2-cp313-cp313-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.7.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

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

pulsim-0.7.2-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.7.2-cp312-cp312-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.7.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

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

pulsim-0.7.2-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.7.2-cp311-cp311-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

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

pulsim-0.7.2-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.7.2-cp310-cp310-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.7.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

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

pulsim-0.7.2-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pulsim-0.7.2.tar.gz
  • Upload date:
  • Size: 5.5 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.2.tar.gz
Algorithm Hash digest
SHA256 863938033d5e4204e827b89b0255b1fc0b8925eb5f8da9e9830042539a905075
MD5 72c5880862edecc2688b529e5c0a2e0a
BLAKE2b-256 14dec5c71ab6023c6a4d551682c559b226613f8e6d300aee9883ee9bf8ba4252

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.8 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 28f74aa0433c455f3f86d5ce755d7dfab633ff86c26eedc3761153ef531aaa8f
MD5 58e0ce7e092dbc2991a8c7477fc37bf6
BLAKE2b-256 eaf9583bfa04b99e60ccdb045c6a957d72989a729a94dd7991dac22a59a5652d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70e8c1315fc4f985d11743c070343be2f864be699c2ef0e41a79931fd574fef1
MD5 ebe4e6cc40e7b39ea1b8ca8a7c317665
BLAKE2b-256 32a29c82fa13daa06404ddf2cef0f7fb5e798d2bd43468044aa79878770ced9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 085458d6c93b9e09e8cc84207dc26c870c366e278798ce79ffee80e9ec0764b4
MD5 12ba31c88f1d25cdf03892cfbbe9e246
BLAKE2b-256 5935c7c2b86f287a953838f1cab267c23c3b90840a25575dfb5f9b934f1359d2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.8 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c20a5df1b250d9f04c9f84bcad4c7befb557e0739f217dc058dfd8d1d765374c
MD5 52de8f470384bdafe969de02ca505245
BLAKE2b-256 c29f57cc4b90d6b4cf71fb9eacf23991e358d893b850f8e4a564c3a1886323a4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6afa34eb897752148b9564411bf9770218735c3bcc47ea2cccf8f6e66a7eecde
MD5 ecf06d44f01e5ed260ce423020a1c5cb
BLAKE2b-256 248446bf5b4713636200dd425e5d01e11f61a8b5c4d9deb540a392f06c188221

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72a3fb07ab5229ca1d19c11d2c476c8f57c0867ea8eac389eaadbcc4be96a97c
MD5 e65eee50129e57c7e81166e17d5a162c
BLAKE2b-256 35f5ba26a1621f2378e53d290053f6f3b39fb79eda283489e0185d38ac7d0ba0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.8 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b59d82077425fc5e13071d3047ace1fd5875d18d4bc456ad11c5975019ea2978
MD5 132e19d11a37328b322e0500670637c6
BLAKE2b-256 7c7a075c18226e5ebc3d13fd9f3630fa3c28101724e6ae0ddeeefbfbd30a16f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 89a91e2ba37ccfa2de12cb8e12cad95ce22c1ea645a62470066772d8d49109c7
MD5 cd85448229ebedecda1077a1e7aacfa5
BLAKE2b-256 945e83cc82db4f1682bec1e910179dd96137ef2947bcda23f65ce5c1d5809290

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c726e1468e322c79d75233f67fc0dc45fa5fc4674d99f32a2dd6ef5ce3e51981
MD5 86d5d91b093a353341328369361c7ac0
BLAKE2b-256 f9f5a27f405ad39abc4b60205d87d35693690a92d3451d1968f7089639b0ed97

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.8 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b526099dc494e86e15d8f8d9e5ad2ba568775f6e7b996669882ea45166fd0d61
MD5 5435ac0ebaeaaade90fcf16c596b7828
BLAKE2b-256 6b4e05d3c06dde92ffa66bf7263cb7e2ba385d806e4498c70072f12ee98a00bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1bca9363c58a0a545edc02803986e6985083c03168e72e86afa8652a39d9dbd
MD5 7bc099ff6839fbd25525060cec29f4e2
BLAKE2b-256 ee5d7525e95968ac8fe44faf3f398c46d010d4f9a811afa74bbc84afcfeb0ee9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e3be4b649f7d18439932a9eac5c042cc6444bbc89adb63ec7a90f38e41fd068
MD5 0cec65e7d6117c04c10681022e2a84fd
BLAKE2b-256 545a5d0e76b46dd05ea46c00e7a703fff074259683ba6c8a2e18b638731c09e9

See more details on using hashes here.

Provenance

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