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

Uploaded CPython 3.13Windows x86-64

pulsim-0.9.0-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.9.0-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.9.0-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.9.0-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.9.0-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.9.0-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.9.0.tar.gz.

File metadata

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

File hashes

Hashes for pulsim-0.9.0.tar.gz
Algorithm Hash digest
SHA256 35f111ddcc61997b7095cfe7bfd58cfcc6092251e050634a6c86a68f1ad7f0e8
MD5 095a931c7d3f8dc5c32b2480523ef870
BLAKE2b-256 b1c2da7a6f3bc7d3db46dd56d5a19cf9d6ed081b0a22f2180d3917110f3031b8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.9.0-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.12

File hashes

Hashes for pulsim-0.9.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c30846eaf487ecbcbe8ba2daee41bcf7ef6abb7fe3d910edc64d56148f7fcfbe
MD5 6ab9e1003a8bf747a08876bb790e6af3
BLAKE2b-256 610e696936e7923cf226892a1fe44848a12818024a9c864d406aca7fcf838c26

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1b4fb7dd7f29582c2ee7305dd07b21398832703e263e58f48304ef9d39ec414
MD5 19bff1d74f5d064a4df0a1f06be2eb1a
BLAKE2b-256 ad9ab8451eea60463c1a69fed6331e4fd90677ee7925b54a7717eeff4d31fd6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7ecc0b7317681e9bf3272b0851617cb4099c09caa2e3b7f1bc4eaf3426dedfe
MD5 9d03e4353af0c86faff6b209fb369199
BLAKE2b-256 aaae7ae7c1c5f1d143967cf522cb50bd5e2b5d2bb0be2eef10a34bfb6db7b916

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.9.0-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.12

File hashes

Hashes for pulsim-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4bc60913305776837426824c1a4a2bf5ac6b67e5eb449ef526c0fa7029e7a963
MD5 7ca759ba867c2666369cfe91b82aadc5
BLAKE2b-256 9e5dd1dc350cf0a7679cf450ad13d5790647d458cc8684b68e0a854885353ba8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5327a24170229e8af0a625719cddd8f1d242b00c4d295614b6c9558a9c29cfa1
MD5 c7f3bb8fc9ffbc55b740c7e00ca69662
BLAKE2b-256 b9bccbd04e0e78ca9833ca32d1082833d3326be576d8ee6691a19a2ab14fd4e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea063e39cb9583009000a05525e21ad43f34cdac73e1901c4315514452bc8eca
MD5 4fc9c159338c2d8794ff0c152aa539bf
BLAKE2b-256 3fa58fcb7159eb8ffb9366b78a920b9e45a7d2eda65a6fab28756f319ad15764

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.9.0-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.12

File hashes

Hashes for pulsim-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b44a7fac7717ff3deceb768a7cc6241732af9578e41a309271009e5ba17a5a74
MD5 49918edcd03ff09bbc32a963c969ee72
BLAKE2b-256 d4be1b3ff95e962198fbc81ee872f9193c10ed5d527778ae8253c7d9d8b8856e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94ab2b214bba2804a13883d34a411c8f7259af6bc793eda45fea955667c0591c
MD5 5c8d36eaf7be8591703f9db0d18949a6
BLAKE2b-256 310ab34e3ee415dd9c273937108deadb6e1c06ee33426b5dfb952b85db81567c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3da8ff8502d623ad3b76f46a4fde909ea5a7949a188c0e4a385034ec4e04b4af
MD5 d771ade9cd149631da2b3f0ca5cc4cb1
BLAKE2b-256 edb6f5313f6002b200469c228543183ac62154231beee35947946788767e7312

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.9.0-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.12

File hashes

Hashes for pulsim-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a29b0e71621ec2bc091472bb88d478fa9b74d9f5a8af65944c430d3e240ae1a8
MD5 4033533495a949c2de44bc1e35cd75a2
BLAKE2b-256 367e58630334aa265ca5829412e0c053df1a0ab43c52adcf663ee870dcb721dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e0df3eaf2b480d385861581df65ec0a3c235371eb41174291d61a52e5c407fb
MD5 68f8de81c4a8a2b172ba3da13e4e7296
BLAKE2b-256 442c909591cd82640fabeaf594bd80416b781f10e834c6f12d30541691b586a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a83cd0fcd19ba60b9f18cae9d9b50adb3de61d4e5abc646f9fdc236fa6aa5ee
MD5 08e1b38d1426e0c47308b06e6e1bc3b7
BLAKE2b-256 e697463162fc164b3facac38048007e0f48c827a56a4af33f0f53ae2e6bc520b

See more details on using hashes here.

Provenance

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