Releases: pybamm-team/PyBaMM
Releases · pybamm-team/PyBaMM
v22.7
Features
- Moved general code about submodels to
BaseModel
instead ofBaseBatteryModel
, making it easier to build custom models from submodels. (#2169) - Events can now be plotted as a regular variable (under the name "Event: event_name", e.g. "Event: Minimum voltage [V]") (#2158)
- Added example showing how to print whether a model is compatible with a parameter set (#2112)
- Added SEI growth on cracks (#2104)
- Added Arrhenius temperature dependence of SEI growth (#2104)
- The "Inner SEI reaction proportion" parameter actually gets used now (#2104)
- New OKane2022 parameter set replaces Chen2020_plating (#2104)
- SEI growth, lithium plating and porosity change can now be set to distributed in
SPMe
. There is an additional option calledx-average side reactions
which allows to set this (note that forSPM
it is always x-averaged). (#2099)
Optimizations
- Improved eSOH calculations to be more robust (#2192,#2199)
- The (2x2x2=8) particle diffusion submodels have been consolidated into just three submodels (Fickian diffusion, polynomial profile, and x-averaged polynomial profile) with optional x-averaging and size distribution. Polynomial profile and x-averaged polynomial profile are still two separate submodels, since they deal with surface concentration differently.
- Added error for when solution vector gets too large, to help debug solver errors (#2138)
Bug fixes
- Fixed error reporting for simulation with experiment (#2213)
- Fixed a bug in
Simulation
that caused initial conditions to change when solving an experiment multiple times (#2204) - Fixed labels and ylims in
plot_voltage_components
(#2183) - Fixed 2D interpolant (#2180)
- Fixes a bug where the SPMe always builds even when
build=False
(#2169) - Some events have been removed in the case where they are constant, i.e. can never be reached (#2158)
- Raise explicit
NotImplementedError
if trying to callbool()
on a pybamm Symbol (e.g. in an if statement condition) (#2141) - Fixed bug causing cut-off voltage to change after setting up a simulation with a model (#2138)
- A single solution cycle can now be used as a starting solution for a simulation (#2138)
Breaking changes
- Exchange-current density functions (and some other functions) now take an additional argument, the maximum particle concentration for that phase (#2134)
- Loss of lithium to SEI on cracks is now a degradation variable, so setting a particle mechanics submodel is now compulsory (NoMechanics will suffice)
v22.6
Features
- Added open-circuit potential as a separate submodel (#2094)
- Added partially reversible lithium plating model and new
OKane2022
parameter set to go with it (#2043) - Added
__eq__
and__hash__
methods forSymbol
objects, using.id
(#1978)
Optimizations
- Stoichiometry inputs to OCP functions are now bounded between 1e-10 and 1-1e-10, with singularities at 0 and 1 so that OCP goes to +- infinity (#2095)
Breaking changes
- Changed some dictionary keys to
Symbol
instead ofSymbol.id
(internal change only, should not affect external facing functions) (#1978)
v22.5
Features
- Added functionality to generate Julia expressions from a model. See PyBaMM.jl for how to use these (#1942))
- Added basic callbacks to the Simulation class, and a LoggingCallback (#1880))
Bug fixes
- Corrected legend order in "plot_voltage_components.py", so each entry refers to the correct overpotential. (#2061)
Breaking changes
- Changed domain-specific parameter names to a nested attribute, e.g.
param.c_n_max
is nowparam.n.c_max
(#2063)
v22.4
v22.4 - 2022-04-30
Features
- Added a casadi version of the IDKLU solver, which is used for
model.convert_to_format = "casadi"
(#2002)
Bug fixes
- Remove old deprecation errors, including those in
parameter_values.py
that caused the simulation if, for example, the reaction rate is re-introduced manually (#2022)
v22.3
Features
- Added "Discharge energy [W.h]", which is the integral of the power in Watts, as an optional output. Set the option "calculate discharge energy" to "true" to get this output ("false" by default, since it can slow down some of the simple models) (#1969))
- Added an option "calculate heat source for isothermal models" to choose whether or not the heat generation terms are computed when running models with the option
thermal="isothermal"
(#1958)
Bug fixes
- Fix bug where sensitivity calculation failed if len of
calculate_sensitivities
was less thaninputs
(#1897) - Fixed a bug in the eSOH variable calculation when OCV is given as data (#1975)
- Fixed a bug where isothermal models did not compute any heat source terms (#1958)
Breaking changes
- Dropped support for Windows 32-bit architecture (#1964)
v22.2
Features
- Isothermal models now compute heat source terms (but the temperature remains constant). The models now also account for current collector heating when
dimensionality=0
(#1929) - Added new models for power control and resistance control (#1917)
- Initial concentrations can now be provided as a function of
r
as well asx
(#1866)
Bug fixes
- Fixed a bug where thermal submodels could not be used with half-cells (#1929)
- Parameters can now be imported from a directory having "pybamm" in its name (#1919)
scikit.odes
andSUNDIALS
can now be installed usingpybamm_install_odes
(#1916)
Breaking changes
- The
domain
setter andauxiliary_domains
getter have been deprecated,domains
setter/getter should be used instead. Thedomain
getter is still active. We now recommend creating symbols withdomains={...}
instead ofdomain=..., auxiliary_domains={...}
, but the latter is not yet deprecated (#1866)
v22.1
Features
- Half-cell models can now be run with "surface form" (#1913)
- Added option for different kinetics on anode and cathode (#1913)
- Allow
pybamm.Solution.save_data()
to return a string if filename is None, and added json to_format option (#1909) - Added an option to force install compatible versions of jax and jaxlib if already installed using CLI (#1881)
Optimizations
- The
Symbol
nodes no longer subclassesanytree.NodeMixIn
. This removes some checks that were not really needed (#1912)
Bug fixes
v21.12
Features
- Added new kinetics models for asymmetric Butler-Volmer, linear kinetics, and Marcus-Hush-Chidsey (#1858)
- Experiments can be set to terminate when a voltage is reached (across all steps) (#1832)
- Added cylindrical geometry and finite volume method (#1824)
Bug fixes
PyBaMM
is now importable inLinux
systems wherejax
is already installed (#1874)- Simulations with drive cycles now support
initial_soc
(#1842) - Fixed bug in expression tree simplification (#1831)
- Solid tortuosity is now correctly calculated with Bruggeman coefficient of the respective electrode (#1773)
v21.11
Features
- The name of a parameter set can be passed to
ParameterValues
as a string, e.g.ParameterValues("Chen2020")
(#1822) - Reformatted SEI growth models into a single submodel with conditionals (#1808)
- Stress-induced diffusion is now a separate model option instead of being automatically included when using the particle mechanics submodels (#1797)
Experiment
s with drive cycles can be solved (#1793)- Added surface area to volume ratio as a factor to the SEI equations (#1790)
- Half-cell SPM and SPMe have been implemented (#1731)
Bug fixes
- Fixed
sympy
operators forArctan
andExponential
(#1786) - Fixed finite volume discretization in spherical polar coordinates (#1782)
- Fixed bug when using
Experiment
with a pouch cell model (#1707) - Fixed bug when using
Experiment
with a plating model (#1707) - Fixed hack for potentials in the SPMe model (#1707)
Breaking changes
- The
chemistry
keyword argument inParameterValues
has been deprecated. UseParameterValues(chem)
instead ofParameterValues(chemistry=chem)
(#1822) - Raise error when trying to convert an
Interpolant
with the "pchip" interpolator to CasADI (#1791) - Raise error if
Concatenation
is used directly withVariable
objects (concatenation
should be used instead) (#1789) - Made jax, jaxlib and the PyBaMM JaxSolver optional (#1767)
v21.10
Features
- Summary variables can now be user-determined (#1759)
- Added
all_first_states
to theSolution
object for a simulation with experiment (#1759) - Added a new method (
create_gif
) inQuickPlot
,Simulation
andBatchStudy
to create a GIF of a simulation (#1754) - Added more examples for the
BatchStudy
class (#1747) - SEI models can now be included in the half-cell model (#1705)