FF_CURVED
Estimates friction factor for curved-pipe or helical-coil flow by combining Reynolds number with coil geometry and automatically selecting laminar or turbulent correlations. Optional method parameters let you override the automatic regime and choose the specific transition, laminar, or turbulent correlation used.
Unlike straight-pipe formulas, curved-pipe friction depends on both the flow state and the curvature ratio implied by D_i and D_c. This wrapper exposes the library’s combined model so you can compute either Darcy or Fanning friction factors for helices and coils from one interface.
Excel Usage
=FF_CURVED(Re, Di, Dc, roughness, ff_curved_method, rec_method, laminar_method, turbulent_method, Darcy)
Re(float, required): Reynolds number with D=Di, [-]Di(float, required): Inner diameter of the tube making up the coil, [m]Dc(float, required): Diameter of the helix/coil (center-to-center), [m]roughness(float, optional, default: 0): Roughness of pipe wall, [m]ff_curved_method(str, optional, default: null): Specific correlation method to use, overriding automatic selectionrec_method(str, optional, default: “Schmidt”): Critical Re transition methodlaminar_method(str, optional, default: “Schmidt laminar”): Laminar regime correlationturbulent_method(str, optional, default: “Schmidt turbulent”): Turbulent regime correlationDarcy(bool, optional, default: true): If false, returns Fanning friction factor
Returns (float): Darcy or Fanning friction factor for curved-pipe flow [-]
Example 1: Turbulent flow with default parameters
Inputs:
| Re | Di | Dc |
|---|---|---|
| 100000 | 0.02 | 0.5 |
Excel formula:
=FF_CURVED(100000, 0.02, 0.5)
Expected output:
0.022962
Example 2: Laminar flow in helical coil
Inputs:
| Re | Di | Dc |
|---|---|---|
| 250 | 0.02 | 0.1 |
Excel formula:
=FF_CURVED(250, 0.02, 0.1)
Expected output:
0.474607
Example 3: Turbulent flow with pipe roughness
Inputs:
| Re | Di | Dc | roughness |
|---|---|---|---|
| 50000 | 0.01 | 0.2 | 0.0001 |
Excel formula:
=FF_CURVED(50000, 0.01, 0.2, 0.0001)
Expected output:
0.0494035
Example 4: Return Fanning friction factor instead of Darcy
Inputs:
| Re | Di | Dc | Darcy |
|---|---|---|---|
| 100000 | 0.02 | 0.5 | false |
Excel formula:
=FF_CURVED(100000, 0.02, 0.5, FALSE)
Expected output:
0.0057405
Example 5: Turbulent flow with Guo method
Inputs:
| Re | Di | Dc | ff_curved_method |
|---|---|---|---|
| 200000 | 0.01 | 0.2 | Guo |
Excel formula:
=FF_CURVED(200000, 0.01, 0.2, "Guo")
Expected output:
0.0221892
Python Code
Show Code
from fluids.friction import friction_factor_curved as fluids_friction_factor_curved
def ff_curved(Re, Di, Dc, roughness=0, ff_curved_method=None, rec_method='Schmidt', laminar_method='Schmidt laminar', turbulent_method='Schmidt turbulent', Darcy=True):
"""
Calculate friction factor for fluid flowing in a curved pipe or helical coil, supporting both laminar and turbulent regimes.
See: https://fluids.readthedocs.io/fluids.friction.html#fluids.friction.friction_factor_curved
This example function is provided as-is without any representation of accuracy.
Args:
Re (float): Reynolds number with D=Di, [-]
Di (float): Inner diameter of the tube making up the coil, [m]
Dc (float): Diameter of the helix/coil (center-to-center), [m]
roughness (float, optional): Roughness of pipe wall, [m] Default is 0.
ff_curved_method (str, optional): Specific correlation method to use, overriding automatic selection Valid options: White, Mori Nakayama laminar, Schmidt laminar, Guo, Ju, Schmidt turbulent, Prasad, Mandal Nigam, Mori Nakayama turbulent, Czop. Default is None.
rec_method (str, optional): Critical Re transition method Valid options: Seth Stahel, Ito, Kubair Kuloor, Kutateladze Borishanskii, Schmidt, Srinivasan. Default is 'Schmidt'.
laminar_method (str, optional): Laminar regime correlation Valid options: White, Mori Nakayama laminar, Schmidt laminar. Default is 'Schmidt laminar'.
turbulent_method (str, optional): Turbulent regime correlation Valid options: Guo, Ju, Schmidt turbulent, Prasad, Mandal Nigam, Mori Nakayama turbulent, Czop. Default is 'Schmidt turbulent'.
Darcy (bool, optional): If false, returns Fanning friction factor Default is True.
Returns:
float: Darcy or Fanning friction factor for curved-pipe flow [-]
"""
try:
Re = float(Re)
Di = float(Di)
Dc = float(Dc)
roughness = float(roughness)
rec_method = str(rec_method)
laminar_method = str(laminar_method)
turbulent_method = str(turbulent_method)
if Re <= 0:
return "Error: Reynolds number must be positive."
if Di <= 0:
return "Error: Inner diameter must be positive."
if Dc <= 0:
return "Error: Coil diameter must be positive."
if roughness < 0:
return "Error: Roughness cannot be negative."
if ff_curved_method in (None, ""):
ff_curved_method = None
result = fluids_friction_factor_curved(
Re=Re,
Di=Di,
Dc=Dc,
roughness=roughness,
Method=ff_curved_method,
Rec_method=rec_method,
laminar_method=laminar_method,
turbulent_method=turbulent_method,
Darcy=Darcy
)
if result != result:
return "Error: Result is NaN."
if result == float('inf') or result == float('-inf'):
return "Error: Result is not finite."
return float(result)
except Exception as e:
return f"Error: {str(e)}"