bloc.chem.heat_transfer#
Heat transfer correlations and utilities for reactor modeling.
This module consolidates all heat transfer functions used in Bloc: external natural convection, linearized radiation, thermal resistance networks, gas-to-wall radiative flux, and internal forced convection.
Internal convection delegates to ht.conv_internal which automatically
selects the most accurate applicable correlation for the flow regime.
References
Caleb Bell and Contributors (2016-2025). ht: Heat transfer component of Chemical Engineering Design Library (ChEDL). CalebBell/ht
Attributes#
Classes#
General class for a physical prediction model. |
|
Predicts the surface area of carbon based on temperature and residence time. |
|
Predicts the surface area of carbon based on temperature and residence time. |
Functions#
|
Thermal resistance for radial conduction in cylindrical geometry. |
|
Thermal resistance of a conducto-convective heat transfer surface. |
|
Natural convection coefficient at the external wall of a vertical cylinder. |
|
Natural convection coefficient at the external wall of a horizontal cylinder. |
|
Linearized radiative conductance for small temperature differences. |
|
Solve heat transfer through a series thermal resistance stack. |
|
Radiative flux from a participating gas to the tube wall in W/m2. |
|
Compute internal forced convection coefficient for gas in a circular tube. |
Module Contents#
- bloc.chem.heat_transfer.g = 9.81#
- bloc.chem.heat_transfer.sigma_SB = 5.67e-08#
- bloc.chem.heat_transfer.nu_air_20C = 1.589e-05#
- bloc.chem.heat_transfer.alpha_air_20C = 2.25e-05#
- bloc.chem.heat_transfer.conductivity_air_20C = 0.0263#
- bloc.chem.heat_transfer.Pr_air_20C = 0.707#
- bloc.chem.heat_transfer.thermal_resistance_radial_conduction(diameter, length, conductivity, e_insulation)#
Thermal resistance for radial conduction in cylindrical geometry.
\[R = \frac{\ln(r_2/r_1)}{2\pi k L}, \quad r_1 = D/2, \quad r_2 = D/2 + e_{\mathrm{insulation}}\]- Parameters:
diameter (
float) – Inner diameter in m.length (
float) – Cylinder length in m.conductivity (
float) – Thermal conductivity of insulation in W/m/K.e_insulation (
float) – Insulation thickness in m.
- Returns:
Thermal resistance in K/W.
- Return type:
float
- bloc.chem.heat_transfer.thermal_resistance_CC(h_CC, S)#
Thermal resistance of a conducto-convective heat transfer surface.
\[R = \frac{1}{h_{\mathrm{CC}} \, S}\]- Parameters:
h_CC (
float) – Heat transfer coefficient in W/m2/K.S (
float) – Surface area in m2.
- Returns:
Thermal resistance in K/W.
- Return type:
float
- bloc.chem.heat_transfer.compute_hCC_natConv_vertCyl(diameter, length, T_wall_C, T_amb_C, conductivity=conductivity_air_20C, nu=nu_air_20C, alpha=alpha_air_20C, Pr=Pr_air_20C)#
Natural convection coefficient at the external wall of a vertical cylinder.
Correlation from Taine / Lefevre (1956).
Warning
Valid for laminar flow only; gives low h values.
\[ \begin{align}\begin{aligned}\mathrm{Ra}_L = \frac{g \beta (T_{\mathrm{wall}} - T_{\mathrm{amb}}) L^3}{\nu \alpha}\\\mathrm{Nu} = \frac{4}{3} \left(\frac{7 \mathrm{Ra}_L \mathrm{Pr}}{100 + 105 \mathrm{Pr}}\right)^{1/4} + 0.1143 \frac{272 + 315 \mathrm{Pr}}{64 + 63 \mathrm{Pr}} \frac{L}{D}, \quad h = \frac{\mathrm{Nu} \, k}{L}\end{aligned}\end{align} \]- Parameters:
diameter (
float) – Outer diameter in m.length (
float) – Cylinder length in m.T_wall_C (
float) – Wall temperature in deg C.T_amb_C (
float) – Ambient temperature in deg C.conductivity (
float, optional) – Fluid thermal conductivity in W/m/K. Defaults to air at 20 deg C.nu (
float, optional) – Kinematic viscosity in m2/s. Defaults to air at 20 deg C.alpha (
float, optional) – Thermal diffusivity in m2/s. Defaults to air at 20 deg C.Pr (
float, optional) – Prandtl number. Defaults to air at 20 deg C.
- Returns:
Convective heat transfer coefficient h in W/m2/K.
- Return type:
float
- bloc.chem.heat_transfer.compute_hCC_natConv_horizCyl(diameter, length, T_wall_C, T_amb_C, conductivity=conductivity_air_20C, nu=nu_air_20C, alpha=alpha_air_20C, Pr=Pr_air_20C)#
Natural convection coefficient at the external wall of a horizontal cylinder.
Uses Churchill & Chu (1975) correlation.
\[ \begin{align}\begin{aligned}\mathrm{Ra}_D = \frac{g \beta (T_{\mathrm{wall}} - T_{\mathrm{amb}}) D^3}{\nu \alpha}\\\mathrm{Nu}_D = \left(0.6 + \frac{0.387 \mathrm{Ra}_D^{1/6}} {(1 + (0.559/\mathrm{Pr})^{9/16})^{8/27}}\right)^2, \quad h = \frac{\mathrm{Nu}_D \, k}{D}\end{aligned}\end{align} \]- Parameters:
diameter (
float) – Outer diameter in m.length (
float) – Cylinder length in m (unused in this correlation, kept for API consistency).T_wall_C (
float) – Wall temperature in deg C.T_amb_C (
float) – Ambient temperature in deg C.conductivity (
float, optional) – Fluid thermal conductivity in W/m/K. Defaults to air at 20 deg C.nu (
float, optional) – Kinematic viscosity in m2/s. Defaults to air at 20 deg C.alpha (
float, optional) – Thermal diffusivity in m2/s. Defaults to air at 20 deg C.Pr (
float, optional) – Prandtl number. Defaults to air at 20 deg C.
- Returns:
Convective heat transfer coefficient h in W/m2/K.
- Return type:
float
- bloc.chem.heat_transfer.compute_hrad_linearRadiation(eps, Tmoy)#
Linearized radiative conductance for small temperature differences.
\[h_{\mathrm{rad}} = \varepsilon \sigma_{\mathrm{SB}} \, 4 T_{\mathrm{moy}}^3\]- Parameters:
eps (
float) – Emissivity, dimensionless.Tmoy (
float) – Mean temperature in K.
- Returns:
Linearized radiative heat transfer coefficient in W/m2/K.
- Return type:
float
- bloc.chem.heat_transfer.compute_heat_losses_linear(Tr_C, Tamb_C, R_list)#
Solve heat transfer through a series thermal resistance stack.
\[R_{\mathrm{tot}} = \sum_i R_i, \quad \Phi = \frac{T_{\mathrm{reac}} - T_{\mathrm{amb}}}{R_{\mathrm{tot}}}, \quad \Delta T_i = \Phi \, R_i\]- Parameters:
Tr_C (
float) – Temperature inside the reactor in deg C.Tamb_C (
float) – Ambient temperature in deg C.R_list (
listoffloat) – Thermal resistances in K/W, ordered from reactor interior to ambient.
- Returns:
{"Phi": float, "T_reac": float, "T_wall_ext": float, "T_amb": float, ...}wherePhiis heat loss in W.- Return type:
dict
- bloc.chem.heat_transfer.compute_gas2wall_radiative_flux(T_g, T_w, kappa_grey, D)#
Radiative flux from a participating gas to the tube wall in W/m2.
Uses the grey gas approximation with cylindrical geometry (mean beam length approximation via spherical integral).
Assumptions:
Temperature and composition are uniform in the cross-section.
Grey body gas with absorption coefficient
kappa_grey.Walls are black (covered by soot); no wall reflection.
\[ \begin{align}\begin{aligned}f_{\mathrm{trans}} = 2 \int_0^{\pi/2} e^{-\kappa D \cos\theta} \cos^2\theta \sin\theta \, d\theta\\q_{\mathrm{rad}} = \left(\frac{2}{3} - f_{\mathrm{trans}}\right) \sigma_{\mathrm{SB}} (T_g^4 - T_w^4)\end{aligned}\end{align} \]Positive
q_radmeans net heat transfer from gas to wall.- Parameters:
T_g (
float) – Gas temperature in K.T_w (
float) – Wall temperature in K.kappa_grey (
float) – Grey gas absorption coefficient in 1/m. Usekappa_grey = 0to disable gas radiation.D (
float) – Tube inner diameter in m.
- Returns:
q_rad (
float) – Net radiative heat flux from gas to wall in W/m2.f_trans (
float) – Transmittance factor (dimensionless).
- bloc.chem.heat_transfer.internal_convection_h(diameter, mass_flow_rate, gas, x_position=None)#
Compute internal forced convection coefficient for gas in a circular tube.
Delegates to
ht.conv_internal.Nu_conv_internal()[CalebBell_ht] which dynamically selects the most accurate applicable correlation:Laminar developing flow (Re < 2300,
x_positionprovided): Baehr-Stephan laminar thermal/velocity entry.Laminar fully-developed (Re < 2300, no
x_position): Constant wall temperature, Nu = 3.66.Turbulent with entry effects (Re > 4000,
x_positionprovided): Hausen.Turbulent general (Re > 4000): Churchill-Zajic.
Turbulent, low Prandtl (Pr < 0.03): Martinelli.
Transport properties (viscosity, thermal conductivity, heat capacity) are read from the Cantera
Solutionobject at the current state. The gas mechanism must define a transport model (e.g. Mix or Multi); mechanisms withtransport_model == 'none'are not supported.- Parameters:
diameter (
float) – Tube inner diameter in m.mass_flow_rate (
float) – Mass flow rate through the tube in kg/s.gas (
cantera.Solution) – Gas object at the current thermodynamic state (must have transport).x_position (
floatorNone, optional) – Distance from the tube inlet in m. When provided, entry-length correlations are used; otherwise fully-developed flow is assumed.
- Returns:
Convective heat transfer coefficient h in W/m2/K.
- Return type:
float- Raises:
ValueError – If
gas.transport_model == 'none'(mechanism has no transport data).
See also
ht.conv_internal.Nu_conv_internalUnderlying correlation selector from the ht library.
Notes
For CH4 pyrolysis conditions (10 SLM, D = 100 mm), Re ~ 130–250 across the full temperature range (25–1600 deg C), so fully-developed laminar flow applies and Nu = 3.66. Radiation dominates at high temperatures.
- class bloc.chem.heat_transfer.PhysicalModel(model, imputer)#
Bases:
objectGeneral class for a physical prediction model.
- model#
- imputer#
- fit(X, y)#
- predict(X)#
- class bloc.chem.heat_transfer.SurfaceAreaModel#
Bases:
PhysicalModelPredicts the surface area of carbon based on temperature and residence time.
The model must be initialized with data to be fitted through the
fit()method. Child classes come with prefitted data. See for instanceKirkOthmer2004SurfaceArea.The model uses a Linear regression trained on polynomial features of ; using a
PolynomialFeatureswith degree 2.- fit(temperature, residence_time, surface_area)#
Fit the model to experimental or reference data.
Note the model uses a LinearRegression with temperature and log10(residence_time) as input.
- predict(temperature, residence_time)#
Predict the surface area of carbon based on temperature and residence time.
- model#
- imputer#
- class bloc.chem.heat_transfer.KirkOthmer2004SurfaceArea#
Bases:
SurfaceAreaModelPredicts the surface area of carbon based on temperature and residence time.
The model must be initialized with data to be fitted through the
fit()method. Child classes come with prefitted data. See for instanceKirkOthmer2004SurfaceArea.The model uses a Linear regression trained on polynomial features of ; using a
PolynomialFeatureswith degree 2.- TEMPERATURE_DATA#
- RESIDENCE_TIME_DATA#
- SURFACE_AREA_DATA#
Predicts the surface area of carbon based on temperature and residence time.
Reference#
Kirk-Othmer Encyclopedia of Chemical Technology, Volume 4, 5th Edition ISBN: 978-0-471-48519-3; March 2004 https://www.wiley.com/en-us/Kirk-Othmer+Encyclopedia+of+Chemical+Technology%2C+Volume+4%2C+5th+Edition-p-9780471485193
Examples
- fit(temperature, residence_time, surface_area)#
Fit the model to experimental or reference data.
Note the model uses a LinearRegression with temperature and log10(residence_time) as input.
- predict(temperature, residence_time)#
Predict the surface area of carbon based on temperature and residence time.
- model#
- imputer#
- bloc.chem.heat_transfer.carbon_model#