Class: ReynoldsNumber
The ReynoldsNumber class calculates the Reynolds number (Re) for fluid flow inside a pipe.
It is part of the ProcessPI Calculations module and inherits from CalculationBase.
๐ Description
The Reynolds number is a dimensionless quantity that predicts fluid flow behavior by comparing inertial forces to viscous forces.
- Laminar flow โ occurs at low Re.
- Turbulent flow โ occurs at high Re.
This class supports calculations using either dynamic viscosity (ฮผ) or kinematic viscosity (ฮฝ).
๐ Variables
| Symbol | Description | Units |
|---|---|---|
| ฯ | Fluid density | kg/mยณ |
| v | Fluid velocity | m/s |
| D | Pipe diameter | m |
| ฮผ | Dynamic viscosity | Paยทs |
| ฮฝ | Kinematic viscosity | mยฒ/s |
โ๏ธ Inputs
densityโ Fluid densityvelocityโ Fluid velocitydiameterโ Pipe internal diameterviscosityโ Fluid viscosity (dynamic or kinematic)
๐ค Output
- Returns a
Dimensionlessobject containing the Reynolds number value.
๐ ๏ธ Methods
validate_inputs()
Validates that all required inputs (density, velocity, diameter, viscosity) are provided.
Raises ValueError if any input is missing.
calculate()
Performs the Reynolds number calculation:
- If dynamic viscosity is provided โ uses:
\[
Re = \frac{\rho \cdot v \cdot D}{\mu}
\]
- If kinematic viscosity is provided โ uses:
\[
Re = \frac{v \cdot D}{\nu}
\]
Returns:
- Dimensionless: The computed Reynolds number.
๐ป Example Usage
Using the ReynoldsNumber
from processpi.calculations.fluids.reynolds_number import ReynoldsNumber
from processpi.units import Density, Velocity, Diameter, Viscosity
# Define fluid properties
density = Density(998, "kg/m3") # Water density
velocity = Velocity(2.5, "m/s") # Flow velocity
diameter = Diameter(0.1, "m") # Pipe diameter
viscosity = Viscosity(1.0, "cP") # Dynamic viscosity
# Create calculation instance
re_calc = ReynoldsNumber(
density=density,
velocity=velocity,
diameter=diameter,
viscosity=viscosity
)
# Perform calculation
Re = re_calc.calculate()
print(f"Reynolds Number: {Re}")
Using the CalculationEngine
from processpi.engine.calculation_engine import CalculationEngine
from processpi.units import Density, Velocity, Diameter, Viscosity
# Initialize engine
engine = CalculationEngine()
# Define fluid properties
density = Density(998, "kg/m3") # Water density
velocity = Velocity(2.5, "m/s") # Flow velocity
diameter = Diameter(0.1, "m") # Pipe diameter
viscosity = Viscosity(1.0, "cP") # Dynamic viscosity
# Perform Reynolds number calculation using the engine
Re = engine.calculate(
"reynolds_number",
density=density,
velocity=velocity,
diameter=diameter,
viscosity=viscosity
)
print(f"Reynolds Number (via Engine): {Re}")