Source code for pytes.models.finned_tube.parameters
#
# Parameters of the finned-tube family
#
"""
Parameters of the finned-tube family: a block of phase-change material (PCM) with metal fins,
crossed by parallel tubes carrying the heat transfer fluid (HTF).
Geometry. The device has ``N`` identical tubes, and the models describe one of them (device
totals are multiplied by ``N``):
- the HTF flows along a tube of radius ``R_f`` and length ``Z``, with ``z`` the distance from
the inlet;
- the PCM fills the storage around the tube, from the tube wall (``y = R_f``) to an outer
radius ``H = R_f + D``, with ``y`` the distance from the tube axis and ``D`` the
"Storage depth" (its extent from the wall). ``H`` is about half the distance between
neighbouring tubes, where the heat flux vanishes by symmetry;
- metal fins are annular discs around the tube, perpendicular to it, spanning the whole
annulus. ``d_c`` is the fin thickness and ``d_m`` the fin pitch (the centre-to-centre
distance between consecutive fins), so the fins take up a volume fraction
``delta = d_c / d_m``.
The models neglect conduction along the tube (in ``z``) in the PCM and the fins, heat losses
to the surroundings, the thermal mass and resistance of the tube wall (other than the heat
transfer coefficient ``h``), convection in the liquid PCM, and the volume change on melting
(the latent heat per unit volume uses the solid density).
"""
import numpy as np
import pybamm
from ...fluids import ConstantPropertyLiquid
from ...materials import CompositeMaterial, PureMaterial, SensibleMaterial
from ...parameters import DeviceParameters
[docs]
class FinnedTubeParameters(DeviceParameters):
"""
Parameters of the finned-tube family, as PyBaMM symbols. See
:class:`pytes.parameters.DeviceParameters` for the device-level ones.
Attributes
----------
R_f : pybamm.Parameter
"Tube radius [m]".
Z : pybamm.Parameter
"Tube length [m]".
H : pybamm.Symbol
The outer radius of the storage around a tube [m], ``R_f + D``.
D : pybamm.Parameter
"Storage depth [m]": the extent of the storage from the tube wall (the length of the
"storage depth" domain), so that the storage outer radius is about half the
distance between neighbouring tubes.
d_c : pybamm.Parameter
"Fin thickness [m]".
d_m : pybamm.Parameter
"Fin pitch [m]": the centre-to-centre distance between consecutive fins.
delta : pybamm.Symbol
Volume fraction of the fins, ``d_c / d_m``.
N_tubes : pybamm.Parameter
"Number of tubes".
area, perimeter : pybamm.Symbol
Flow area ``pi R_f**2`` [m2] and wall perimeter ``2 pi R_f`` [m] of one tube.
fluid : :class:`pytes.fluids.ConstantPropertyLiquid`
The fluid-property object, with zero enthalpy at the reference temperature.
pcm : :class:`pytes.materials.PureMaterial`
The PCM on its own (parameters "PCM ...").
metal : :class:`pytes.materials.SensibleMaterial`
The fin metal (parameters "Metal ...").
composite : :class:`pytes.materials.CompositeMaterial`
The PCM and the fins homogenised into one material.
T_m : pybamm.Parameter
The PCM melting temperature [K].
temperature_reference : pybamm.Symbol
Reference of the temperature variables: the melting temperature.
"""
def __init__(self):
super().__init__()
self.R_f = pybamm.Parameter("Tube radius [m]")
self.Z = pybamm.Parameter("Tube length [m]")
self.D = pybamm.Parameter("Storage depth [m]")
self.H = self.R_f + self.D
self.d_c = pybamm.Parameter("Fin thickness [m]")
self.d_m = pybamm.Parameter("Fin pitch [m]")
self.delta = self.d_c / self.d_m
self.N_tubes = pybamm.Parameter("Number of tubes")
self.area = np.pi * self.R_f**2
self.perimeter = 2 * np.pi * self.R_f
self.fluid = ConstantPropertyLiquid(T_ref=self.T_ref)
self.pcm = PureMaterial("PCM")
self.metal = SensibleMaterial("Metal")
self.composite = CompositeMaterial(self.pcm, self.metal, self.delta)
self.T_m = self.pcm.T_m
self.temperature_reference = self.T_m