HELICAL_RE_CRIT
Overview
The HELICAL_RE_CRIT function calculates the critical Reynolds number at which fluid flow transitions from laminar to turbulent in curved pipes and helical coils. This transition point is essential for selecting appropriate friction factor correlations and designing efficient heat exchangers, chemical reactors, and piping systems that utilize coiled geometries.
In straight pipes, the laminar-to-turbulent transition typically occurs around Re ≈ 2300. However, in curved pipes and helical coils, centrifugal forces create secondary flow patterns (Dean vortices) that stabilize the flow and delay the onset of turbulence. This effect causes the critical Reynolds number to increase significantly, often reaching values 3-5 times higher than in straight pipes depending on the curvature ratio.
This implementation uses the fluids library, which provides six empirically-derived correlation methods. The default Schmidt correlation, recommended in the Heat Exchanger Design Handbook, uses the formula:
Re_{crit} = 2300 \left[1 + 8.6 \left(\frac{D_i}{D_c}\right)^{0.45}\right]
where D_i is the inner tube diameter and D_c is the coil diameter (center-to-center). Other available methods include Srinivasan, Ito, Kubair Kuloor, Kutateladze Borishanskii, and Seth Stahel, each derived from different experimental datasets and valid for specific curvature ratio ranges. For more details, see the fluids.friction documentation.
This example function is provided as-is without any representation of accuracy.
Excel Usage
=HELICAL_RE_CRIT(Di, Dc, hrc_method)
Di(float, required): Inner diameter of the tube making up the coil (m)Dc(float, required): Diameter of the helix/coil measured center-to-center (m)hrc_method(str, optional, default: “Schmidt”): Critical Reynolds number transition correlation method
Returns (float): Reynolds number for critical transition between laminar and turbulent flow, or str: Error message if inputs are invalid.
Examples
Example 1: Tight coil with default Schmidt method
Inputs:
| Di | Dc |
|---|---|
| 0.02 | 0.5 |
Excel formula:
=HELICAL_RE_CRIT(0.02, 0.5)
Expected output:
6946.7925
Example 2: Loose coil (large Dc) with Schmidt method
Inputs:
| Di | Dc |
|---|---|
| 0.01 | 2 |
Excel formula:
=HELICAL_RE_CRIT(0.01, 2)
Expected output:
4122.8998
Example 3: Using Ito method
Inputs:
| Di | Dc | hrc_method |
|---|---|---|
| 1 | 7 | Ito |
Excel formula:
=HELICAL_RE_CRIT(1, 7, "Ito")
Expected output:
10729.9728
Example 4: Using Srinivasan method
Inputs:
| Di | Dc | hrc_method |
|---|---|---|
| 1 | 7 | Srinivasan |
Excel formula:
=HELICAL_RE_CRIT(1, 7, "Srinivasan")
Expected output:
11624.7047
Python Code
import micropip
await micropip.install(["fluids"])
from fluids.friction import helical_Re_crit as fluids_helical_Re_crit
def helical_re_crit(Di, Dc, hrc_method='Schmidt'):
"""
Calculate the transition Reynolds number for fluid flowing in a curved or helical pipe between laminar and turbulent flow.
See: https://fluids.readthedocs.io/fluids.friction.html#fluids.friction.helical_Re_crit
This example function is provided as-is without any representation of accuracy.
Args:
Di (float): Inner diameter of the tube making up the coil (m)
Dc (float): Diameter of the helix/coil measured center-to-center (m)
hrc_method (str, optional): Critical Reynolds number transition correlation method Valid options: Seth Stahel, Ito, Kubair Kuloor, Kutateladze Borishanskii, Schmidt, Srinivasan. Default is 'Schmidt'.
Returns:
float: Reynolds number for critical transition between laminar and turbulent flow, or str: Error message if inputs are invalid.
"""
# Validate and convert inputs
try:
Di = float(Di)
Dc = float(Dc)
hrc_method = str(hrc_method)
except (ValueError, TypeError):
return "Error: Could not convert parameters to required types."
# Validate Di > 0
if Di <= 0:
return "Error: Di must be positive."
# Validate Dc > 0
if Dc <= 0:
return "Error: Dc must be positive."
# Validate method
valid_methods = [
"Seth Stahel",
"Ito",
"Kubair Kuloor",
"Kutateladze Borishanskii",
"Schmidt",
"Srinivasan",
]
if hrc_method not in valid_methods:
return f"Error: hrc_method must be one of {valid_methods}."
try:
result = fluids_helical_Re_crit(Di=Di, Dc=Dc, Method=hrc_method)
return float(result)
except Exception as e:
return f"Error computing helical_re_crit: {str(e)}"