Skip to main content

PathSim-Batt Logo

Battery simulation blocks for PathSim

PyPI License

Documentation • PathSim Homepage • GitHub


PathSim-Batt extends the PathSim simulation framework with battery cell blocks backed by PyBaMM. All blocks follow the standard PathSim interface and can be wired into any simulation diagram.

Install

pip install pathsim-batt

Quick start

import pybamm
from pathsim import Connection, Simulation
from pathsim.blocks import Constant
from pathsim.solvers import ESDIRK43
from pathsim_batt import CellElectrothermal

cell = CellElectrothermal(initial_soc=1.0)   # defaults: SPMe + Chen2020
I_src = Constant(5.0)                         # 5 A discharge
T_src = Constant(298.15)                      # 25 °C ambient

sim = Simulation(
    blocks=[I_src, T_src, cell],
    connections=[Connection(I_src, cell["I"]), Connection(T_src, cell["T_amb"])],
    dt=1.0,
    Solver=ESDIRK43,
)
sim.run(3600)
print(f"V = {cell.outputs[0]:.3f} V  T = {cell.outputs[1]:.1f} K  SOC = {cell.outputs[3]:.3f}")

Choosing a block

Two decisions determine the right block: thermal ownership and integration strategy.

Block Thermal Strategy Use when
CellElectrothermal PyBaMM (internal) Monolithic ODE Single cell, coupled electro-thermal, ODE model
CellElectrical + LumpedThermal PathSim (external) Monolithic ODE Pack-level, custom cooling, ODE model
CellCoSimElectrothermal PyBaMM (internal) Co-simulation DAE models (DFN, lead_acid.Full), mixed solvers
CellCoSimElectrical + LumpedThermal PathSim (external) Co-simulation DAE models with external thermal network

LumpedThermal is a single-node thermal block (mass, Cp, UA, T0) that receives Q_dot from a CellElectrical block and feeds back cell temperature.

PyBaMM model compatibility

Thermal sub-model and heat-source options are injected automatically — pass the bare model class with no options=.

PyBaMM model Default parameter set CellElectrical CellElectrothermal CellCoSimElectrical CellCoSimElectrothermal
lithium_ion.SPM Chen2020 ✅ ✅ ✅ ✅
lithium_ion.SPMe Chen2020 ✅ ✅ ✅ ✅
lithium_ion.DFN Chen2020 ❌ DAE ❌ DAE ✅ ✅
lead_acid.LOQS Sulzer2019 ✅ ¹ ✅ ¹ ✅ ² ✅ ²
lead_acid.Full Sulzer2019 ❌ DAE ❌ DAE ✅ ✅
equivalent_circuit.Thevenin ECM_Example ✅ ✅ ✅ ³ ✅ ³

¹ Not on PyBaMM 26.7 — there LOQS is a DAE, use a CellCoSim* block instead. It is an ODE again from 26.8 on.

² PyBaMM < 26.7 only — pass pybamm_solver=pybamm.CasadiSolver(mode="safe"); the default IDAKLUSolver errors on LOQS. Fixed in 26.7.

³ initial_soc=1.0 fails because PyBaMM requires event values to be strictly positive at t=0; the "Maximum SoC" event is zero exactly at full charge. Any value below 1.0 (e.g. initial_soc=0.99) works.

import pybamm
from pathsim_batt import CellElectrothermal, CellCoSimElectrical

# Custom chemistry / parameter set
cell = CellElectrothermal(
    model=pybamm.lithium_ion.SPMe(),
    parameter_values=pybamm.ParameterValues("Mohtat2020"),
)

# Lead-acid via co-simulation (DAE model)
cell = CellCoSimElectrical(
    model=pybamm.lead_acid.Full(),
    parameter_values=pybamm.ParameterValues("Sulzer2019"),
    dt=1.0,
)

# Equivalent circuit model
cell = CellElectrical(
    model=pybamm.equivalent_circuit.Thevenin(),
    parameter_values=pybamm.ParameterValues("ECM_Example"),
    initial_soc=0.9,
)

License

MIT

Metadata

Release files for pathsim-batt 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pathsim-batt 0.4.0
File Size Uploaded
pathsim_batt-0.4.0.tar.gz 50.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pathsim-batt 0.4.0
File Interpreter ABI Platform
pathsim_batt-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 64.1 kB

Release files / pathsim_batt-0.4.0.tar.gz

Download URL pathsim_batt-0.4.0.tar.gz
Size 50.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4165df539d8d0d3b6670ceddc858cb7aca258f30154e5ac47aed2ea8fa03d914
BLAKE2b-256 checksum
How to use checksums
23a2af8cae1581dbf70798e2fef85128c761c5833515c9253c07b9a5ad12bf0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / pathsim_batt-0.4.0-py3-none-any.whl

Download URL pathsim_batt-0.4.0-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
234fe65fab48ebab15ad35d166b8cfa04e6c507a1a996c1b384f538161c07e7d
BLAKE2b-256 checksum
How to use checksums
4ab816608dd6a7376bc88c3b24f5ed79c8438016499748b0d1804b99280e9d49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page