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:

Result
0.7682

Example 2: Low Reynolds number using Stokes region

Inputs:

Re
0.1

Excel formula:

=DRAG_SPHERE(0.1)

Expected output:

Result
242.658

Example 3: High Reynolds number (Re = 100000)

Inputs:

Re
100000

Excel formula:

=DRAG_SPHERE(100000)

Expected output:

Result
0.4667

Example 4: Using specific Rouse method

Inputs:

Re drag_method
200 Rouse

Excel formula:

=DRAG_SPHERE(200, "Rouse")

Expected output:

Result
0.6721

Example 5: Using Morrison method

Inputs:

Re drag_method
1000 Morrison

Excel formula:

=DRAG_SPHERE(1000, "Morrison")

Expected output:

Result
0.4841

Python Code

import micropip
await micropip.install(["fluids"])
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.
    """
    # Validate Reynolds number
    try:
        Re = float(Re)
    except (ValueError, TypeError):
        return "Error: Re must be a number."

    if Re <= 0:
        return "Error: Re must be positive."

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

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

Online Calculator