Skip to main content
pybamm.ParameterValues holds all the numerical values that define a specific battery cell — geometry, material properties, transport coefficients, kinetic parameters, and more. Every parameter in PyBaMM carries SI units in its name.

Loading a built-in parameter set

PyBaMM ships with a collection of published parameter sets. Pass the name as a string:
You can also load from a dict or copy from another ParameterValues object:

Available parameter sets

Lithium-ion

Chen2020

LG M50 NMC/graphite cell. A widely used general-purpose parameter set.

Marquis2019

NMC/graphite cell from the DFN model derivation paper. Used in many PyBaMM examples.

OKane2022

Graphite/NMC cell with degradation parameters (SEI, lithium plating).

ORegan2022

NMC/graphite cell with thermal and mechanical parameters.

Ecker2015

Kokam NMC/graphite cell with full porous-electrode parameters.

Ai2020

NMC/graphite cell with mechanical parameters for stress-driven LAM.

Mohtat2020

NMC/graphite with aging parameters.

NCA_Kim2011

NCA/graphite cell.

Prada2013

LFP/graphite A123 cell.

Ramadass2004

Sony US18650 cell, one of the earliest complete DFN parameter sets.

Xu2019

NMC/graphite pouch cell.

Chen2020_composite

Composite graphite-SiOx/NMC cell (multi-phase negative electrode).

Half-cell parameter sets

Other chemistries

Exploring parameters

Updating parameters

Update individual values with dict-style assignment:

Custom parameter functions

Many parameters are functions (e.g. diffusivity as a function of concentration and temperature). Define them as Python callables:
The function arguments must use pybamm symbolic expressions so they can be differentiated and compiled.

Drive cycle (time-varying current)

Use an Interpolant to define a current from data:

BPX format

PyBaMM supports the Battery Parameter eXchange (BPX) format, a standardised JSON schema for battery parameters.
BPX support requires the optional bpx dependency: pip install pybamm[bpx]
Loading from a BPX file
Loading from a BPX dict object

Setting initial state of charge

You can set the initial lithium distribution to correspond to a target SOC:
Alternatively, set it before solving:

Input parameters

For parameter sweeps or sensitivity analysis, mark a parameter as an "[input]" to pass it at solve time without rebuilding the model: