Skip to content

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 density
  • velocity โ†’ Fluid velocity
  • diameter โ†’ Pipe internal diameter
  • viscosity โ†’ Fluid viscosity (dynamic or kinematic)

๐Ÿ“ค Output

  • Returns a Dimensionless object 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}")