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.4.1.tar.gz (4.4 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.4.1-cp313-cp313-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

pulsim-0.4.1-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.4.1-cp312-cp312-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

pulsim-0.4.1-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.4.1-cp311-cp311-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

pulsim-0.4.1-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.4.1-cp310-cp310-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

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

pulsim-0.4.1-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pulsim-0.4.1.tar.gz
Algorithm Hash digest
SHA256 5fcbc9304127c8de3a4ff039341554fbdef1544f8bad74cfbb35ab54a373c601
MD5 117d14f94bfb75892b711353a1897488
BLAKE2b-256 4348bedc2fbe89639ce771e8b850e02fcbc53197509cb1ea8043dd9d402abbbe

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.4.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.6 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.4.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7495ffeba6f314e55ae0110b6590860b3adf91cb368270ff07257e7f94388894
MD5 1e0dec81dc2299de7959fd0c22549200
BLAKE2b-256 321a002c556b9093c5207d09a146b84b52fca87cceaff1921ffbe97d623f271b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f4381176333e48d077bdb4f62a3ae898367efe5f4a00deb42cc993cd0b933a1
MD5 8fe52c51fd673df9088e863f0c281790
BLAKE2b-256 9aa6a51eb23b1c870d56194feae2903c9e46438a8cd3939e735e9defff820458

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 615bf1e6ee858455c7391334143db1430aed35907658a4289deb8c8d02b6f46e
MD5 051b291e5a86354beaba3349f43c7af8
BLAKE2b-256 e51e93ae562dd19b66c0a1f17bf79b13289f7d1f9de149aa8dd72a6dd3815e86

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.4.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.6 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.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f1fd1676d6e3b7514c36b4f410847a801a8498aac69ecc03ff8d4595ce5c3f69
MD5 b00d19700bba65ae4711ceb6f5eede0a
BLAKE2b-256 e27c801914ae97b219730653f2e599db408b2dd2f2d353f3575771a29e329ec9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df84477793855d5319cc8be457d6cd1ae7039377da99533410f5ac959859f381
MD5 04fead31146e39dd41b29dd45bbf12c0
BLAKE2b-256 b4ec3142f3737c4763763bf8670b114ad247ecae93b2d91f237d3dd46d8f0a9d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d76b09c161e61b0d937bdeb7396c54315cc94cd6a950ad354339471553c1319
MD5 784073abaf95e820700a4d021acffa32
BLAKE2b-256 80c530c0a208a660acdef0aae389b324dd250797079d6ece06c86d33b9a69529

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.4.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.6 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.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1979240dbe3ba12548566a6af75c67fcc27f668c597f44d3141caec19d73e974
MD5 d83ba8dc6aaa69b45e3e078ffb978caa
BLAKE2b-256 5591cd1955b85a701010514d4abce8df458c3237415dc699b95174e62d1fc6e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1e7a564577a73b976a72a51d77b24f6247dfecc57beecc85604f1135c764553
MD5 f995c98d6894b695d09c840058bb3259
BLAKE2b-256 93e05fb432f1861b8622e1a100bcbd11d0e37a8fd196b629ab506a25e6817da2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b58ad8c755048c19a86c85f7504eef3cf214b8179e64ceb10bacc82d4a66c101
MD5 434b7bbf66bc86f6e088a8fccabb1a37
BLAKE2b-256 3666d1ae46c4d40acaad5244e4709fd8262ca99b63487e307eadcb9ebd4e0b84

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.4.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.6 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.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4fc290454b1075f2d49d5322555cb09f7ea44195da3429d10cf7e8446c2a4777
MD5 edbffbd44ebdc678d27a1a3268f9638e
BLAKE2b-256 f90cd69dad08ae6cfed039861297d5e2939600c0728106f4fc40162732dc6e58

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa1ea23502cdf983ee3418ea7a6929ec0e6d271a198ba3c218acdfc9c58d1d03
MD5 ce4c8325eda074c53b7036e1076b89e8
BLAKE2b-256 13793078fc9a1fb087e931ff339879c23e3521eb90ef24704e495f55def381ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b762d2f7786c2899ec6d539957ac3b3deca53a4f89ba37062964acd01aed9d3
MD5 98c09afa43593255e2a7a31ecc6b389d
BLAKE2b-256 8b25e865b82e4de3f39e5f7fba4ecd5d68be8f61dbd3b1e102b7063c11110c9a

See more details on using hashes here.

Provenance

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