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

Uploaded CPython 3.13Windows x86-64

pulsim-0.5.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

pulsim-0.5.2-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.5.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

pulsim-0.5.2-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.5.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

pulsim-0.5.2-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.5.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

pulsim-0.5.2-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.5.2.tar.gz.

File metadata

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

File hashes

Hashes for pulsim-0.5.2.tar.gz
Algorithm Hash digest
SHA256 7b8c9e35fa1bc064c8eab87bb8081a8e289021ccb77a1a3de21da98cea42084c
MD5 635df62859efc863f33c351f49ae065c
BLAKE2b-256 ac5efc1a1604bc2d6d965c92df5c384678c8bc9039a4d9bd7f451f1ec9e62078

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.2-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.5.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 682a9d70427ff6b97783af6a37f7b12fcb7c941d68c28b47d987317b1f21b20a
MD5 4c2723419144b29dd33f548a327e9a60
BLAKE2b-256 69b3c5335d1a41158393d7d043b9ec274b216628bbbd84328627073b1ac10089

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05054c56b2dd52e8cfd51997a2f7544918c4ec3ef2c14540bca5a1ce66beab18
MD5 50416c540efd1222aa7b93170d5c9f9e
BLAKE2b-256 5e101977b291e585a783bed4cc75015bd5f3f296e896978acb84b386f4917803

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24d6b3edd47458fb84e9368faefd7dbeb234d9d8811927f45d3dce4644fdd43d
MD5 53b10c9f7978792e90d97e93b0bfd819
BLAKE2b-256 75eb7516797ab0ca14db57cc4412340123360f629723b025cdfd6576107dc266

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.2-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.5.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b6e6550a699d1fd28c752902c93be039ad64515d003268f020ab1912db02f4f4
MD5 88b70e0242e4ab543ae477000ab723da
BLAKE2b-256 a5a9ffb598060a27e77c7ea9e69c924975bd0e74fcf01624d2b6e883e24e56f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2dc166f862f2d67c25c66b2facd746003e1c13ef61a347406e76cd85a739e9c9
MD5 40ef328ea4a8745dac5922130f789cdd
BLAKE2b-256 9722f52169c4a2182a9cfc3cf871ea30fd7e12df3f54ab27f713cf6a8686fd6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 385535932c367a6bc30604c9023c6f3d77124c5cc8829ab6d57e3f4e05701819
MD5 853b1978db810288547c7fcbb120df6e
BLAKE2b-256 b1ba4fbb25af100317f79a07e0347f17ff1d2b3d73c293342ccca4285b9d26c5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.2-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.5.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4a425d2cb3f146c17f2f323699266042e76846a7f91d727daabb7046dea6307a
MD5 677da19209917c7ff396c814dc8b2fe3
BLAKE2b-256 51acbb106f88e2c31a8287e42741d824dbf79adc3f8db12a9aa99929be89c3c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c572c98e7bb290e8172f191083a044a982734fa7cffebab6bf881cfd6f1e8be
MD5 3b70ba6a7c763aea3298bf47d2c4b5b6
BLAKE2b-256 c1e9fe048d115c67aea7f0e2b30f3098b8f5c2b251916d072f3899ee5c12173d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c610d6ffd83728174d7230c22d794ac7a0606c8a016f9efb907f67122e87012d
MD5 bf18b2d8efae691581289c6b668f4e7b
BLAKE2b-256 f2b97095c35b5840d3c4e1c4ca496adccffaba64f84fa83957db33e8e9b11a12

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.2-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.5.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d7b55883577c7530c3a2864ec0110deab817d790921c81d768e8677743206174
MD5 012b4f1e4a88955d7b4840fbd854fbd9
BLAKE2b-256 0e26a184079d6614957b59ec65a061fddc4c3b195d19781c5a3d68fb71445c8c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b988cc17f48c47d12aa1aa45be073280b702b65de8a53bab3e93cd96abf769c
MD5 0cdf196639438440267d3fc670315145
BLAKE2b-256 597b1076151a411e50afaf81ff782e990f3a84660b5196df57106d89144bafc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ff9587f55b6f716ea023d8f7d25f8a8b5ad2151490118ed0adf13228a583944
MD5 c296e68ee6b9d02023f8a7ba0830e2c9
BLAKE2b-256 a2464eb96d47338e3a5ad3d4796a8dbb14f708d4c3d77b652fd573369ecfad5b

See more details on using hashes here.

Provenance

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