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.10.0.tar.gz (23.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.10.0-cp313-cp313-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.10.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pulsim-0.10.0-cp313-cp313-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.10.0-cp312-cp312-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.10.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pulsim-0.10.0-cp312-cp312-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.10.0-cp311-cp311-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.10.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pulsim-0.10.0-cp311-cp311-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.10.0-cp310-cp310-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.10.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

pulsim-0.10.0-cp310-cp310-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pulsim-0.10.0.tar.gz
Algorithm Hash digest
SHA256 7747f71b69bd0ccd56a7a66a435566b14686673436b53b69067731d6dbca1813
MD5 8664b96aefec3cad2052f7579cef1256
BLAKE2b-256 a1965fd6989114b1ba05f7470fcc0a6940f4452625381708f552c3d62ebda2be

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.10.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.0 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.10.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b98d17d6462b70e048d84aa11063b218cae1d3b426e43e50ea4089ef2a1162c7
MD5 711b871fbaa925ed29f0aeba70070fd6
BLAKE2b-256 8c1e8b964b9e407712b6c698b668d2b6edd0b8e5d33a039b72734fe45243006d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 329fbab73275c1263335ab7c59db96fb8ecf3177070e24f22f9923aa9382abf3
MD5 2bb10afc879c072ac63ab81946ad71b7
BLAKE2b-256 93aa25cc6f646edaec504d93319c0844d2964385d81947348bf0b4f252f34082

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17b421e16f6049716e625a8f8c80d83eb21906010c5da15a185aab2415faf70e
MD5 ae70836abfac36ad4a65a1ddd991eaae
BLAKE2b-256 c7518b89f5deffb00b5cdd01beb99a90a24f5c819db3618a9da8aba4b040870d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.10.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.0 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.10.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 36d621792996b7506d5763b18acf8d9115049813344f6f8ab3f052265f68188e
MD5 d23211681da734171f1d5bf44925a5e7
BLAKE2b-256 f09d50dbf52667af9870b9a2f71c838382deced6db50a6db4af963f3f9ae952f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d69b0fa739ca934885be6d30cd398b26eef1728d410ab24ec96438fcfd4ab3a4
MD5 a424def79f3943458cb25c7016c89261
BLAKE2b-256 6a6782d335987ef3fb74002ace88f93aec1f94dfcb95b7a590ddf0cbefa8f906

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8296e07e066de0ac626298be834bc9c9d02f3e3a291473193d00996d2d9854e4
MD5 a2581a1c91f4988817bc307d6ebeab4d
BLAKE2b-256 421c6104f24d329e7e58cfceb0a3d11a77e59f78b4fbbdfe6e58fc563a7c55c1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.10.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.0 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.10.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6d15fde33a5f16b8b27d6c938d898d57f21d6beadd659cebc046efa41487e80f
MD5 b68c68ec61d6e13d2bae173651ec4f6b
BLAKE2b-256 02a746a6c63b877e87206a6feeac1dc9a594983707a85776c8f4794a8a0a4ee5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e842976fd804480f302ae890f657b27695eb27fdf94b67c637a761370dfb0725
MD5 80600c0d9c39c39ce469a387c043a763
BLAKE2b-256 b8b09106676267827544782366e7c2491aa462c849d2254f7a916dd930129871

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1921fb921c18ae88f3267f815abc411fcf69e9376554fc6150b6d49ad4acad84
MD5 28f8e8249b4b394c1bc19b4dea6c9428
BLAKE2b-256 d77cfda565d45e112de6f45f7b8ba6086b1b15ba4d0191309d72913f3d39493d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.10.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.0 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.10.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bb98a75e990b3148d471a0bdb9c79d1e87caadb4a08ff4a9d7bcefcf209de516
MD5 700ab49b5781b018db24579dd978e32f
BLAKE2b-256 de1010017968f2fc30d961db808870d864d3c6aa2e37ebc60666deb587cfd4c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da9f920476e6fa45fa2e81f35c9dfe4bac27ec534652c10228a8d9e21209f943
MD5 ea7c8614c33b41a7941298f85b732b9b
BLAKE2b-256 5f055dc00c486a17ec84550100afc2face20b1d21e100767f9f1eb60124eaae7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.10.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c734ed17d5554d4a2c3a4ff6af6eb851e1776ee6d97e804bbba0bacf3a4f74ba
MD5 8c0b9d8e924b3ab5e408f80be5d25056
BLAKE2b-256 f7aba2fa1a2f1e8647d5ddfbc2075b58642b5d634a6d2a81e9729e698cdd5077

See more details on using hashes here.

Provenance

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