pybamm.BaseBatteryModel(options=None, name='Unnamed battery model')[source]¶Base model class with some default settings and required variables
options¶A dictionary of options to be passed to the model. The options that can be set are listed below. Note that not all of the options are compatible with each other and with all of the models implemented in PyBaMM.
- “dimensionality” : int, optional
Sets the dimension of the current collector problem. Can be 0 (default), 1 or 2.
- “surface form” : bool or str, optional
Whether to use the surface formulation of the problem. Can be False (default), “differential” or “algebraic”.
- “convection” : bool or str, optional
Whether to include the effects of convection in the model. Can be False (default), “differential” or “algebraic”. Must be ‘False’ for lithium-ion models.
- “side reactions” : list, optional
Contains a list of any side reactions to include. Default is []. If this list is not empty (i.e. side reactions are included in the model), then “surface form” cannot be ‘False’.
- “interfacial surface area” : str, optional
Sets the model for the interfacial surface area. Can be “constant” (default) or “varying”. Not currently implemented in any of the models.
- “current collector” : str, optional
Sets the current collector model to use. Can be “uniform” (default), “potential pair” or “potential pair quite conductive”.
- “particle” : str, optional
Sets the submodel to use to describe behaviour within the particle. Can be “Fickian diffusion” (default) or “fast diffusion”.
- “thermal” : str, optional
Sets the thermal model to use. Can be “isothermal” (default), “lumped”, “x-lumped”, or “x-full”.
- “external submodels” : list
A list of the submodels that you would like to supply an external variable for instead of solving in PyBaMM. The entries of the lists are strings that correspond to the submodel names in the keys of self.submodels.
- “sei” : str
Set the sei submodel to be used. Options are:
- None:
pybamm.sei.NoSEI(no SEI growth)- “constant”:
pybamm.sei.Constant(constant SEI thickness)- “reaction limited”:
pybamm.sei.ReactionLimited- “solvent-diffusion limited”:
pybamm.sei.SolventDiffusionLimited- “electron-migration limited”:
pybamm.sei.ElectronMigrationLimited- “interstitial-diffusion limited”:
pybamm.sei.InterstitialDiffusionLimited
- “sei film resistance” : str
Set the submodel for additional term in the overpotential due to SEI. The default value is “None” if the “sei” option is “None”, and “distributed” otherwise. This is because the “distributed” model is more complex than the model with no additional resistance, which adds unnecessary complexity if there is no SEI in the first place
- None: no additional resistance
\[\eta_r = \frac{F}{RT} * (\phi_s - \phi_e - U)\]
- “distributed”: properly included additional resistance term
\[\eta_r = \frac{F}{RT} * (\phi_s - \phi_e - U - R_{sei} * L_{sei} * j)\]
- “average”: constant additional resistance term (approximation to the true model). This model can give similar results to the “distributed” case without needing to make j an algebraic state
\[\eta_r = \frac{F}{RT} * (\phi_s - \phi_e - U - R_{sei} * L_{sei} * \frac{I}{aL})\]
| Type: | dict |
|---|
Extends: pybamm.BaseModel
process_parameters_and_discretise(symbol, parameter_values, disc)[source]¶Process parameters and discretise a symbol using supplied parameter values and discretisation. Note: care should be taken if using spatial operators on dimensional symbols. Operators in pybamm are written in non-dimensional form, so may need to be scaled by the appropriate length scale. It is recommended to use this method on non-dimensional symbols.
| Parameters: |
|
|---|---|
| Returns: | Processed symbol |
| Return type: |