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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: pulsim-0.7.4.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.4.tar.gz
Algorithm Hash digest
SHA256 ecbda7308be4245bc53467162af2f760537b371e61c00883545d2611698ed726
MD5 cda4749fa1cc9482499ffae2ebba5750
BLAKE2b-256 114ea13846ac76e59734f26c897b7966aec1e176c4254dc1a724d506c04f2943

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.4-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.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 129619b4310f9e22514e592a94f99328263a7cacd28508ef5a3f7af27705dc80
MD5 864e1697842167bcb8e5b0c8ccb570ea
BLAKE2b-256 2d60c6e70d7e33c1fa31255cdabcdaf27ba74cc6326a70be9cfbd9b3656add79

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5a9fd27a827c4375bfd51fe5effcbad38e612726ca3625995265c15f7ce75d82
MD5 ec80c770c2cba931d2882870fb9bf45e
BLAKE2b-256 5f48a201c2aea52f32933c2fca9fa1339f63af8917798baa0461c76f188927d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62868d5aed7b3b234cf1696607ff06f13969dc646c77df3090ae2834e13585dd
MD5 3750a58b7a9cfb6b22ae8c04804af7ee
BLAKE2b-256 d4f307fecb7e39ac87889f9307444dae2e17634480802d1738e18a80ec79ace9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.4-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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 43208f7b2c783c3a5e3c2161fbd5f9a0b906e1bd8b493b873ad358b430efc63c
MD5 be36b4ae139447c3163e3482fe6abcd3
BLAKE2b-256 3831f0c2e98b3560e9387ab1d56b16e9820f4539263c08f3e303893b484dd822

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b07f73c1605f659b6511d13b7fafac0c40a0e2d6f3b8fbbe55b3bf259745d06d
MD5 c6f63a8c1e773eaa91cae49705599353
BLAKE2b-256 c22df5fe36fbeff01a6f61a0aac913b1bbb644c3fb7abdb802a8bd46e87ea2b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 659157d33e503d539a28af29bbf5ea3eaa2585b1ae0a158ccdbc388f0c3e3bfe
MD5 ceaae1ca8ee24a9684626f7dac09792f
BLAKE2b-256 5fe035b29f44b13ccbb63e1aef4252508635bb20ae68e375bec417bcc60e34fa

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.4-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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f6075a6c009986a68b02da706668b4928de1da5745706ae94972405766cc95b9
MD5 4c11711620ad56007a7dccdc046da9b3
BLAKE2b-256 edcbc2a1b9d8e136dfdf1f14b1ae0a988c9f5ebe5deb8403fe6d6ec179c6a5bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5edc2a0c5eda4609dccafc30ed00650d7571bcffce3121c91f3bac69ceb0deb6
MD5 c77732d4f873ca8c222af72787ba5ecb
BLAKE2b-256 8c3f579424bca75928bdc091423ac0d4701a0b9c935e451f8a5939d24dea11ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c892c9874eb2fa02ada2bddf6b0fcf3e8743a2d8e30ce3d36fbaebf52cbdc204
MD5 19891d1c4f89a05354aba62378e9d9b1
BLAKE2b-256 c5f87039c712118b91048b5bfe46adf666f7e743f490e8b479a747adf1147afc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.4-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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d63a4d0471982313e117cd8238ce951f8efef16a113de326c524f587ed48ab11
MD5 d73dd9b15cbf54d8a3541343a88d2af5
BLAKE2b-256 9ea9c120c2c053ad4321ddb4f9177809c345ddd5bc0d13411e6922ab40de8021

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a670666f7a787ab97d748cfe6d257b4c48522a619d2cc1b24559ae8036896abb
MD5 8ae68308681c6baf2f235b0ebaf52b2e
BLAKE2b-256 93c63f726b9fb74781c88c48b9d88a359dc7a585d8343675e8686585e8335d57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4bf9a8ca02afabeff171ce04780923bf71f0ad7f95f85061c4a83a22351d369d
MD5 91b37dc514b8997de6f2e2892cdaf97e
BLAKE2b-256 1e7d61f7a0a59c52ba9f7be52f2c7148f0293f125353631e03611f9881f94c19

See more details on using hashes here.

Provenance

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