Skip to main content

High-performance circuit simulator for power electronics

Project description

PulsimCore

High-performance power-electronics simulation with a Python-first runtime.

Supported Product Surface

Pulsim is now Python-only for user-facing usage:

  • Supported: import pulsim APIs and YAML netlist workflows.
  • Not supported as product surface: legacy CLI, gRPC server/client docs, JSON netlist loading.
  • Core execution engine: unified v1 kernel.

See:

  • docs/user-guide.md
  • docs/migration-guide.md
  • openspec/changes/refactor-python-only-v1-hardening/tasks.md

Quick Start

1) Build local Python bindings

cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DPULSIM_BUILD_PYTHON=ON
cmake --build build -j

2) Run with Python package from local build

PYTHONPATH=build/python python3 - <<'PY'
import pulsim as ps

parser_opts = ps.YamlParserOptions()
parser = ps.YamlParser(parser_opts)
circuit, sim_opts = parser.load("benchmarks/circuits/rc_step.yaml")

sim_opts.newton_options.num_nodes = int(circuit.num_nodes())
sim_opts.newton_options.num_branches = int(circuit.num_branches())

sim = ps.Simulator(circuit, sim_opts)
result = sim.run_transient(circuit.initial_state())
print("success:", result.success, "steps:", result.total_steps)
PY

Benchmarks and Validation

# Benchmark matrix (Python runtime path)
PYTHONPATH=build/python python3 benchmarks/validation_matrix.py --output-dir benchmarks/matrix

# External parity (ngspice)
PYTHONPATH=build/python python3 benchmarks/benchmark_ngspice.py \
  --backend ngspice \
  --output-dir benchmarks/ngspice_out

# External parity (LTspice, explicit executable path required)
PYTHONPATH=build/python python3 benchmarks/benchmark_ngspice.py \
  --backend ltspice \
  --ltspice-exe "/Applications/LTspice.app/Contents/MacOS/LTspice" \
  --output-dir benchmarks/ltspice_out

# Tiered stress suite (A/B/C)
PYTHONPATH=build/python python3 benchmarks/stress_suite.py --output-dir benchmarks/stress_out

Documentation Site

Build docs locally:

python3 -m pip install -r docs/requirements.txt
mkdocs build --strict

Serve locally:

mkdocs serve

Versioned deploy:

  • Workflow: .github/workflows/docs.yml
  • Trigger: only when pushing version tags v* (example: v0.2.1)
  • Deploy mode: mike on gh-pages branch with version selector enabled
  • Old versions remain published and selectable in the docs UI

Notes

  • YAML schema is pulsim-v1.
  • Benchmark/parity artifacts are machine-readable (results.json, parity_results.json, stress_results.json).
  • For migration details (removed APIs and timeline), see docs/migration-guide.md.

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.3.3.tar.gz (3.0 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.3.3-cp313-cp313-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

pulsim-0.3.3-cp313-cp313-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.3.3-cp312-cp312-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

pulsim-0.3.3-cp312-cp312-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.3.3-cp311-cp311-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

pulsim-0.3.3-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.3.3-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.3.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

pulsim-0.3.3-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pulsim-0.3.3.tar.gz
Algorithm Hash digest
SHA256 cbf6dba0bf59fcc7e056c18247345cd7e68157df18dcc5161ab80a10f4133a51
MD5 226a40a7b5ccd35f99d77d01d88ce5cc
BLAKE2b-256 136250b7de26c95e212a29d0b3163ea0d5ab1f7e1fab82f0a615cea73158a9cf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.3.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.5 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.3.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5d3d1e29818120f1f64d28cf72f7f16972836999950531697b6935167685a2fc
MD5 3d1840de5b3a7a00abc465a8b9bb3793
BLAKE2b-256 62e2aeb4677357c123cb878e543b0279b3acbdfa87d33c3bac7cf8effe53abe0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 035f79ff7917b89d79f8967086aa50b28a6f5758cf4c6181f999ca3e2370b469
MD5 92bbe70cdc3436be0771de31f54351a4
BLAKE2b-256 ad70153f509e4dbce4acd277b2a3d1f837361389cdc8bd44ab0518a28b6ca9e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56fc77d6dce1161eb69fc63c7df4c3e3c8b1758baa2424281fc6eb16fef6d433
MD5 79fdcd14f7d89a6302ba6a35dd705062
BLAKE2b-256 0078cb1dec8e389a7600d673a80f574651f558a919fe21edb0e6c86a964ff83f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.3.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.5 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.3.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e7bb33a6d022059160042ed06ab1fb283664681b3ea7a1a2a3792c00df4e17b8
MD5 e69aaf4f3003959dfc75f2d45394218b
BLAKE2b-256 072de32f981725bde34b7ef0194c6ac71d1a9b91146e6ebcd85cfb76a5ff210c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f67d4cbee13f5775d8cafa6bf051feb024cef7cc6f583c3c747d75da3989b34
MD5 8a1d638b3581d37671564f9984c75a07
BLAKE2b-256 6c4e71f30a8962cd3e49d3b96e60a63d148348f96c61d5da8bcac5c69b3a4138

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49a8edd031e7b9969e9608f4180a6ae2e2c20435e7fc55683950c0034e169405
MD5 b06663550d8176428bd4459ccdb73b49
BLAKE2b-256 fa4875f9c4babe6dc2f1a4a6c21776ec45542179a801d6290deedcf58731a7dc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.3.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.5 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.3.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ac03f9848b6f2c7f81e62796a8878a9ee38fc6933708a827312c4255a70877a6
MD5 d2372a206c1f99137af3e07a14c7d18f
BLAKE2b-256 89afbe3bd7ac4a780c170556b48c27e6379a5f2abbfd33a9a1fbe68ef0249191

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3f57cb821ccc640a70453b855cb8d03ee5fe3dc31704ecbd57baaeaa34fe2e25
MD5 ea4117d7987519b7f2ba5d0f71002101
BLAKE2b-256 fb541c5f371cb87e26448c2aa72936f8708c4e1278e73eacad860bec61df1397

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a769593262ec12a9a5080a6c6a7f5e50d9cc055e55832246f7012e989591600
MD5 b06e45f6813b6f8471cbcc257bac7f3b
BLAKE2b-256 9930ae616293a57a52865361c5d4fad80a86a02f577d7788c16078d0dca84049

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.3.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.5 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.3.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 85b9466a50bebae05271a90ab530af91981d3668a1a6da1de8e97ee132c3dc62
MD5 9d099832908a927426389eb89625818f
BLAKE2b-256 77a0c98bc358e40b14b349fbd4ef5eab14b99017091a8e352eb044d92e41e9d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b0735267f072c4ed924e466fd146b1ac1e43ae46ef59164c356df0bb6a0b8eb
MD5 b9e7b0d69660f980aa166647e221d4ed
BLAKE2b-256 97745e3186ec08f7e706a09ef0591b7b0f196c5075e610afd0b4fdd12b0a032f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.3.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3d78689aa323f476f91726d4632e4c11e3297b146b8152f1df6c7a6a6da9153
MD5 b4107f8baf2eb6f32c96f482e36c45ad
BLAKE2b-256 d0f462f00bdb565e1362ae4f67e97d12fef4660bb2d07e0b673c2afee38ac7ba

See more details on using hashes here.

Provenance

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