You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Features
Added new parameters "f{pref]Initial inner SEI on cracks thickness [m]" and "f{pref]Initial outer SEI on cracks thickness [m]", instead of hardcoding these to L_inner_0 / 10000 and L_outer_0 / 10000. (#4168)
Added pybamm.DataLoader class to fetch data files from pybamm-data and store it under local cache. (#4098)
Added time as an option for Experiment.termination. Now allows solving up to a user-specified time while also allowing different cycles and steps in an experiment to be handled normally. (#4073)
Added plot_thermal_components to plot the contributions to the total heat generation in a battery (#4021)
Added functions for normal probability density function (pybamm.normal_pdf) and cumulative distribution function (pybamm.normal_cdf) (#3999)
"Basic" models are now compatible with experiments (#3995)
Updates multiprocess Pool in BaseSolver.solve() to be constructed with context fork. Adds small example for multiprocess inputs. (#3974)
Lithium plating now works on composite electrodes (#3919)
Added lithium plating parameters to Ecker2015 and Ecker2015_graphite_halfcell parameter sets (#3919)
MSMR open-circuit voltage model now depends on the temperature (#3832)
Added support for macOS arm64 (M-series) platforms. (#3789)
Added the ability to specify a custom solver tolerance in get_initial_stoichiometries and related functions (#3714)
Modified step function to take an array of time t_eval as an argument and deprecated use of npts. (#3627)
Renamed "electrode diffusivity" to "particle diffusivity" as a non-breaking change with a deprecation warning (#3624)
Add support for BPX version 0.4.0 which allows for blended electrodes and user-defined parameters in BPX(#3414)
Added by_submodel feature in print_parameter_info method to allow users to print parameters and types of submodels in a tabular and readable format (#3628)
Added WyciskOpenCircuitPotential for differential capacity hysteresis state open-circuit potential submodel (#3593)
Transport efficiency submodel has new options from the literature relating to different tortuosity factor models and also a new option called "tortuosity factor" for specifying the value or function directly as parameters (#3437)
Heat of mixing source term can now be included into thermal models (#2837)
Added a JAX interface to the IDAKLU solver (#3658)
Bug Fixes
Fixed bug where passing deprecated electrode diffusivity parameter resulted in a breaking change and/or the corresponding diffusivity parameter not updating. Improved the deprecated translation around BPX. (#4176)
Fixed a bug where a factor of electrode surface area to volume ratio is missing in the rhs of the LeadingOrderDifferential conductivity model (#4139)
Fixes the breaking changes caused by #3624, specifically enables the deprecated parameter electrode diffusivity to be used by ParameterValues.update({name:value}) and Solver.solve(inputs={name:value}). Fixes parameter translation from old name to new name, with corrected tests. (#4072
Set the remove_independent_variables_from_rhs to False by default, and moved the option from Discretisation.process_model to Discretisation.__init__. This fixes a bug related to the discharge capacity, but may make the simulation slower in some cases. To set the option to True, use Simulation(..., discretisation_kwargs={"remove_independent_variables_from_rhs": True}). (#4020)
Fixed a bug where independent variables were removed from models even if they appeared in events (#4019)
Fix bug with upwind and downwind schemes producing the wrong discretised system (#3979)
Allow evaluation of an Interpolant object with a number (#3932)
plot_voltage_components now works even if the time does not start at 0 (#3915)
Fixed bug where separator porosity was used in calculation instead of transport efficiency (#3905)
Initial voltage can now match upper or lower cut-offs exactly (#3842)
Fixed a bug where 1+1D and 2+1D models would not work with voltage or power controlled experiments(#3829)
Update IDAKLU solver to fail gracefully when a variable is requested that was not in the solves output_variables list (#3803)
Updated _steps_util.py to throw a specific exception when drive cycle starts at t>0 (#3756)
Updated plot_voltage_components.py to support both Simulation and Solution objects. Added new methods in both Simulation and Solution classes for allow the syntax simulation.plot_voltage_components and solution.plot_voltage_components. Updated test_plot_voltage_components.py to reflect these changes (#3723).
The SEI thickness decreased at some intervals when the 'electron-migration limited' model was used. It has been corrected (#3622)
Use casadi MX.interpn_linear function instead of plugin to fix casadi_interpolant_linear.dll not found on Windows (#4077)
Optimizations
Sped up initialization of a ProcessedVariable by making the internal xarray.DataArray initialization lazy (only gets created if interpolation is needed) (#3862)
Breaking changes
Functions that are created using pybamm.Function(function_object, children) can no longer be differentiated symbolically (e.g. to compute the Jacobian). This should affect no users, since function derivatives for all "standard" functions are explicitly implemented (#4196)
Removed data files under pybamm/input and released them in a separate repository upstream at pybamm-data. Note that data files under pybamm/input/parameters have not been removed. (#4098)
Removed check_model argument from Simulation.solve. To change the check_model option, use Simulation(..., discretisation_kwargs={"check_model": False}). (#4020)
Removed multiple Docker images. Here on, a single Docker image tagged pybamm/pybamm:latest will be provided with both solvers (IDAKLU and JAX) pre-installed. (#3992)
Renamed "ocp_soc_0_dimensional" to "ocp_soc_0" and "ocp_soc_100_dimensional" to "ocp_soc_100" (#3942)
The ODES solver was removed due to compatibility issues. Users should use IDAKLU, Casadi, or JAX instead. (#3932)
Integrated the [pandas] extra into the core PyBaMM package, deprecating the pybamm[pandas] optional dependency. Pandas is now a required dependency and will be installed upon installing PyBaMM (#3892)
Renamed "have_optional_dependency" to "import_optional_dependency" (#3866)
Integrated the [latexify] extra into the core PyBaMM package, deprecating the pybamm[latexify] set of optional dependencies. SymPy is now a required dependency and will be installed upon installing PyBaMM (#3848)
Renamed "testing" argument for plots to "show_plot" and flipped its meaning (show_plot=True is now the default and shows the plot) (#3842)
Dropped support for BPX version 0.3.0 and below (#3414)
The function get_spatial_var in pybamm.QuickPlot.py is made private. (#3755)