CONTRACTION_SHARP
Computes the local loss coefficient for a sharp-edged contraction from a larger to a smaller diameter pipe.
The contraction ratio \beta = D_2/D_1 controls the loss magnitude; some methods also include Reynolds-number dependence to capture regime effects.
The result is a dimensionless K value on the downstream-pipe basis for pressure-drop analysis.
Excel Usage
=CONTRACTION_SHARP(Di_large, Di_small, Re, con_sharp_method)
Di_large(float, required): Inside diameter of original (larger) pipe [m]Di_small(float, required): Inside diameter of following (smaller) pipe [m]Re(float, optional, default: 100000): Reynolds number in the original pipe (used for Hooper method) [-]con_sharp_method(str, optional, default: “Rennels”): Calculation method
Returns (float): Loss coefficient K for the sharp contraction (based on smaller pipe) [-]
Example 1: Basic sharp contraction (1m to 0.4m)
Inputs:
| Di_large | Di_small |
|---|---|
| 1 | 0.4 |
Excel formula:
=CONTRACTION_SHARP(1, 0.4)
Expected output:
0.530127
Example 2: Small contraction ratio
Inputs:
| Di_large | Di_small |
|---|---|
| 0.1 | 0.08 |
Excel formula:
=CONTRACTION_SHARP(0.1, 0.08)
Expected output:
0.230341
Example 3: Sharp contraction with Crane method
Inputs:
| Di_large | Di_small | con_sharp_method |
|---|---|---|
| 0.3 | 0.2 | Crane |
Excel formula:
=CONTRACTION_SHARP(0.3, 0.2, "Crane")
Expected output:
0.277778
Example 4: Sharp contraction with Hooper method
Inputs:
| Di_large | Di_small | Re | con_sharp_method |
|---|---|---|---|
| 1 | 0.4 | 100000 | Hooper |
Excel formula:
=CONTRACTION_SHARP(1, 0.4, 100000, "Hooper")
Expected output:
0.511253
Python Code
Show Code
from fluids.fittings import contraction_sharp as fluids_contraction_sharp
def contraction_sharp(Di_large, Di_small, Re=100000, con_sharp_method='Rennels'):
"""
Calculate the loss coefficient (K) for a sharp edged pipe contraction (reducer).
See: https://fluids.readthedocs.io/fluids.fittings.html#fluids.fittings.contraction_sharp
This example function is provided as-is without any representation of accuracy.
Args:
Di_large (float): Inside diameter of original (larger) pipe [m]
Di_small (float): Inside diameter of following (smaller) pipe [m]
Re (float, optional): Reynolds number in the original pipe (used for Hooper method) [-] Default is 100000.
con_sharp_method (str, optional): Calculation method Valid options: Rennels, Crane, Hooper. Default is 'Rennels'.
Returns:
float: Loss coefficient K for the sharp contraction (based on smaller pipe) [-]
"""
try:
try:
Di1 = float(Di_large)
Di2 = float(Di_small)
Re = float(Re)
except (ValueError, TypeError):
return "Error: Di_large, Di_small, and Re must be numbers."
if Di1 <= 0 or Di2 <= 0:
return "Error: Diameters must be positive."
if Di2 >= Di1:
return "Error: Di_small must be less than Di_large."
if Re <= 0:
return "Error: Re must be positive."
kwargs = {'Di1': Di1, 'Di2': Di2, 'method': con_sharp_method}
if con_sharp_method == 'Hooper':
kwargs['Re'] = Re
result = fluids_contraction_sharp(**kwargs)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
Inside diameter of original (larger) pipe [m]
Inside diameter of following (smaller) pipe [m]
Reynolds number in the original pipe (used for Hooper method) [-]
Calculation method