Source code for stream.physical_models.heat_transfer_coefficient.natural_convection

"""Natural Convection Single Phase Heat Transfer Coefficient"""

import numpy as np
from numba import njit

from stream.physical_models.dimensionless import Ra
from stream.substances import Liquid
from stream.units import (
    Celsius,
    JPerKgK,
    KgPerM3,
    Meter,
    PaS,
    PerC,
    Value,
    WPerM2K,
    WPerMK,
)


@njit
def _Elenbaas(
    rho: KgPerM3,
    mu: PaS,
    cp: JPerKgK,
    k: WPerMK,
    beta: PerC,
    T: Celsius,
    Twall: Celsius,
    Lh: Meter,
    S: Meter,
) -> Value:
    ra = Ra(rho=rho, mu=mu, cp=cp, k=k, beta=beta, T=T, Twall=Twall, Dh=S)
    return (1 / 24) * ra * (S / Lh) * (1 - np.exp(-35 * Lh / (ra * S))) ** 0.75


[docs] def Elenbaas_h_spl(*, coolant: Liquid, depth: Meter, T_cool: Celsius, T_wall: Celsius, Lh: Meter, **_) -> WPerM2K: r"""A semi-empirical correlation for :class:`~.SinglePhaseLiquidHTC` made by Elenbaas [1]_ [2]_ for the case of `symmetrically heated, isothermal plates`: .. math:: \text{Nu}_S=\frac{1}{24}\frac{S}{L}\text{Ra}_S \left\{ 1-\exp \left[ -\frac{35}{Ra_S(S/L)} \right] \right\}^{3/4} Parameters ---------- coolant: Liquid Coolant properties depth: Meter The depth, length between the two parallel plates T_cool: Celsius Coolant bulk temperature T_wall: Celsius Surface temperature Lh: Meter Heated length Returns ------- WPerM2K Heat transfer coefficient References ---------- .. [1] Elenbaas, W., Physica, 9, 1, 1942. .. [2] Incropera, Frank P. et al., Fundamentals of heat and mass transfer, 6th edition, section 9.7, p. 584. """ S = depth k = coolant.conductivity Nu = _Elenbaas( rho=coolant.density, mu=coolant.viscosity, cp=coolant.specific_heat, k=k, beta=coolant.thermal_expansion, T=T_cool, Twall=T_wall, Lh=Lh, S=S, ) return (k / S) * Nu