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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.5.1-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.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.5.1.tar.gz.

File metadata

  • Download URL: pulsim-0.5.1.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.1.tar.gz
Algorithm Hash digest
SHA256 94f2b8292cd478955b8b12222a72b4cb895c7133baeae697eeb542f3679440b2
MD5 a9beba81c0fb4bb881bcab657e726ebf
BLAKE2b-256 d98eeabd2c27e73c2b64559024525224447f49d67fc748c28cf54c6a01bf5adc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.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.5.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f9c81dd5d3e043ef8333931b3bc17d22f39922b4f460679dafc005f25aacd814
MD5 a8dac2efdf5db2ee51a7dc85ef8b3cfc
BLAKE2b-256 338dc43d60a4b1298122a4f92bd96ae6830ccd55f9d9101185fb50894fd76871

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e12f0d4f284e644f23004ec84263e101f82f42f461b5a9cc75402945f99dd51
MD5 83fa4c1fd167a08f6f22b183c6ae9cc5
BLAKE2b-256 52133cb49b72f6afcbf1a6d8c391b8105d4802dd3f9437760566b691dbf76c7a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df06450904cb449a1dfe9ad6a43cf9e353ce9c7e19ceaa9120782cb9102619fd
MD5 5697b1cfed0c5ca96470da83f177d7fb
BLAKE2b-256 16c1d269b49568272bf1b15b8008a8c844a95aaea8d9dbbe65b98c5a0f17d421

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.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.5.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fb4e88ac32f5e7c4165b51dcc3a05f0809647ee43f643c6d3393a2fa2039a793
MD5 424743b314fe3176873fa34cc5c4f39e
BLAKE2b-256 472a0ad22b34ed716c7c8a8959ce592e7605b6324783b16fe45dca9180a25118

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13b4d7eda3f723d885112e676fba8f48c09fd3b6e7ddb48a5d5bc3e451b70f7f
MD5 6a8db3bc3aff864ad27f5f2c62e8f952
BLAKE2b-256 b97fded6bdff1e103af492382d373f66e96c653ef866374e7f3c76ddc129d0f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf660b120d431ff2634469d005f08eda9a421ae31c407c91429c9f616f91ad3f
MD5 83728570d6810955c4aa150281cf0dc2
BLAKE2b-256 3a25a23a310badfdf5736d106e10dcd5c9e4a1c8f7905e2ab19324b1a41f4106

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.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.5.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cba3c5ce287282d83e1c7a2367d5074e44f627c04a7a257f5fdb10577fae903a
MD5 a2a8aae209f10abe6960813459a9f046
BLAKE2b-256 9c148a4f581a045203e7bf507f2a56d2eeff082ca2887a0cf6572b3b42e32c41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c37a4815289d33dce2ae3b3af82e8c4e78f9c3f2ffc3c5868fa0dbce00dfc6f2
MD5 95c51b35ba4677e69a1d050f6f7f7e48
BLAKE2b-256 6d02c3c6082bdb2a0ee1e5d4442da6be052061305d3faeecd886c6ee9451edf9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48b663335a038559bd3d8b03123585c037c5a65c4539ec8271b03f6940fca4a6
MD5 4c21fd16dc8d15f365374c1aca1d38a1
BLAKE2b-256 53bd9ceb335830093ba9bd84253bebc356cac25b37cf032da05e6888dcce703d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.5.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.5.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 aca230bda5b63905a2c55446f2e21f44585e4947ee441bdcbcfb965df54788f0
MD5 2ac9b32749af0a627c6a474601f201a0
BLAKE2b-256 c6ff2b3204b23ae50473a585677f657a8cc11a3289951aa2fe3a211be37fe93e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b5038c6c351982679339b49188543441b97464c95ff44b0ad4a04d6b9878cbcc
MD5 896635c9db78dc1603bb5149ed31cc1a
BLAKE2b-256 9a0c088bd3de141844f0cea682403c58cc4c4875fdabd4a50657ffe1f80d53d7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.5.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 063295857985fa9986a1342b902bcf0d574493fa949220c6d4813623bc98a532
MD5 a6f96c89945c4bcee75877e609791f45
BLAKE2b-256 ddc97fdeaf502e526e065a08095efc665675ba48da2226a0e4d5d9fa039b0685

See more details on using hashes here.

Provenance

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