Source code for pybamm.models.submodels.interface.sei.constant_sei

#
# Class for constant SEI thickness
#
import pybamm

from .base_sei import BaseModel


[docs] class ConstantSEI(BaseModel): """ Class for SEI with constant concentration. Note that there is no SEI current, so we don't need to update the "sum of interfacial current densities" variables from :class:`pybamm.interface.BaseInterface` Parameters ---------- param : parameter class The parameters to use for this submodel options : dict A dictionary of options to be passed to the model. phase : str, optional Phase of the particle (default is "primary") """ def __init__(self, param, domain, options, phase="primary"): super().__init__(param, domain, options=options, phase=phase) if self.options.electrode_types[domain] == "planar": self.reaction_loc = "interface" else: self.reaction_loc = "full electrode"
[docs] def get_fundamental_variables(self): domain = self.domain.lower() L_sei_0 = self.phase_param.L_sei_0 V_bar_sei = self.phase_param.V_bar_sei # Constant concentration if self.reaction_loc == "interface": # c_sei is an interfacial quantity [mol.m-2] c_sei = L_sei_0 / V_bar_sei else: # c_sei is a bulk quantity [mol.m-3] c_sei = L_sei_0 * self.phase_param.a_typ / V_bar_sei variables = self._get_standard_concentration_variables(c_sei) # Reactions if self.reaction_loc == "interface": zero = pybamm.PrimaryBroadcast(pybamm.Scalar(0), "current collector") else: zero = pybamm.FullBroadcast( pybamm.Scalar(0), f"{domain} electrode", "current collector" ) variables.update(self._get_standard_reaction_variables(zero)) return variables