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