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

Closed-Loop + Thermal Quickstart

Use the backend-ready closed-loop buck example:

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

parser = ps.YamlParser(ps.YamlParserOptions())
circuit, options = parser.load("examples/09_buck_closed_loop_loss_thermal_validation_backend.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("ok:", result.success)
print("max_temp:", result.thermal_summary.max_temperature)
print("components:", len(result.component_electrothermal))
PY

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.6.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: pulsim-0.6.3.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.3.tar.gz
Algorithm Hash digest
SHA256 9d85b2661b98d361ab1c6a9a2307a8d01ad5a58a066f5aa4fc8ee0c7c3f4f9c8
MD5 28eb9c72b8546b360f64c5944f331843
BLAKE2b-256 2c414c1deeaae8808fa93f4ee692e61e81bde52dca815990ba5f3bcfce565040

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.3-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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c807fb30a1e97888cca000ce13e02698243d633629fc03a76c0b54f620f204e8
MD5 48fa21af2af917d39b2f2a7353bec4cf
BLAKE2b-256 f30c997ec3641f7e8ab524120c140211dc8d521951652076497a68a5a2d79f5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 53d5c4306952d84c596d862d3eea2ea11c8dca0ea4075928f6936bd419d631f3
MD5 9791d4033166db9739fa6436084d6ffa
BLAKE2b-256 935c1d8a308e883fa274ab04b51e621d1e07aea68fa5b46d25175b5beb808126

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87537c7a19ad8160d694f4b226d05e9e5cacb60a984bafdfa03000a8028de860
MD5 6b831cc1cd86f85a7a10c448e5d4108e
BLAKE2b-256 aff050700149bad7a92d8deab00b22de9d89b5358aefc81652e2f2ec75f4050b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8e89ea9c93db87b622c8964fe6a041141ef2cb825e89e36697a398d8c29489d5
MD5 789e3545b26e90578cdd1408276b09d6
BLAKE2b-256 7c3cc5d00885085156dcea4d18d27eca5bf1f27433f999b187a7c13c98709c0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4355a08230276ea6df46c1c5995657cda18f423945fa7251340c6b2e25dbb7d9
MD5 010f88d23f42b19e7a9c0232a366183b
BLAKE2b-256 533762233d2177b4f6872b5cf03078c932c69eac0bbe79676df4c6fba70ead5b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 144dc2fca3e63c87ae2cad2882d383745cdb691584f602dd2a3a64bacf056f5b
MD5 084d73634c5ff2baf52bb3359d8defd0
BLAKE2b-256 6f5bc13f0918ec2430012c95a3016b5f17160717233e5b0a25243df25d6cfbdf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.3-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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ac0861f0976a621892d34091ed5405254dd57d555c49cb7ad96b5be446b0f943
MD5 a44f6fdf0a6148758e5eba618eafd45e
BLAKE2b-256 a624675641199c7d6927a90aa6cde3fffc057dd6c6f655633d55da2a5de3c96c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c2a97b8fc2aa3afb99295e619d66cb877d1f04118a7e38645ad2d101ce0bbe6
MD5 2e634acc1dd43971944de44e03f333a2
BLAKE2b-256 5595d77107438a7132db562fa2453a4bbe16624cb918791553c175999de922c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f2e9539206096b34ce6ac1bb6d448a762ed5030f124d93fac05184ecd692835
MD5 31d1df05e1e44879c5561c2fc88de286
BLAKE2b-256 e1105f8acf6daec91dec115b0a97badd308620bbd366f23a026ba9b7b5838991

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 378d20adf039b1736e8a86ab0f30d87347e5d1d3378457322dfd2048537b9349
MD5 c1aac66fb3b7c6ab1a60c9cf3798d1fb
BLAKE2b-256 7c2a88764bf0a19692a65b98b48237d169f4b8f914ca5ad4d6a29121d3fab234

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd3e16a382629d8c283575704653ac24393aafafd9034d1dd1bc21d267705470
MD5 30f9a8bc4ef1c253a991ef01b8e39dcd
BLAKE2b-256 2acd3f48f58f19bc73e673cb09113f269e48a9056aa9077ff6a49eeeb842de91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a74fc4125415c5013e9754c09d67cc892d78410f365760463a599650117cf157
MD5 5767d0e9d4651d7f503b3cd3a9def191
BLAKE2b-256 f937ef6bc77653a113939689cc196dc27ae1d01681530a54dc2efc4957775aa4

See more details on using hashes here.

Provenance

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