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

Uploaded CPython 3.13Windows x86-64

pulsim-0.6.1-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.1-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.6.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.6.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: pulsim-0.6.1.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.1.tar.gz
Algorithm Hash digest
SHA256 f83aa554ff481b349fb02bf22a50b887b510f578a87926f06c0885bdeee1de58
MD5 d3041d94c688033249e593676ce3020d
BLAKE2b-256 045462e5df3bfd4a6c466157a03744373ce1b492c9b643f98d97a75af86cc1cb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d96d059cfa12162fbf35c828c7f803c00c09017dd2776bce294830bf18a20c4a
MD5 56754d5b44f362a5de517af66a65940b
BLAKE2b-256 98ed116259a52c23df0a14e00b6009019f7882882585431caa70f0db9c5fe6c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6ba13e49cc3bcbe4c6f1e0eaeed17ae9537dfaab3d398af20a915bed5c5a483
MD5 e64160ee9de18cd5fcc92e60f8ea2e53
BLAKE2b-256 265d4b7b007ec6aea6090fe09cbc15204ab1d4779a0d8aab54c58c64be3cc247

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2272666431fb174adc263a66252a8a645046c5cc4dd3c53db622f509d4aef848
MD5 0ddef28228c89f2cb4ae57df52787024
BLAKE2b-256 540342c2dc35f2357fbf93b53bb5861db2559590e922d7252c3684e2cbed61f2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7883f62957490685e43b9daa539a9777f6bf8ea0bc2cc9998172ad1e6bcdae0e
MD5 e92f813089b00624f5df9bfa6ff80d5b
BLAKE2b-256 690aed76404f1367560e6b76766886ee496d9e3556958a21c22a7a645d9abdd5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0a48a04f05875ff31ce23c65c97eb107b81d0463b77b09d71386ed47bfc1c1cf
MD5 0ee50c774f75005d690bf0572e2355e8
BLAKE2b-256 6d71edbbe343c6ab2bb87aef12714b175e71bf22b31a5c95c47c428011356019

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d5066ac2a6ed0761c75b4d83056f1bb57403227cfdb83ee7750d88e3f0c6e4b
MD5 3a5e141fc187f40b1b379fe1d43341e8
BLAKE2b-256 82d6a9b92a594d37bd6d03e3c49d0525dae8a4dc6bca8e435993e99a5270ad11

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d4f6e10a74511fd6f8e0fc8cd34018ed55c500acf9abc057d9c5f01827f6d116
MD5 4a3b5e72683853d25b64de4a49809155
BLAKE2b-256 493a2c4482556a2d7aea35bb80b5c05d3b55f21818dfae73a46c1bceeb150d8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd4b48d4b5166fb48c3ed657dd6e992d37c501f5a2ae1ce165da4be664974c5b
MD5 6b824fed2a4a00369f82b76542c68acf
BLAKE2b-256 ab5e913e472ee53ff32dcf82862dfc5343a60eb8684808e96b5c38be1c948388

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7de9bf3eeb474562e64ed138a19e583d1a7f0e1c0c8a39f01a7ec3ee2740043
MD5 ee458e4cca55c7563169cf9c4cd5f9b8
BLAKE2b-256 82028c2a96f26766c36ae73aba3e9851d604b7a7265445c74671a38ec0310118

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 800e79f9a6d50935994c71b9044ff5234a60957a0de9d407fdda4cab1fb21d62
MD5 9b50b074e26311fd9b89d1533b60d373
BLAKE2b-256 73f752788435bf6b44b5def020d056fe23981a50ff691074bcc269991e014bfa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3099a6d2b959faeea54a40c39dc6fccbbb81f9639d8bff0aa54eb6b2b483d6b
MD5 f9b9d7cb35e53780e5efeb9f068eaa4f
BLAKE2b-256 4485f9f744049b85114aa31c180d95c286fb55167b700333868715ba174ad371

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b8bd83bf99d821fb2bfba64497ba14de2fde9d77eddf501572633a387e5ad6f
MD5 9f99842f621135e11d308b3f03be0d7b
BLAKE2b-256 3b1d03a9784e19345b0605920409b9586294a6c442a4529054407143312c42f0

See more details on using hashes here.

Provenance

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