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.7.5.tar.gz (5.6 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.7.5-cp313-cp313-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.13Windows x86-64

pulsim-0.7.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

pulsim-0.7.5-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pulsim-0.7.5-cp312-cp312-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.12Windows x86-64

pulsim-0.7.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

pulsim-0.7.5-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pulsim-0.7.5-cp311-cp311-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.11Windows x86-64

pulsim-0.7.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

pulsim-0.7.5-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pulsim-0.7.5-cp310-cp310-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pulsim-0.7.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

pulsim-0.7.5-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pulsim-0.7.5.tar.gz
Algorithm Hash digest
SHA256 f1f9dda86b34c5605c68fef55a919fb82e1a882cf3d2ba94eb5f82327d47da8f
MD5 cb4386b415caff1595102f98f7aeff57
BLAKE2b-256 063ec00818750f4fed0dd5170cfda8bc2c85d2b87d9b218b9e236d632f9ccbdf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.7.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6f53aea1c555e75dc40c78143e58caa4bc1101e1647bb59a834d72ee8f5e6cc8
MD5 46f6136a1c7ee0614e5ab014094d088d
BLAKE2b-256 2d1a2749ff0030bcad3f03dc7793e580d13744b64f1b5026806e2a6bec87f15d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83999d106deb774cdce473697164d4681653451efc5de9e5cf1faeffe7ccd8bc
MD5 b7eb15bcb7a17964a1f1acafe0f039cb
BLAKE2b-256 edd777a0f320aee18046f0b81d592bf3b69eaa49a62bb12645c46528bc7f547a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01f10c0cd09ebdc89e90693c4ff40933f413dbe51f13978d620341371e30d76f
MD5 0ad501902ef249c32f8e5d885bc3777d
BLAKE2b-256 d161771193222b4a433ea0f2ca6cea9f26e779c520e6a5b1e593b5e84d7c6cee

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.7.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 03fc046388e003ea6eb6ff8972b22d9d34cc29a2a837fee0d48f7cf07b0f485a
MD5 c0bc11eb24f1a239c7cb1a3beb4bfaf5
BLAKE2b-256 0e8c26ab7b023fd4d95ff907105dfbfa82b8ada2e05ac6291cb97f321120beb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6bacc57e7f5d8a651cbab6e6079165311d7714956d6e2c90a3aba5960b0e782
MD5 8ae36f4dcc977e3746d956a74060ccb5
BLAKE2b-256 789a09e94e179b10bc09557429fb890eca8f9deef9e64d60accaa4f30ec68812

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c802155d3a91155f86ac2a1d570beee1a60cf2504a8b895bbcce7280ac0b0646
MD5 17533d8b6c811250e76c20dcfecd1409
BLAKE2b-256 2baadc2c4a98f3e8369094c401614ac95c8a5be80f56236f93e3d874b7912111

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.7.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c49189d75f4f21fef1bf9a5875e39ca10732de7fffff0d28ccb21e2710bae950
MD5 26c02f0001f71e0d9d4c6cee2a865e75
BLAKE2b-256 f468cecdfa23a4640a984273a4971a81f6acc1bf340e50c70a00dcaff5a1b26e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 02e1ae83b5410fd0b83218c493023abb4ee4d52fb2b402523101808e296f1b1c
MD5 cfcb724333c5e315eb3979cb697a43da
BLAKE2b-256 e36c2906e9b01297c235909e59162e8a360e107568abb7987b2f0dbbdd2cd03e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f440f34c676d5e0cbf783172df3ca34821f15a9622b7f5c0bdfc489bc7f5548b
MD5 01bae87c5f440eb23e5e5a38a52d9bc6
BLAKE2b-256 17c7296118376ba3201d46137594ad8e0db4dc2504c0258114b563147c8c8e52

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pulsim-0.7.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.7.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 49cf3ace0fab75b6a8e036c0e86b51143628b844e7b17688caa5aaad640cd237
MD5 5165661225459d41a673d45740ea380f
BLAKE2b-256 5bd796454a034ee3a4c75aa4c8e5d8c9eedb9be7c965671c158ad5da57179a35

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e971372c1eb4f406e5ccacde3f5001b6ae7518c155e7c5b165b8f10600143b2c
MD5 f0b3eabf2ea6fd7f10c614a25e8b5df0
BLAKE2b-256 2bc519036a9929d782c6d94d99f0891f45a23433cef74bcd93d5f735372e8781

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pulsim-0.7.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d3cdc9225e8809af2c1859bfaad0dc7a23641b8e96a4a408361d4c57c7a1205
MD5 df3a6e2952c28de9ed9bef3aa93aeca0
BLAKE2b-256 4052df354da6c6f35a127609e145341250e6e4890a511cdc6f10c5c51ef9ce02

See more details on using hashes here.

Provenance

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