DRAG_SPHERE

Overview

Calculate the drag coefficient of a sphere using various correlations based on Reynolds number.

Excel Usage

=DRAG_SPHERE(Re, drag_method)
  • Re (float, required): Particle Reynolds number of the sphere [-]
  • drag_method (str, optional, default: “Auto”): Correlation method to use for calculating drag coefficient

Returns (float): Drag coefficient [-], or error message (str) if input is invalid.

Examples

Example 1: Typical Reynolds number (Re = 200)

Inputs:

Re
200

Excel formula:

=DRAG_SPHERE(200)

Expected output:

0.7682

Example 2: Low Reynolds number using Stokes region

Inputs:

Re
0.1

Excel formula:

=DRAG_SPHERE(0.1)

Expected output:

242.658

Example 3: High Reynolds number (Re = 100000)

Inputs:

Re
100000

Excel formula:

=DRAG_SPHERE(100000)

Expected output:

0.4667

Example 4: Using specific Rouse method

Inputs:

Re drag_method
200 Rouse

Excel formula:

=DRAG_SPHERE(200, "Rouse")

Expected output:

0.6721

Example 5: Using Morrison method

Inputs:

Re drag_method
1000 Morrison

Excel formula:

=DRAG_SPHERE(1000, "Morrison")

Expected output:

0.4841

Python Code

from fluids.drag import drag_sphere as fluids_drag_sphere

def drag_sphere(Re, drag_method='Auto'):
    """
    Calculate the drag coefficient of a sphere using various correlations based on Reynolds number.

    See: https://fluids.readthedocs.io/fluids.drag.html#fluids.drag.drag_sphere

    This example function is provided as-is without any representation of accuracy.

    Args:
        Re (float): Particle Reynolds number of the sphere [-]
        drag_method (str, optional): Correlation method to use for calculating drag coefficient Valid options: Auto, Stokes, Barati, Barati_high, Khan_Richardson, Morsi_Alexander, Rouse, Engelund_Hansen, Clift_Gauvin, Graf, Flemmer_Banks, Swamee_Ojha, Yen, Haider_Levenspiel, Cheng, Terfous, Mikhailov_Freire, Clift, Ceylan, Almedeij, Morrison. Default is 'Auto'.

    Returns:
        float: Drag coefficient [-], or error message (str) if input is invalid.
    """
    try:
      Re = float(Re)
      if Re <= 0:
        return "Error: Re must be positive."

      # Handle method selection
      method = None if drag_method == "Auto" else drag_method

      result = fluids_drag_sphere(Re=Re, Method=method)
      if result != result:  # NaN check
        return "Error: Calculation resulted in NaN."
      return float(result)
    except (ValueError, TypeError):
      return "Error: Re must be a number."
    except Exception as e:
      return f"Error: {str(e)}"

Online Calculator