Cómo calcular el número de Reynolds en Python usando UliEngineering
Puedes calcular fácilmente el número de Reynolds usando la librería Python UliEngineering. El número de Reynolds es una cantidad adimensional que predice los patrones de flujo en la dinámica de fluidos:
from UliEngineering.Physics.Viscosity import reynolds_number
from UliEngineering.EngineerIO import *
# Calcular número de Reynolds para flujo de agua en una tubería
density = 998.2 # kg/m³ (agua)
velocity = 1.0 # m/s
characteristic_length = 0.01 # 1 cm (diámetro de tubería)
viscosity = 0.001 # Pa·s (agua)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Número de Reynolds: {Re:.0f}")
# Calcular número de Reynolds para flujo de aire
density = 1.225 # kg/m³ (aire)
velocity = 10.0 # m/s
characteristic_length = 0.1 # 10 cm
viscosity = 1.8e-5 # Pa·s (aire)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Número de Reynolds del aire: {Re:.0f}")
# Calcular número de Reynolds para flujo de glicerol
density = 1261.0 # kg/m³ (glicerol)
velocity = 0.1 # m/s
characteristic_length = 0.01 # 1 cm
viscosity = 1.412 # Pa·s (glicerol)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Número de Reynolds del glicerol: {Re:.0f}")Ejemplo de salida
Número de Reynolds: 9982
Número de Reynolds del aire: 68083
Número de Reynolds del glicerol: 9El número de Reynolds viene dado por:
$$ Re = \frac{\rho v L}{\eta} $$donde $Re$ es el número de Reynolds, $\rho$ es la densidad del fluido, $v$ es la velocidad del flujo, $L$ es la longitud característica (como el diámetro de la tubería), y $\eta$ es la viscosidad dinámica.
El número de Reynolds indica si el flujo es laminar o turbulento:
- Re < 2300: Flujo laminar (suave, ordenado)
- 2300 < Re < 4000: Flujo de transición
- Re > 4000: Flujo turbulento (caótico, mezclador)
La gráfica anterior muestra cómo varía el número de Reynolds con la velocidad para el agua que fluye a través de una tubería de 1 cm de diámetro. La línea verde discontinua en Re = 2300 marca la transición de flujo laminar a flujo de transición, mientras que la línea roja discontinua en Re = 4000 marca el inicio del flujo turbulento.
El número de Reynolds es fundamental para la mecánica de fluidos y se usa en análisis de flujo en tuberías, aerodinámica, transferencia de calor y muchas otras aplicaciones de ingeniería. Representa la relación entre las fuerzas inerciales y las fuerzas viscosas en un fluido.
Entradas relacionadas
- Cómo calcular la viscosidad cinemática en Python usando UliEngineering
- Cómo calcular el caudal de Poiseuille en Python usando UliEngineering
- Cómo calcular la resistencia de Stokes en Python usando UliEngineering
Script de generación de la gráfica
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import numpy as np
import sys
sys.path.insert(0, '/home/uli/dev/UliEngineering')
from UliEngineering.Physics.Viscosity import reynolds_number
# Velocity range for plotting
v = np.linspace(0.001, 10, 100) # 0.001 to 10 m/s
# Create plot
plt.figure(figsize=(10, 6))
# Fixed parameters (water-like flow in a pipe)
density = 1000.0 # kg/m³
characteristic_length = 0.01 # 1 cm (pipe diameter)
viscosity = 0.001 # Pa·s
# Calculate Reynolds number
Re = reynolds_number(density, v, characteristic_length, viscosity)
plt.plot(v, Re, color='blue', linewidth=2)
plt.xlabel('Velocity (m/s)', fontsize=12)
plt.ylabel('Reynolds Number', fontsize=12)
plt.title('Reynolds Number vs Velocity (Water in 1cm Pipe)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
# Add laminar/turbulent transition lines
plt.axhline(y=2300, color='green', linestyle='--', linewidth=2, label='Laminar limit (2300)')
plt.axhline(y=4000, color='red', linestyle='--', linewidth=2, label='Turbulent onset (4000)')
plt.legend(loc='upper left', fontsize=10)
plt.tight_layout()
plt.savefig('reynolds_plot.svg', format='svg', dpi=300)
print("Plot saved to reynolds_plot.svg")