Source code for pytes.parameters
#
# Device-level parameters
#
"""
Parameters shared by every family: the device-level description (DESIGN D4, D14).
Family parameter classes inherit from :class:`DeviceParameters` and add their geometry and
materials.
"""
import pybamm
[docs]
class DeviceParameters:
"""
Device-level parameters, as PyBaMM symbols.
Attributes
----------
T_ref : pybamm.Parameter
"Reference temperature [K]": every energy is zero at the uniform state at this
temperature (DESIGN D14). Energy differences do not depend on it.
T_init : pybamm.Parameter
"Initial temperature [K]": the initial state is the uniform equilibrium state at
this temperature (DESIGN D14); for a sharp melting point, solid at the melting
temperature.
T_in : pybamm.FunctionParameter
"Inlet temperature [K]", a function of time ("Time [s]"). A control.
mdot : pybamm.Parameter
"Mass flow rate [kg.s-1]", through the whole device. A control.
temperature_scale : float
Scale of the temperature variables [K].
"""
temperature_scale = 200
def __init__(self):
self.T_ref = pybamm.Parameter("Reference temperature [K]")
self.T_init = pybamm.Parameter("Initial temperature [K]")
self.T_in = pybamm.FunctionParameter(
"Inlet temperature [K]", {"Time [s]": pybamm.t}
)
self.mdot = pybamm.Parameter("Mass flow rate [kg.s-1]")
[docs]
def validate_parameter_values(parameter_values, non_negative=()):
"""
Check that parameter values are physical (DESIGN D14).
Parameters
----------
parameter_values : pybamm.ParameterValues or dict
The parameter values.
non_negative : iterable of str, optional
Names of parameters that must not be negative, e.g. "PCM melting range [K]" and
"PCM smoothing width [K]".
Raises
------
ValueError
If a temperature is not positive or a parameter in ``non_negative`` is negative.
"""
for name in ("Reference temperature [K]", "Initial temperature [K]"):
if not parameter_values[name] > 0:
raise ValueError(f"'{name}' must be positive, got {parameter_values[name]}")
for name in non_negative:
if parameter_values[name] < 0:
raise ValueError(
f"'{name}' must not be negative, got {parameter_values[name]}"
)