Source code for pybamm.models.submodels.interface.sei.total_sei
#
# Class summing up contributions to the SEI reaction
# for cases with primary, secondary, ... reactions e.g. silicon-graphite
#
import pybamm
[docs]
class TotalSEI(pybamm.BaseSubModel):
"""
Class summing up contributions to the SEI reaction
for cases with primary, secondary, ... reactions e.g. silicon-graphite
Parameters
----------
param :
model parameters
options: dict
A dictionary of options to be passed to the model.
See :class:`pybamm.BaseBatteryModel`
"""
def __init__(self, param, domain, options, cracks=False):
if cracks is True:
self.reaction = "SEI on cracks"
else:
self.reaction = "SEI"
super().__init__(param, domain, options=options)
[docs]
def get_coupled_variables(self, variables):
domain, Domain = self.domain_Domain
phases = self.options.phases[domain]
# For each of the variables, the variable name without the phase name
# is constructed by summing all of the variable names with the phases
for variable_template in [
f"{Domain} electrode {{}}{self.reaction} volumetric "
"interfacial current density [A.m-3]",
f"X-averaged {domain} electrode {{}}{self.reaction} volumetric "
"interfacial current density [A.m-3]",
f"Loss of lithium to {domain} {{}}{self.reaction} [mol]",
f"Loss of capacity to {domain} {{}}{self.reaction} [A.h]",
]:
sumvar = sum(
variables[variable_template.format(phase + " ")] for phase in phases
)
variables[variable_template.format("")] = sumvar
return variables