H_GANGULI_VDI
This function predicts air-side heat-transfer coefficient for finned tube bundles using Ganguli correlations with VDI-style modifications. It applies a Reynolds-based Nusselt model scaled by area ratio and Prandtl number, with different coefficients for inline and staggered arrangements.
Nu_d = C\,Re_d^{0.6}\left(\frac{A}{A_{\text{tube,only}}}\right)^{-0.15}Pr^{1/3}
The result is returned as a bare-tube-basis coefficient for use in exchanger design calculations.
Excel Usage
=H_GANGULI_VDI(m, A, A_min, A_increase, A_fin, A_tube_showing, tube_diameter, fin_diameter, fin_thickness, bare_length, pitch_parallel, pitch_normal, tube_rows, rho, Cp, mu, k, k_fin)
m(float, required): Mass flow rate across the tube bank (kg/s).A(float, required): Total exposed surface area (m^2).A_min(float, required): Minimum flow area (m^2).A_increase(float, required): Surface area ratio relative to bare tube (-).A_fin(float, required): Total fin surface area (m^2).A_tube_showing(float, required): Exposed bare tube area (m^2).tube_diameter(float, required): Bare tube diameter (m).fin_diameter(float, required): Finned tube outer diameter (m).fin_thickness(float, required): Fin thickness (m).bare_length(float, required): Bare tube length between fins (m).pitch_parallel(float, required): Tube pitch parallel to flow (m).pitch_normal(float, required): Tube pitch normal to flow (m).tube_rows(int, required): Number of tube rows (-).rho(float, required): Air density (kg/m^3).Cp(float, required): Air heat capacity (J/kg/K).mu(float, required): Air viscosity (Pa*s).k(float, required): Air thermal conductivity (W/m/K).k_fin(float, required): Fin thermal conductivity (W/m/K).
Returns (float): Heat transfer coefficient on a bare-tube basis (W/m^2/K), or an error message if invalid.
Example 1: Baseline VDI case
Inputs:
| m | A | A_min | A_increase | A_fin | A_tube_showing | tube_diameter | fin_diameter | fin_thickness | bare_length | pitch_parallel | pitch_normal | tube_rows | rho | Cp | mu | k | k_fin |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.2 | 40 | 4 | 12 | 35 | 5 | 0.02 | 0.05 | 0.001 | 0.003 | 0.05 | 0.06 | 4 | 1.2 | 1005 | 0.000018 | 0.026 | 200 |
Excel formula:
=H_GANGULI_VDI(1.2, 40, 4, 12, 35, 5, 0.02, 0.05, 0.001, 0.003, 0.05, 0.06, 4, 1.2, 1005, 0.000018, 0.026, 200)
Expected output:
116.904
Example 2: Higher flow rate and larger pitch
Inputs:
| m | A | A_min | A_increase | A_fin | A_tube_showing | tube_diameter | fin_diameter | fin_thickness | bare_length | pitch_parallel | pitch_normal | tube_rows | rho | Cp | mu | k | k_fin |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 55 | 5 | 10 | 48 | 7 | 0.025 | 0.06 | 0.0012 | 0.0035 | 0.06 | 0.07 | 6 | 1.1 | 1010 | 0.000019 | 0.027 | 210 |
Excel formula:
=H_GANGULI_VDI(2, 55, 5, 10, 48, 7, 0.025, 0.06, 0.0012, 0.0035, 0.06, 0.07, 6, 1.1, 1010, 0.000019, 0.027, 210)
Expected output:
109.966
Example 3: Compact geometry with lower flow
Inputs:
| m | A | A_min | A_increase | A_fin | A_tube_showing | tube_diameter | fin_diameter | fin_thickness | bare_length | pitch_parallel | pitch_normal | tube_rows | rho | Cp | mu | k | k_fin |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0.9 | 32 | 3.5 | 13 | 28 | 4 | 0.016 | 0.045 | 0.0009 | 0.0025 | 0.045 | 0.055 | 3 | 1.25 | 1000 | 0.000017 | 0.025 | 180 |
Excel formula:
=H_GANGULI_VDI(0.9, 32, 3.5, 13, 28, 4, 0.016, 0.045, 0.0009, 0.0025, 0.045, 0.055, 3, 1.25, 1000, 0.000017, 0.025, 180)
Expected output:
116.542
Example 4: Many rows with moderate flow
Inputs:
| m | A | A_min | A_increase | A_fin | A_tube_showing | tube_diameter | fin_diameter | fin_thickness | bare_length | pitch_parallel | pitch_normal | tube_rows | rho | Cp | mu | k | k_fin |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.5 | 45 | 4.5 | 11 | 38 | 7 | 0.018 | 0.055 | 0.0011 | 0.0032 | 0.052 | 0.062 | 8 | 1.18 | 1008 | 0.0000185 | 0.0265 | 240 |
Excel formula:
=H_GANGULI_VDI(1.5, 45, 4.5, 11, 38, 7, 0.018, 0.055, 0.0011, 0.0032, 0.052, 0.062, 8, 1.18, 1008, 0.0000185, 0.0265, 240)
Expected output:
120.933
Python Code
Show Code
from ht.air_cooler import h_Ganguli_VDI as ht_h_Ganguli_VDI
def h_Ganguli_VDI(m, A, A_min, A_increase, A_fin, A_tube_showing, tube_diameter, fin_diameter, fin_thickness, bare_length, pitch_parallel, pitch_normal, tube_rows, rho, Cp, mu, k, k_fin):
"""
Compute air-side heat transfer coefficient using the Ganguli VDI method.
See: https://ht.readthedocs.io/en/latest/ht.air_cooler.html
This example function is provided as-is without any representation of accuracy.
Args:
m (float): Mass flow rate across the tube bank (kg/s).
A (float): Total exposed surface area (m^2).
A_min (float): Minimum flow area (m^2).
A_increase (float): Surface area ratio relative to bare tube (-).
A_fin (float): Total fin surface area (m^2).
A_tube_showing (float): Exposed bare tube area (m^2).
tube_diameter (float): Bare tube diameter (m).
fin_diameter (float): Finned tube outer diameter (m).
fin_thickness (float): Fin thickness (m).
bare_length (float): Bare tube length between fins (m).
pitch_parallel (float): Tube pitch parallel to flow (m).
pitch_normal (float): Tube pitch normal to flow (m).
tube_rows (int): Number of tube rows (-).
rho (float): Air density (kg/m^3).
Cp (float): Air heat capacity (J/kg/K).
mu (float): Air viscosity (Pa*s).
k (float): Air thermal conductivity (W/m/K).
k_fin (float): Fin thermal conductivity (W/m/K).
Returns:
float: Heat transfer coefficient on a bare-tube basis (W/m^2/K), or an error message if invalid.
"""
try:
return ht_h_Ganguli_VDI(
m=m,
A=A,
A_min=A_min,
A_increase=A_increase,
A_fin=A_fin,
A_tube_showing=A_tube_showing,
tube_diameter=tube_diameter,
fin_diameter=fin_diameter,
fin_thickness=fin_thickness,
bare_length=bare_length,
pitch_parallel=pitch_parallel,
pitch_normal=pitch_normal,
tube_rows=tube_rows,
rho=rho,
Cp=Cp,
mu=mu,
k=k,
k_fin=k_fin,
)
except Exception as e:
return f"Error: {str(e)}"