Electrothermal Coupling with an External Thermal Model
CellElectrical uses PyBaMM's isothermal electrochemistry and exposes heat generation
as an output. Wiring it to LumpedThermal creates a closed electrothermal feedback loop
directly in PathSim — useful for pack-level thermal networks or custom cooling models.
Model
LumpedThermal implements a single-node energy balance:
MATHDISPLAY0ENDMATH
CellElectrical outputs total heat generation [W], which LumpedThermal accepts
directly — no unit bridging needed.
Python
Loading...
/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html from .autonotebook import tqdm as notebook_tqdm
Simulation: 1 C Discharge with Electrothermal Feedback
Python
Loading...
18:22:06 - INFO - LOGGING (log: True) 18:22:06 - INFO - BLOCKS (total: 5, dynamic: 2, static: 3, eventful: 0) 18:22:06 - INFO - GRAPH (nodes: 5, edges: 7, alg. depth: 2, loop depth: 0, runtime: 0.140ms) 18:22:06 - INFO - STARTING -> TRANSIENT (Duration: 1800.00s) 18:22:18 - INFO - -------------------- 1% | 11.8s<18:33 | 0.17 it/s 18:22:27 - INFO - -------------------- 2% | 21.0s<10:57 | 0.20 it/s 18:22:33 - INFO - -------------------- 4% | 26.7s<09:00 | 0.19 it/s 18:22:37 - INFO - #------------------- 6% | 31.0s<05:52 | 0.20 it/s 18:22:42 - INFO - #------------------- 9% | 35.6s<03:58 | 0.21 it/s 18:22:47 - INFO - ##------------------ 13% | 41.1s<02:50 | 0.20 it/s 18:22:52 - INFO - ####---------------- 20% | 45.7s<01:38 | 0.21 it/s 18:22:56 - INFO - ######-------------- 32% | 49.9s<47.2s | 0.21 it/s 18:23:03 - INFO - ###########--------- 56% | 56.4s<20.3s | 0.20 it/s 18:23:06 - INFO - #################--- 88% | 59.7s<2.7s | 0.23 it/s 18:23:10 - INFO - #################### 100% | 01:03<--:-- | 0.24 it/s 18:23:10 - INFO - FINISHED -> TRANSIENT (total steps: 13, successful: 13, runtime: 63257.10 ms)
Python
Loading...
Effect of Cooling Conditions
Sweep of MATHINLINE0ENDMATH from adiabatic to liquid-cooled to show the impact on voltage and temperature.
Python
Loading...
18:23:11 - INFO - LOGGING (log: True) 18:23:11 - INFO - BLOCKS (total: 5, dynamic: 2, static: 3, eventful: 0) 18:23:11 - INFO - GRAPH (nodes: 5, edges: 7, alg. depth: 2, loop depth: 0, runtime: 0.134ms) 18:23:11 - INFO - STARTING -> TRANSIENT (Duration: 1800.00s) 18:23:24 - INFO - -------------------- 1% | 12.8s<19:04 | 0.16 it/s 18:23:33 - INFO - -------------------- 2% | 21.3s<08:24 | 0.24 it/s 18:23:34 - INFO - #------------------- 6% | 22.5s<43.7s | 1.2 it/s 18:23:34 - INFO - ####---------------- 20% | 23.2s<4.9s | 3.6 it/s 18:23:40 - INFO - ###########--------- 56% | 29.0s<3.5s | 2.0 it/s 18:23:42 - INFO - #################--- 88% | 30.4s<0.8s | 1.6 it/s 18:23:45 - INFO - #################### 100% | 33.9s<--:-- | 1.2 it/s 18:23:45 - INFO - FINISHED -> TRANSIENT (total steps: 13, successful: 13, runtime: 33894.33 ms) 18:23:46 - INFO - LOGGING (log: True) 18:23:46 - INFO - BLOCKS (total: 5, dynamic: 2, static: 3, eventful: 0) 18:23:46 - INFO - GRAPH (nodes: 5, edges: 7, alg. depth: 2, loop depth: 0, runtime: 0.133ms) 18:23:46 - INFO - STARTING -> TRANSIENT (Duration: 1800.00s) 18:23:51 - INFO - -------------------- 1% | 4.7s<02:43 | 1.1 it/s 18:23:56 - INFO - -------------------- 2% | 9.4s<03:10 | 0.77 it/s 18:23:57 - INFO - -------------------- 4% | 10.9s<02:29 | 0.74 it/s 18:24:00 - INFO - #------------------- 9% | 13.7s<01:06 | 0.81 it/s 18:24:03 - INFO - ##------------------ 13% | 16.4s<59.3s | 0.68 it/s 18:24:08 - INFO - ####---------------- 20% | 21.5s<55.9s | 0.54 it/s 18:24:13 - INFO - ######-------------- 32% | 26.9s<40.3s | 0.43 it/s 18:24:19 - INFO - ###########--------- 56% | 32.8s<18.0s | 0.35 it/s 18:24:22 - INFO - #################--- 88% | 35.4s<2.2s | 0.36 it/s 18:24:24 - INFO - #################### 100% | 37.3s<--:-- | 0.41 it/s 18:24:24 - INFO - FINISHED -> TRANSIENT (total steps: 13, successful: 13, runtime: 37323.93 ms) 18:24:24 - INFO - LOGGING (log: True) 18:24:24 - INFO - BLOCKS (total: 5, dynamic: 2, static: 3, eventful: 0) 18:24:24 - INFO - GRAPH (nodes: 5, edges: 7, alg. depth: 2, loop depth: 0, runtime: 0.116ms) 18:24:24 - INFO - STARTING -> TRANSIENT (Duration: 1800.00s) 18:24:33 - INFO - -------------------- 1% | 8.4s<12:43 | 0.25 it/s 18:24:38 - INFO - -------------------- 2% | 13.7s<05:52 | 0.39 it/s 18:24:41 - INFO - -------------------- 4% | 16.5s<04:37 | 0.38 it/s 18:24:46 - INFO - #------------------- 6% | 21.9s<04:25 | 0.32 it/s 18:24:49 - INFO - #------------------- 9% | 24.6s<02:35 | 0.34 it/s 18:24:50 - INFO - ##------------------ 13% | 25.8s<57.8s | 0.48 it/s 18:24:53 - INFO - ####---------------- 20% | 28.6s<44.7s | 0.44 it/s 18:24:55 - INFO - ######-------------- 32% | 30.3s<19.8s | 0.49 it/s 18:24:58 - INFO - ###########--------- 56% | 33.7s<9.5s | 0.43 it/s 18:25:02 - INFO - #################--- 88% | 37.6s<2.1s | 0.38 it/s 18:25:05 - INFO - #################### 100% | 41.1s<--:-- | 0.35 it/s 18:25:05 - INFO - FINISHED -> TRANSIENT (total steps: 13, successful: 13, runtime: 41069.24 ms)
Python
Loading...
Summary
CellElectrical+LumpedThermalform a closed electrothermal feedback loop; PathSim resolves the coupling at each step.CellElectricaloutputs total heat [W], which connects directly toLumpedThermal's input — no unit conversion needed.- Stronger cooling keeps the cell cooler and slightly raises the discharge voltage.
- For DAE models (e.g. DFN), see notebook 03.