liionpack takes a 1D PyBaMM model and makes it into a pack. You can either specify the configuration e.g. 16 cells in parallel and 2 in series (16p2s) or load a netlist.
Follow the steps given below to install
liionpack. The package must be installed to run the included examples. It is recommended to create a virtual environment for the installation, see the documentation.
pip, run the following command:
pip install liionpack
The following terminal commands are for setting up a conda development environment for liionpack. This requires the Anaconda or Miniconda Python distribution. This environment installs liionpack in editable mode which is useful for development of the liionpack source code. General users should install liionpack with pip.
# Create a conda environment named lipack cd liionpack conda env create --file environment.yml # Activate the environment conda activate lipack # Exit the environment conda deactivate # Delete the environment conda env remove --name lipack
In order to use the
draw_circuit functionality a version of Latex must be installed on your machine. We use an underlying Python package
Lcapy for making the drawing and direct you to its installation instructions here for operating system specifics.
The following code block illustrates how to use liionpack to perform a simulation:
import liionpack as lp import numpy as np import pybamm # Generate the netlist netlist = lp.setup_circuit(Np=16, Ns=2, Rb=1e-4, Rc=1e-2, Ri=5e-2, V=3.2, I=80.0) output_variables = [ 'X-averaged total heating [W.m-3]', 'Volume-averaged cell temperature [K]', 'X-averaged negative particle surface concentration [mol.m-3]', 'X-averaged positive particle surface concentration [mol.m-3]', ] # Heat transfer coefficients htc = np.ones(32) * 10 # Cycling experiment, using PyBaMM experiment = pybamm.Experiment([ "Charge at 20 A for 30 minutes", "Rest for 15 minutes", "Discharge at 20 A for 30 minutes", "Rest for 30 minutes"], period="10 seconds") # PyBaMM parameters parameter_values = pybamm.ParameterValues("Chen2020") # Solve pack output = lp.solve(netlist=netlist, parameter_values=parameter_values, experiment=experiment, output_variables=output_variables, htc=htc)
There is a full API documentation, hosted on Read The Docs that can be found here.
If you'd like to help us develop liionpack by adding new methods, writing documentation, or fixing embarrassing bugs, please have a look at these guidelines first.
For any questions, comments, suggestions or bug reports, please see the contact page.
PyBaMM-team acknowledges the funding and support of the Faraday Institution's multi-scale modelling project and Innovate UK.
The development work carried out by members at Oak Ridge National Laboratory was partially sponsored by the Office of Electricity under the United States Department of Energy (DOE).
liionpack is fully open source. For more information about its license, see LICENSE.