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

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

Uploaded CPython 3.13Windows x86-64

pulsim-0.6.0-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.0-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.6.0-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.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.6.0-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.0-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: pulsim-0.6.0.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.0.tar.gz
Algorithm Hash digest
SHA256 a5e45d164dc1e39958ebe8a0d908b9a1b3613983055fecd281cba53cf36d1da6
MD5 3d9d9bfef39c7ba3af21540398924cb9
BLAKE2b-256 25580408903e5b341c2eb9325af6b71e356e48724ecbc8ff930233e09fdab7c9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 556b1fb1e1f8d2cd99f117f52c57d1b706ae8f491434d1c4be6fec8ba9e1b115
MD5 da07b504afe257fab4baf0bca852b152
BLAKE2b-256 487c09ee19860ee48755e1712db041cc3b2f6c0266353ed603c6089b4fb7ded1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee00418810272bc999b29eb554e15704a20ea6091e0ee2ca23960e908817bbf6
MD5 9378eff4355c49b9b54419ea75464ca8
BLAKE2b-256 5508ee4b74002f95a5f00c6f819e3afc21415bc82ca8252faa359c167c8d295e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8503099953a52839cf4579c4a973e72303951a70707a83c6ef1d1903877949fe
MD5 f1e0a667587380ed24ed0fd45270173f
BLAKE2b-256 fc807633a7b0df2ffcb58dfc1b13ef7d66f2e705e1391f339a86b20e75a3aafb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bef865cd2f328bbba8ea4edf81d6692a4bce71cd011c47d2c766b382dec32b28
MD5 aab038bdf3c10f9981bf47d8927549b5
BLAKE2b-256 f6992f9a85bc4886b60a332d521254a32ea4566d057506caf3eb8a918cc96702

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 18c0bcc9490c9a5e05cf1f2b07b5ee70ba36154166b05c40d4d855d6d41dc7a3
MD5 434f8249b690e669dd3e942e42ff8393
BLAKE2b-256 e6332790ff7e93f36461f1f8f8e9c8d90b9b5fbde887258d8844f20bfa27ebc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e74aadff09489008be1fea83bc57aa427250c53d4e807325516362edd8266a0e
MD5 f6d4e9eadc8ee4ff50c8c3146629d21b
BLAKE2b-256 631c1c8ca4c7fc8685a697ef922fea53c279e1b3806a74cf3926debe3e275b41

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a882905dc134305c28d4a8b95d6f1a42f1819d963080d7c4da66f3852b3ed59e
MD5 5f3e43136af76131ba8bd24a37533324
BLAKE2b-256 d02423f49d6af8434a5e309c312bf0909d45005abcb0568bd6bda16903350d93

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8d13743d8e3c4e520fb87ad3ae4b485f2fc6cbcbcc955d3c16c78cc63093cb2
MD5 46831a07c9fc7e0acbbd1dccb592918e
BLAKE2b-256 636502e8e1025f504413dbf87d81bd21c4fc8b923d91345a94afe8ada9322515

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34c375227754747fdb147c260b95e7ac1af75230014b9a29ff5a6eb7e6bd1ee9
MD5 153ae564f0ad3aa04fc8ceec7eebfe43
BLAKE2b-256 93fb6e28767c4475ca611e34828dfb84262e715b79534442fb551d7eb24d7f7b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4201993a1660d9c541a085e85ddbe1f5ca13a68eafd2270455d22d6f24d461cc
MD5 83a6aa45b2a3aa161d36f3ef429eb3ff
BLAKE2b-256 73bfba12d8daa0b24ff584c8af9e21f324f0356ad41b48601fab613fd199caaa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5017cf08fe834e45a20cbabda7811bad34bb514e67c7726290258c8dbcc35ef2
MD5 faac1f840ed4ba1db4415903f1e8a1d3
BLAKE2b-256 7c6c92b954ea174f1925c4b8815b84ce1b95c641bf35289e77ec7c4729e0a8c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03c919cd69fd13732d1b77641552144834968aaf319ccb5b2fae20b72f1ca92e
MD5 0a527ccd65dc0375e0fd1121c85fa344
BLAKE2b-256 823a2ac0d4025486fee9786f3e8d18a52b335f7e954b6ed8fa13f8b279de60cd

See more details on using hashes here.

Provenance

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