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)}"