Source code for pybamm.models.submodels.interface.kinetics.tafel
#
# Tafel classes
#
import pybamm
from .base_kinetics import BaseKinetics
[docs]
class ForwardTafel(BaseKinetics):
"""
Base submodel which implements the forward Tafel equation:
.. math::
j = u * j_0(c) * \\exp((ne * alpha * F * \\eta_r(c) / RT)
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`
phase : str, optional
Phase of the particle (default is "primary")
"""
def _get_kinetics(self, j0, ne, eta_r, T, u):
alpha = self.phase_param.alpha_bv
Feta_RT = self.param.F * eta_r / (self.param.R * T)
return u * j0 * pybamm.exp(ne * alpha * Feta_RT)
# backwardtafel not used by any of the models
# class BackwardTafel(BaseKinetics):
# """
# Base submodel which implements the backward Tafel equation:
# .. math::
# j = -j_0(c) * \\exp(-\\eta_r(c))
# Parameters
# ----------
# param :
# model parameters
# domain : str
# The domain to implement the model, either: 'Negative' or 'Positive'.
# **Extends:** :class:`pybamm.interface.kinetics.BaseKinetics`
# """
# def __init__(self, param, domain, reaction, options):
# super().__init__(param, domain, reaction, options)
# def _get_kinetics(self, j0, ne, eta_r, T):
# return -j0 * pybamm.exp(-(ne / (2 * (1 + self.param.Theta * T))) * eta_r)