Source code for pybamm.models.submodels.interface.kinetics.total_main_kinetics
#
# Class summing up contributions to the main (e.g. intercalation) reaction
# for cases with primary, secondary, ... reactions e.g. silicon-graphite
#
import pybamm
[docs]
class TotalMainKinetics(pybamm.BaseSubModel):
"""
Class summing up contributions to the main (e.g. intercalation) reaction
for cases with primary, secondary, ... reactions e.g. silicon-graphite
Parameters
----------
param :
model parameters
domain : str
The domain to implement the model, either: 'Negative' or 'Positive'.
reaction : str
The name of the reaction being implemented
options: dict
A dictionary of options to be passed to the model.
See :class:`pybamm.BaseBatteryModel`
"""
def __init__(self, param, domain, reaction, options):
super().__init__(param, domain, name=reaction, options=options)
[docs]
def get_coupled_variables(self, variables):
domain, Domain = self.domain_Domain
phases = self.options.phases[domain]
# The variable name without the phase name
# is constructed by summing all of the variable names with the phases
sumvar = sum(
variables[
f"{Domain} electrode {phase} volumetric "
"interfacial current density [A.m-3]"
]
for phase in phases
)
variables.update(
{
f"{Domain} electrode volumetric "
"interfacial current density [A.m-3]": sumvar,
f"X-averaged {domain} electrode volumetric "
"interfacial current density [A.m-3]": pybamm.x_average(sumvar),
}
)
return variables