Source code for stream.physical_models.heat_transfer_coefficient.turbulent

"""Turbulent Single Phase Heat Transfer Coefficient"""

from numba import njit

from stream.physical_models.dimensionless import Pr, Re_mdot
from stream.substances import Liquid
from stream.units import KgPerS, Meter, Meter2, Value, WPerM2K


[docs] @njit def Dittus_Boelter(re: Value, pr: Value) -> Value: r"""The Dittus-Boelter equation calculates the Nusselt number. Where Reynolds is given for the inside diameter of an equivalent circular smooth duct. .. math:: \text{Nu} = 0.023\text{Re}^{0.8}\text{Pr}^{0.4} Its application is in the following phase subspace: Parameters ---------- re: Value Reynolds number -> 10,000 pr: Value Prandtl number, in [0.6, 160] Returns ------- Nu: Value The Nusselt number Examples -------- >>> Dittus_Boelter(re=1., pr=1.) 0.023 """ return 0.023 * (re**0.8) * (pr**0.4)
[docs] def Dittus_Boelter_h_spl(*, coolant: Liquid, mdot: KgPerS, Dh: Meter, A: Meter2, **_) -> WPerM2K: r""" Single phase liquid heat transfer coefficient. This is done through the Dittus-Boelter correlation, which holds for certain very high Reynolds. .. math:: h_\text{SPL} = (k / D_h)\text{Nu} = 0.023(k / D_h)\text{Re}^{0.8}\text{Pr}^{0.4} Parameters ---------- coolant: Liquid Coolant properties mdot: KgPerS Characteristic flow mass current Dh: Meter The effective hydraulic diameter used for Re, Nu values. A: Meter2 Cross sectional flow area. Returns ------- h_SPL: WPerM2K h_SPL heat transfer coefficient """ cp = coolant.specific_heat mu = coolant.viscosity k = coolant.conductivity Nu = Dittus_Boelter(Re_mdot(mdot, A, Dh, mu), Pr(cp, mu, k)) return (k / Dh) * Nu