Heat Transfer Coefficient
For more information regarding limits, please see Thresholds.
Some explanation regarding the jargon of this module:
SPL - Single Phase Liquid region.
INC - Incipience Point, beyond which boiling occurs.
SCB - Subcooled Boiling region.
In this module several functions relating to the calculation of the
heat transfer coefficient between coolant and walls are defined.
The most significant point of contact between this subpackage and the rest of STREAM
is through the wall_heat_transfer_coeff function:
- wall_heat_transfer_coeff(*, T_wall, T_cool, mdot, pressure, coolant_funcs, Dh, A, h_spl=<function Dittus_Boelter_h_spl>, q_scb=<function Bergles_Rohsenhow_SCB_heat_flux>, film=CPUDispatcher(<function film_temperature>), incipience=CPUDispatcher(<function Bergles_Rohsenow_T_ONB>), partial_scb=CPUDispatcher(<function Bergles_Rohsenhow_partial_SCB>), **kwargs)[source]
Computes the heat transfer coefficient according to[3].
- Parameters:
T_wall (Celsius) – Wall temperature.
T_cool (Celsius) – Coolant bulk temperature.
mdot (KgPerS) – Mass current.
pressure (Pascal) – Coolant absolute static pressure at each cell.
coolant_funcs (LiquidFuncs) – Coolant properties functions.
Dh (Meter) – The effective hydraulic diameter used for Re, Nu values.
A (Meter2) – Cross sectional flow area.
h_spl (SinglePhaseLiquidHTC) – The single phase liquid (SPL) heat transfer coefficient function, which is returned when there is no boiling.
q_scb (SubCooledBoilingFluxFunction) – The subcooled boiling heat flux (SCB) function (which returns W/M2).
partial_scb (PartialSCBFactorFunction) – An interpolation function between the SPL and SCB regimes, returning the factor by which q’’_SPL is multiplied.
film (FilmFunction) – Film temperature function, for which the coolant properties for heat transfer are calculated.
incipience (IncipienceTemperatureFunction) – Boiling INC (incipience) temperature function.
kwargs – Extra arguments for h_spl.
- Returns:
h – heat transfer coefficient of clad-coolant
- Return type:
WPerM2K
The last five arguments are functions used to control the general behavior of this function. We shall walk through those options one by one:
Single Phase Liquid (SPL)
- spl_htc(name, **kwargs)[source]
Create a Single Phase Liquid Heat Transfer Coefficient function chosen from the list below with almost uniform signatures. The main usage of this function is as input for
wall_heat_transfer_coeff.Available functions:
regime_dependent
regime_dependent_h_spl, which depends on theReNo., givenre_bounds. Laminar, Turbulent and NaturalSinglePhaseLiquidHTCExArgsfunctions are required.laminar
laminar_h_spl. Requires theaspect_ratio = channel_depth / channel_widthparameter.laminar_constant_nu
laminar_h_spl.laminar_developed
laminar_developed.turbulent
Dittus_Boelter_h_splwhich employsDittus_Boelter.natural
Elenbaas_h_spl. Requires theLh = heated_lengthparameter.maximal
Computes the natural, laminar and turbulent HTCs and selects the highest at each cell.
- Parameters:
name (SPLMethod | Literal["natural", "laminar", "turbulent", "regime_dependent", "maximal"]) – Method name
kwargs (Dict) – Options to pass onto the given method
- Returns:
Single Phase Liquid Heat Transfer Coefficient function
- Return type:
- class SinglePhaseLiquidHTC(*args, **kwargs)[source]
Bases:
Protocol- __call__(coolant, mdot, Dh, A, T_cool, T_wall, coolant_funcs, pressure)[source]
Single Phase Liquid Heat Transfer Coefficient function.
- Parameters:
coolant (Liquid) – Coolant film properties. See in
wall_heat_transfer_coeffmdot (KgPerS) – Coolant mass flow
Dh (Meter) – Hydraulic diameter
A (Meter2) – Flow area
T_cool (Celsius) – Coolant bulk temperature
T_wall (Celsius) – Wall temperature
coolant_funcs (LiquidFuncs) – Coolant properties functions.
pressure (Pascal) – Static pressure of the liquid.
- Returns:
h – Heat transfer coefficient
- Return type:
WPerM2K
- class SinglePhaseLiquidHTCExArgs(*args, **kwargs)[source]
Bases:
Protocol- __call__(*, coolant, mdot, Dh, A, T_cool, T_wall, coolant_funcs, pressure, h_spl=None, q_scb=None, film=None, incipience=None, partial_scb=None, develop_length=None, **_)[source]
Same as
SinglePhaseLiquidHTCexcept it accepts any additional keyword parameters.- Parameters:
coolant (Liquid)
mdot (float | ndarray)
Dh (float | ndarray)
A (float | ndarray)
T_cool (float | ndarray)
T_wall (float | ndarray)
coolant_funcs (LiquidFuncs)
pressure (float | ndarray)
- Return type:
float | ndarray
Turbulent Heat Transfer Coefficient
Turbulent Single Phase Heat Transfer Coefficient
- Dittus_Boelter(re, pr)[source]
The Dittus-Boelter equation calculates the Nusselt number. Where Reynolds is given for the inside diameter of an equivalent circular smooth duct.
\[\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 – The Nusselt number
- Return type:
Value
Examples
>>> Dittus_Boelter(re=1., pr=1.) 0.023
- Dittus_Boelter_h_spl(*, coolant, mdot, Dh, A, **_)[source]
Single phase liquid heat transfer coefficient. This is done through the Dittus-Boelter correlation, which holds for certain very high Reynolds.
\[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 – h_SPL heat transfer coefficient
- Return type:
WPerM2K
Laminar Heat Transfer Coefficient
Laminar Single Phase Heat Transfer Coefficient
- Marco_Han_Nusselt(aspect_ratio)[source]
For the case of laminar flow in rectangular ducts, an approximation to an analytical solution by Marco and Han is provided (reported error is +-0.03%).[5] This is useful for ducts of case 1, where the channel is heated from all sides.
- Parameters:
aspect_ratio (float) – channel_depth / channel_width (less than 1)
- Returns:
Nu – The Nusselt number (Nu)
- Return type:
float
Examples
>>> Marco_Han_Nusselt(0.) 8.235 >>> Marco_Han_Nusselt(0.2) 5.991134842079999
References
[5] S. Kakac, R. K. Shah, W. Wung, “Handbook of Single-Phase Convective Heat-transfer” ch. 3
- constant_Nusselt_h_spl(*, coolant, Dh, nu=8.235, **_)[source]
A
SinglePhaseLiquidHTCfor constantNuNumber: math:h = text{Nu}k/D_h- Parameters:
coolant (Liquid) – Properties of the coolant.
Dh (Meter) – Hydraulic diameter.
nu (float) – Nusselt Number. Default is
FIXED_FLUXES
- Returns:
Heat transfer coefficient
- Return type:
Watts per Meter squared degrees Kelvin
- developing_laminar_h_spl(*, coolant, mdot, A, Dh, develop_length, aspect_ratio, **_)[source]
A
SinglePhaseLiquidHTCrelying on A Nusselt number definition for thermally developing flow.[6]This includes a correction for the channel being finite in size. These equations are valid for Reynolds<2100.[7]
References
[6] R.K. Shah and A.L. London, Laminar flow forced convection in ducts, A source book for compact heat exchanger analytical data, Academic Press 1978, New York, San Francisco, London, Chapter VI, Parallel plates, Section C, Page 181, Table 34.
[7] P. Abbate, TERMIC V4.1: A Program for the Thermal-Hydraulic Analysis of a MTR Core in Forced Convection, Vol 1: Models and Correlations, Rev 3, Pages 14-15, Nuclear Engineering Division, INVAP, December 2003
- Parameters:
coolant (Liquid) – Properties of the coolant.
mdot (KgPerS) – Mass flow rate.
A (Meter2) – Flow area.
Dh (Meter) – Hydraulic diameter.
develop_length (Meter) – Distance from channel entrance.
aspect_ratio (float in [0,1]) – The aspect ratio of the channel.
- Returns:
Heat transfer coefficient
- Return type:
Watts per Meter squared degrees Kelvin
- fully_developed_laminar_h_spl(*, coolant, Dh, aspect_ratio, **_)[source]
A
SinglePhaseLiquidHTCrelying onMarco_Han_Nusselt- Parameters:
coolant (Liquid) – Properties of the coolant.
Dh (Meter) – Hydraulic diameter.
aspect_ratio (float in [0,1]) – The aspect ratio of the channel.
- Returns:
Heat transfer coefficient
- Return type:
Watts per Meter squared degrees Kelvin
- two_sided_heating_nusselt(aspect_ratio, nu0=8.235)[source]
Nusselt number for channels heated from two sides.
For the case of laminar flow in rectangular ducts, an approximation to an analytical solution is given in case 3 of Kakac[8]
- Parameters:
aspect_ratio (float) – channel_depth / channel_width (0<=x<=1)
nu0 (float) – The nusselt value for an infinitely wide channel compared to its depth. Defaults to the fully developed value.
- Returns:
Nu – The Nusselt number (Nu)
- Return type:
float
Examples
>>> two_sided_heating_nusselt(0.) 8.235
The answer should conform with the results Shah & London give from Schmidt in their table 44[9]
>>> alpha = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 1.0]) >>> vtable44 = np.array([8.235, 7.248, 6.561, 5.997, 5.555, 5.203, 4.662, 4.094]) >>> np.allclose(two_sided_heating_nusselt(alpha), vtable44, rtol=1.1e-2) True
References
[8] Kakac, R. K. Shah, W. Wung, “Handbook of Single-Phase Convective Heat-transfer” ch. 3
[9] R.K. Shah and A.L. London, Laminar flow forced convection in ducts, A source book for compact heat exchanger analytical data, Academic Press 1978, New York, San Francisco, London, Chapter VII, Rectangular ducts, Section 3, Page 206, Table 44.
- FIXED_FLUXES = 8.235
For parallel plates in laminar flow, the Nusselt number is constant, depending on the boundary conditions. See J. H. Lienhard IV, J. H. Lienhard V, “A HEAT TRANSFER TEXTBOOK”, 3rd ed., ch. 7.5, p. 373
- FIXED_TEMPS = 7.541
For parallel plates in laminar flow, the Nusselt number is constant, depending on the boundary conditions. See J. H. Lienhard IV, J. H. Lienhard V, “A HEAT TRANSFER TEXTBOOK”, 3rd ed., ch. 7.5, p. 373
- ONE_FIXED_FLUX_ONE_ADIABATIC = 5.385
For parallel plates in laminar flow, the Nusselt number is constant, depending on the boundary conditions. See J. H. Lienhard IV, J. H. Lienhard V, “A HEAT TRANSFER TEXTBOOK”, 3rd ed., ch. 7.5, p. 373
Natural (Free) Convection Heat Transfer Coefficient
- Elenbaas_h_spl(*, coolant, depth, T_cool, T_wall, Lh, **_)[source]
A semi-empirical correlation for
SinglePhaseLiquidHTCmade by Elenbaas[1][2] for the case of symmetrically heated, isothermal plates:\[\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:
Heat transfer coefficient
- Return type:
WPerM2K
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.
Composed HTC Functions
- regime_dependent_h_spl(coolant, mdot, Dh, A, T_cool, T_wall, re_bounds, coolant_funcs, laminar=<function developing_laminar_h_spl>, turbulent=<function Dittus_Boelter_h_spl>, natural=<function Elenbaas_h_spl>, **kwargs)[source]
A flow-regime-dependent single phase heat transfer coefficient function.
Given laminar, turbulent and natural regimes heat transfer functions, this function interpolates between turbulent-laminar values, where
re_boundsdetermines their respective area of applicability, and applies the natural function when \(\text{Gr}/\text{Re}^2_\text{film} > 1\).The interpolation is done linearly on the bulk-evaluated Reynolds number. The laminar regime function is passed bulk values, whereas the turbulent function is passed film values.
- Parameters:
coolant (Liquid) – Coolant film properties. See in
wall_heat_transfer_coeffmdot (KgPerS) – Coolant mass flow
Dh (Meter) – Hydraulic diameter
A (Meter2) – Flow area
T_cool (Celsius) – Coolant bulk temperature
T_wall (Celsius) – Wall temperature
re_bounds (tuple[Value, Value]) – Boundaries depicting transition between laminar, interim, and turbulent regimes.
coolant_funcs (LiquidFuncs) – Coolant properties functions.
laminar (SinglePhaseLiquidHTCExArgs) – Laminar heat transfer coefficient. It is evaluated with bulk coolant properties.
turbulent (SinglePhaseLiquidHTCExArgs) – Turbulent heat transfer coefficient
natural (SinglePhaseLiquidHTCExArgs) – Natural convection heat transfer coefficient
- Returns:
h – Heat transfer coefficient
- Return type:
WPerM2K
- maximal_h_spl(hs=(<function Elenbaas_h_spl>, <function Dittus_Boelter_h_spl>, <function developing_laminar_h_spl>))[source]
Creates a new SinglePhaseLiquidHTCExArgs function, which returns the maximal value out of the given functions.
- Parameters:
hs (Sequence[SinglePhaseLiquidHTCExArgs]) – Functions to evaluate
- Returns:
A SPL HTC function with maximal values
- Return type:
Incipience (INC)
- Bergles_Rohsenow_T_ONB(pressure, q_spl, Tsat)[source]
The wall temperature at which nucleate boiling begins at certain conditions. This is simply the saturation temperature combined with the Bergles & Rohsenow correlation[3][4].
Like all Bergles & Rohsenow, this is for water only.
See also
Bergles_Rohsenow_dT_ONB- Parameters:
pressure (Pascal) – Absolute pressure of coolant
q_spl (WPerM2) – Single phase heat flux
Tsat (Celsius) – Saturation (Boiling) temperature of coolant
- Returns:
T_inc – Incipience temperature
- Return type:
Celsius
Examples
>>> Bergles_Rohsenow_T_ONB(Tsat=100., q_spl=0., pressure=1e10) 100.0
Subcooled Boiling (SCB)
The subcooled boiling region is identified with a fully subcooled flux function, whose protocol is
Several SCB flux correlations are available:
- McAdams_SCB_heat_flux(T_sat, T_wall)[source]
A correlation for heat flux at the Subcooled Boiling (SCB) regime.[10]
- Parameters:
T_sat (Celsius) – Coolant saturation temperature.
T_wall (Celsius) – Wall (or interface) temperature.
- Returns:
q – heat flux at the Subcooled Boiling (SCB) regime
- Return type:
WPerM2
Examples
>>> McAdams_SCB_heat_flux(T_sat=100., T_wall=100.) 0.0 >>> McAdams_SCB_heat_flux(T_sat=100., T_wall=120.) 237730.12702161702
References
[10] IAEA TECDOC-233
- Bergles_Rohsenhow_SCB_heat_flux(T_wall, coolant, n=1.26, csf=0.011, **_)[source]
Given the wall initial boiling temperature, the heat flux for subcooled boiling may be given by[3]
\[q_\text{SCB}''(T_{wall}) = \left[\frac{c_p(T_{wall,inc}-T_{sat})}{h_{fg}} \frac{\text{Pr}^{-n}}{C_{sf}}\right]^{1/0.33} \frac{\mu_l h_{fg}}{\sqrt{\sigma/(g(\rho_l - \rho_v))}}\]Where the coolant properties are those in saturation temperature.
- Parameters:
T_wall (Celsius) – Wall temperatures
coolant (Liquid) – Coolant properties
n (float) – Dimensionless params. See equation above.
csf (float) – Dimensionless params. See equation above.
- Returns:
q – Appropriate heat flux
- Return type:
WPerM2
Examples
>>> from stream.substances import light_water >>> liquid = light_water.to_properties(10.) >>> Bergles_Rohsenhow_SCB_heat_flux(liquid.sat_temperature, liquid) 0.0 >>> Bergles_Rohsenhow_SCB_heat_flux(120., liquid, n=np.inf) 0.0 >>> Bergles_Rohsenhow_SCB_heat_flux(120., liquid, csf=np.inf) 0.0
- regime_dependent_q_scb(T_wall, coolant, re, re_bounds, **_)[source]
A flow-regime-dependent Subcooled Boiling heat flux function.
Different flow regimes (different
revalues, partitioned byre_bounds) use different subcooled boiling heat flux correlations:Turbulent
Laminar
Interim
Interpolation between the limit values, see
lin_interp
and an interpolation scheme, which is
Bergles_Rohsenhow_partial_SCB.
- Bergles_Rohsenhow_partial_SCB(q_spl, q_scb, q_scb_inc)[source]
Between INC and the fully developed boiling curve, the heat flux for some T_wall is deduced by using the SPL curve and the SCB curve.
\[q_{partial,scb}''=q_{spl}''\left[1+\left\{ \frac{q_{scb}''} {q_{spl}''}\left(1-\frac{q_{scb,inc}''}{q_{scb}''}\right)\right\} ^{2}\right]^{0.5}\]- Parameters:
q_spl (WPerM2) – Single Phase heat flux at T_wall.
q_scb (WPerM2) – SCB heat flux at T_wall.
q_scb_inc (WPerM2) – SCB heat flux at INC temperature.
- Returns:
multiplicative_factor – Correction for the heat transfer coefficient (h) or equivalently the heat flux (q’’).
- Return type:
Value
Examples
>>> Bergles_Rohsenhow_partial_SCB(1., 1., 1.) 1.0
In protocol form:
Wall Temperature Closure
- wall_temperature(T_cool, T_clad, h_cool, h_clad)[source]
Computes the interface temperature, under the assumption that the interface’s thermal inertia is 0, thus incoming and outgoing fluxes should be equal. Then temperature differences should behave as follows:
\[(T_\text{clad} - T_\text{wall}) h_\text{clad} = (T_\text{wall} - T_\text{cool}) h_\text{cool}\]- Parameters:
T_cool (Celsius) – Coolant bulk temperature
T_clad (Celsius) – Clad temperature, closest to the interface.
h_cool (WPerM2K) – Heat transfer coefficient between wall and coolant bulk.
h_clad (WPerM2K) – Clad heat transfer coefficient (conductivity / distance) between T_clad placement and T_wall placement.
- Returns:
T_wall – Wall temperature
- Return type:
Celsius
Note that the wall temperature is also used to determine the film temperature:
- film_temperature(*, T_cool, T_wall)[source]
Determine the coolant temperature at the wall interface. This temperature may be used to assess the thermodynamical properties of the coolant there.
- Parameters:
T_cool (Celsius) – Coolant bulk temperature.
T_wall (Celsius) – Wall interface temperature.
- Returns:
film – “Film” temperature.
- Return type:
Celsius
Examples
>>> film_temperature(20., 20.) 20.0