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

Uploaded CPython 3.13Windows x86-64

pulsim-0.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

pulsim-0.7.1-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

pulsim-0.7.1-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pulsim-0.7.1.tar.gz
  • Upload date:
  • Size: 5.4 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.1.tar.gz
Algorithm Hash digest
SHA256 45a924579c08acdc9ce1fc13b8c056107f2dc33e3231e5af9965c4b504dd7d88
MD5 d183f8e2378ec3483cba7e42da2e75a2
BLAKE2b-256 7db0b1d570c084017674af47a63ca110e3001cd794c398753ea5a0f0bfcfd847

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.1-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.7.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 095a9a952d893d6cd87ccf3c831b136d5b634cee776cc2792931dcadf81a09c1
MD5 4038f07172daed8182ad7443973d91b0
BLAKE2b-256 ea99c1300d2e7b2c313589e28111353aaa5302628f3532bf402fa66be349d5e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 335c3a45892849690834533107e6b0d3d74eeb630201b8c414e229ccdf97e98a
MD5 df9f5d51aec24cf000146f7cf518b0df
BLAKE2b-256 11db1f77f4739d99bab47c4ec932c5c2d1313dcdbf2d67de6836f0419db79a49

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16105b0d7a849dbd7f706617c87054743cd000a9938359c0e43a8fdf6a0bb0b5
MD5 397d7294466370565ff5b0e6fec0a02f
BLAKE2b-256 6085321463d08e5c6f5b5bd0005deeab1264a1012101fe7a9699592ac388095f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.1-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.7.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 23a93c4ebce6a00d71c61ae24f6478461c95d1048212f9a438ef7856d188708e
MD5 a2d2227afbd8f2b8774b48a820ef4814
BLAKE2b-256 2c1baf151f2b27a8cefc079c530bb81cc995285e27195c8a0b27dd266f1659c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6df842123e7b5cf8302647d50decdddb676da2d7cf8ec015da98381a60ffffa5
MD5 379a766534613579737d7ada1ba96b02
BLAKE2b-256 dde7b88f7b18824db1e4dfe678bd7746fe6b787e1f159b72abd3f140a4d9339d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed14b807d269141faca953b772932d05519752af2ed5a691e59dc934ce5db11d
MD5 b025a66254a220aa1f9c5b628b80f08b
BLAKE2b-256 5ca74727805d2ffd443c5df92d9106d4d7157b739f50175612da5a0276ed7930

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.1-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.7.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5f3a23ebd43570906fd7686f34a444b1d314700a2991932c4ab5287599d6a50e
MD5 e39daa9c4669a69e7eb28da0ea247ae3
BLAKE2b-256 5a4afa4ae6649966fcbf48d7ca5f3343be8b58a57f563ee55d172ba84e6f48b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e25f9261d55316c4b318547f7e253f31326af1ceb1204965f861f5654b51b1b7
MD5 9c161e78bd6cc369c6078e84691915cb
BLAKE2b-256 8a628e59bbd2fa6c134f04103237d089745bcc52127b9e3ca76cc77f7f8dc1f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 423e4cf402154871ab312f8e5aa4dac837d3a1d8331b80c88ff6601c176c39a9
MD5 34a964f846dce68ce121e1fd760b0493
BLAKE2b-256 e305ee108b4b0f2dc713cd176b4065005c691a6ef8eea623bc1afb3a7fe3722a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.1-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.7.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a3ece58d5245a037bbcc2d21282f83bf4c1bb3a004444ddb478f122ccf0fdd7a
MD5 bb481cd4d847c30cf761620b5bb7d69e
BLAKE2b-256 d4534bd8d3f42f4bbf5e2e8863353e3668d75d574e273793be60479c864bcf52

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ea2e0435e8a1de056e6f04e356d20dbdb9c5fdb1a35973942876f8a4f8f5893
MD5 6bae9412c18684eaff82e329a1d00b43
BLAKE2b-256 8837f15db3892b9b6788022707abc6c53d1a87f4b7822e2dc4bf0f609397b1e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f31debb64b2c7ec3bdae11dd3d14f4332be6ce8f2221abbefdccff1683845f76
MD5 eade1aa214cc4b193b71474a23746fc9
BLAKE2b-256 0b6877245e32f0d62e233577cc8b6772cd21c4ac5499b4a1d42e037998184afc

See more details on using hashes here.

Provenance

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