MSMR Diffusion#
- class pybamm.particle.MSMRDiffusion(param, domain, options, phase='primary', x_average=False)#
Class for molar conservation in particles within the Multi-Species Multi-Reaction framework Baker and Verbrugge[1]. The thermodynamic model is presented in Verbrugge et al.[2], along with parameter values for a number of substitutional materials.
In this submodel, the stoichiometry depends on the potential in the particle and the temperature, so dUdT is not used. See :meth:`pybamm.LithiumIonParameters.dUdT for more explanation.
- Parameters:
param (parameter class) – The parameters to use for this submodel
domain (str) – The domain of the model either ‘Negative’ or ‘Positive’
options (dict) – A dictionary of options to be passed to the model. See
pybamm.BaseBatteryModel
phase (str, optional) – Phase of the particle (default is “primary”)
x_average (bool) – Whether the particle concentration is averaged over the x-direction
Extends:
pybamm.models.submodels.particle.base_particle.BaseParticle
- get_coupled_variables(variables)#
A public method that creates and returns the variables in a submodel which require variables in other submodels to be set first. For example, the exchange current density requires the concentration in the electrolyte to be created before it can be created. If a variable can be created independent of other submodels then it should be created in ‘get_fundamental_variables’ instead of this method.
- get_fundamental_variables()#
A public method that creates and returns the variables in a submodel which can be created independent of other submodels. For example, the electrolyte concentration variables can be created independent of whether any other variables have been defined in the model. As a rule, if a variable can be created without variables from other submodels, then it should be placed in this method.
- Returns:
The variables created by the submodel which are independent of variables in other submodels.
- Return type:
- set_boundary_conditions(variables)#
A method to set the boundary conditions for the submodel. Note: this method modifies the state of self.boundary_conditions. Unless overwritten by a submodel, the default behaviour of ‘pass’ is used as implemented in
pybamm.BaseSubModel
.- Parameters:
variables (dict) – The variables in the whole model.
- set_initial_conditions(variables)#
A method to set the initial conditions for the submodel. Note: this method modifies the state of self.initial_conditions. Unless overwritten by a submodel, the default behaviour of ‘pass’ is used as implemented in
pybamm.BaseSubModel
.- Parameters:
variables (dict) – The variables in the whole model.
- set_rhs(variables)#
A method to set the right hand side of the differential equations which contain a time derivative. Note: this method modifies the state of self.rhs. Unless overwritten by a submodel, the default behaviour of ‘pass’ is used as implemented in
pybamm.BaseSubModel
.- Parameters:
variables (dict) – The variables in the whole model.
- class pybamm.particle.MSMRStoichiometryVariables(param, domain, options, phase='primary', x_average=False)#
- get_coupled_variables(variables)#
A public method that creates and returns the variables in a submodel which require variables in other submodels to be set first. For example, the exchange current density requires the concentration in the electrolyte to be created before it can be created. If a variable can be created independent of other submodels then it should be created in ‘get_fundamental_variables’ instead of this method.
References