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 semver tags vX.Y.Z (example: v0.4.1)
  • Framework: MkDocs Material + mike
  • Deploy mode: mike on gh-pages branch with version selector enabled (latest alias)
  • 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.5.0.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.0-cp313-cp313-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.5.0-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.0-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pulsim-0.5.0-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.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.5.0-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.0-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.0.tar.gz.

File metadata

  • Download URL: pulsim-0.5.0.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.0.tar.gz
Algorithm Hash digest
SHA256 2879cfaae40e2663678f1eeea266dca69cd14811f808cab5354080067c2036dc
MD5 dbd569fb459b0c172dc6b5f9762a60ed
BLAKE2b-256 77768b8bb9590f0cfc58d75779ada4509334266d83f0db2315e71cf73d60491f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f957379ab5e86e38e63010ea9a4870915f96eb4911b9fe60ae9cae6fd5a76d11
MD5 235bac5990b8377ed00aa9f5c17c035b
BLAKE2b-256 c4e77c6e921e3a9815624627f4da6d36a5d212be9ac1f16a843dac73ea084f62

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d07b384288225df20367a825f3a8a33e2bda43ac4cdebb096828f49ef96e6355
MD5 e4a5076aa4c4494199253edeb118bdf7
BLAKE2b-256 e9ffabea864418d428cd11cb126741cc45de1329c9892ada228367b9bce8a953

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b7de0965ec51e3c31e19cac91ba8a440886696ced7620dba5dcab1f38c484d5
MD5 7bb8891f0db625d5b01f3dcb7126418f
BLAKE2b-256 19acc0f87591847447142448d1c21a50632a891472448c2de78ab5abff525a4b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 94044025f24be1cbd4f803dccd410fe27bf1f7fb5007c54af1cf33b8c552f435
MD5 24d2704fe638717cbb848648dfd5fb6b
BLAKE2b-256 d13174bf345b9a5399d641fd70d3201233399fd9bc70288f112c4824f34745c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3888f0164645ce2e8a9f305e9e32643ac16b4cf6368e1cf07e0154613a70aa71
MD5 7710e80c443a9cb6f0d7d8d0c584f895
BLAKE2b-256 73dc2719d42440343a051fbae920413843a17f552897df00755e1e57e5f66bf5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b4f71dc8ab189cd287dfd9f1622ed7091c991251fceea15fb250c964828a422
MD5 eef090fe3ca96675cc6370ad57c865e0
BLAKE2b-256 e91adfe21ad7b8019f224f61418fcc877716831b443ffdf92b2ebc4fe7ddb776

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 daa422a63badc2def0f0af00758aaeedb87c9267a98b6467886ec3ab001e89ff
MD5 951b15a96c11d9330822715051c80588
BLAKE2b-256 90b62ac4a21d30120cf88afcfcb4a1366637cf4557b6b4799986b98a42fd8b63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e1c9194cd87260562cdcd108cad017cb4aa8e7cb0136659a1c4bf37a206ca65
MD5 7537b1efda0645779c83cdc7df785d80
BLAKE2b-256 ec242f4754ffb797c12972c63164ac2308d22fa82415d8b3149a14a17d699a5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a764de099859d364e5e1d8ab49c7af9bd220370addd6cd5f2ab17325c964371
MD5 fe8735b8029cd645a2f00d514f86af66
BLAKE2b-256 decb8d6afe511bdf1b651c61ab955ebc14b9cdaa24e6dcc3955773137a1b0128

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 83ce978a7b0c5364710e788563ba28bf7bd21672dbde9f1d34cb1a799b324fe8
MD5 5e88bb965441e88db47c1b231933c768
BLAKE2b-256 91df3167fce00093871183ab5c9586128762a2d528ad550aea375b4eb0134183

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36e5bc221726a3895d6c3a3be205f3e2af24e436942e1bed648b11abc5c35c9b
MD5 2619866368fa9c43a4d6ae8b512d9976
BLAKE2b-256 9e8a930c42a48468623fd68d91333dbb385f8f36f219a7acf06951abf0e3535c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66de0db632055b0239e81442c73fda648e66d2ee0af375d55c84ec291cfcf4c5
MD5 0c9d478d8db5d5d789865b6e53c5ec12
BLAKE2b-256 a2a94e6b70652843be247eda1f769123a8830ad0d782c23fedbd4ec8cbe24a70

See more details on using hashes here.

Provenance

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