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))
print("thermal_trace_keys:", [k for k in result.virtual_channels if k.startswith("T(")])
PY

Generate a plot with electrical/control channels plus switch thermal trace (T(M1)):

PYTHONPATH=build/python python3 examples/plot_buck_closed_loop_thermal_backend.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.5.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.5-cp313-cp313-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pulsim-0.6.5-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.5-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pulsim-0.6.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: pulsim-0.6.5.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.5.tar.gz
Algorithm Hash digest
SHA256 f93907eadce06dda7ebbb77554d177edd67bf0fe88795c8ffdf527ea7d87e99a
MD5 e3eb5dd4c3f1a5bcbcc815f4fb087470
BLAKE2b-256 2859747f620267f9d0621f44e6f13b46d2c471503ba0e986297bb819c278f9d7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7cc754a6e41ce0baa9b099f0cf1da4de4a141805a91a97657b40f7140060e730
MD5 83f8def2745e01737ab26f6cf0fb73eb
BLAKE2b-256 e6a872b86b6cb20e0da844b96611c1cc197e99290edd575793cb70850784e063

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b99834e0148a6a1a493e5e47159b9e41d1d883daad1746fe29cfb331bc9773b
MD5 ed72c893b45cfa3ff7f584c744c64b0a
BLAKE2b-256 2728e5e89f77c82c9a5e7d162ed62678ce89792df854121c12c8e20833efff26

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7453b0c75c933999716f3a21d79bdce139097dd0643401a415aec6e44eddcd84
MD5 5aa99495a90f8be65f2e30e0d61c6378
BLAKE2b-256 1508685a0e226d248e0a801d939ba3432315a24be35b4d82897bbd9925356ad6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7b01616c50cc8025a95185176489ed053b0b987a286c66d9b8c928c29b7921e0
MD5 3f938fc17f5a11fcd22e9152f23332db
BLAKE2b-256 9978ff14b5a1fa62218198dc8e2859d632a091cba93df5c512d2fa093fb0ed51

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb9ea0b981a9ed4002469479934c682dfa486be6633fd68f7dd3afc86d625170
MD5 fe9b0f6d77b5dcdba3d1e74024ca05b1
BLAKE2b-256 d87dfe6e0c4176e72c887c6b757898d09a5398e606b91e5a41c4ad870ccf49ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c76377aafd34b74c71711a7f10f94c30d4e331d12eea30ed5ccdf98224d25ab
MD5 b5f9ea79349849e8674ccca3a8885265
BLAKE2b-256 ca2ce313ba0eb346b7c622db83da4867ae360bb96daaa4c1f2c8cd0b87000090

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fb241a567d1d9dcb8326ce19c63f4ba0cc2cf54535f78a8400962bfb591ced3b
MD5 ec5886f1799e70ea8957126efd17bbc3
BLAKE2b-256 16b0aae6d2fa4d5abee0f338fb1226c8383d30c6dfe8cb8867fda6ae482e83a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c8b89b7219f8be6e8605fcf3be6ce62c360e3aeda2d3da2c5eed6e1bda7c17e
MD5 8d79a57e1f08fca42578b60223823fd3
BLAKE2b-256 b413adb7860aa8ca4405e9875d897e67c28e988e1b6fcfbbad8aa5f06fd21a2c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c81165213bf8cdaf30be5520c6e434acbe81c2eb017c8be4c16c4220eca2c9af
MD5 a37401179785c37a1177ace1a1946c47
BLAKE2b-256 290f75be4f1291d1be9b4a096a39d8c4aca77ba75e069372f8a82a0dd6c188bf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.6.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e2b9ce5e44e146834d7781c4dd178b43ccf3c40e5722643b2f63691822a7832a
MD5 9105a4b8f65890c836d4680d2d82afb9
BLAKE2b-256 a569a59047e5b809fa362edcd7393db307beed8679b150ec239f1c1eae5b99c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45ad62113d06897a9e3313c1b66dc5bb5eac384803aeee0ee72038c004df22c4
MD5 657dd448005fa6a535e942eb6b9c0bd0
BLAKE2b-256 4987481a2ef6bd28b6b95dac94ac5b54811985b231c53838eba7f351131a557c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.6.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 845a1bad3f8899174785630f50f1f2e1c48a4fed88200015e9a24ad1121449bd
MD5 d3157646d1808735d4b07048d6fecf55
BLAKE2b-256 ebb6dbe2c89975520b4a650f7411a41babf260fae3e7dd9934e0da7cb5ae794a

See more details on using hashes here.

Provenance

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