Cómo calcular el caudal de Poiseuille en Python usando UliEngineering
Puedes calcular fácilmente el caudal volumétrico para flujo laminar en tuberías cilíndricas usando la ley de Poiseuille con la librería Python UliEngineering:
from UliEngineering.Physics.Viscosity import poiseuille_flow_rate
from UliEngineering.EngineerIO import *
# Calcular caudal para una tubería de radio 5mm
radius = 0.005 # 5mm en metros
pressure_drop = 1000.0 # Pa
length = 1.0 # m
viscosity = 0.001 # Pa·s (agua)
Q = poiseuille_flow_rate(radius, pressure_drop, length, viscosity)
print(f"Caudal: {format_value(Q, 'm³/s')}")
# Calcular caudal para una tubería de radio 10mm
radius = 0.01
Q = poiseuille_flow_rate(radius, pressure_drop, length, viscosity)
print(f"Caudal (tubería 10mm): {format_value(Q, 'm³/s')}")
# Calcular caudal con mayor caída de presión
pressure_drop = 5000.0
Q = poiseuille_flow_rate(0.005, pressure_drop, length, viscosity)
print(f"Caudal (caída 5kPa): {format_value(Q, 'm³/s')}")Ejemplo de salida
Caudal: 4.91 mL/s
Caudal (tubería 10mm): 78.5 mL/s
Caudal (caída 5kPa): 24.5 mL/sLa ley de Poiseuille viene dada por:
$$ Q = \frac{\pi \cdot r^4 \cdot \Delta P}{8 \cdot \eta \cdot L} $$donde $Q$ es el caudal volumétrico, $r$ es el radio de la tubería, $\Delta P$ es la caída de presión a lo largo de la tubería, $\eta$ es la viscosidad dinámica, y $L$ es la longitud de la tubería.
La ley de Poiseuille describe el flujo laminar en tuberías cilíndricas y es válida para números de Reynolds por debajo de aproximadamente 2300. La fuerte dependencia de la cuarta potencia del radio significa que duplicar el radio de la tubería aumenta el caudal en un factor de 16.
La gráfica anterior muestra cómo varía el caudal con el radio de la tubería para una caída de presión, longitud y viscosidad fijas. Observa el aumento dramático del caudal a medida que aumenta el radio, siguiendo la relación $r^4$.
Esta ley es fundamental para la dinámica de fluidos y se usa en aplicaciones que van desde análisis de flujo sanguíneo hasta diseño de tuberías y microfluídica.
Entradas relacionadas
- Cómo calcular la tensión de Bingham en Python usando UliEngineering
- Cómo calcular el número de Reynolds en Python usando UliEngineering
- Cómo calcular la viscosidad cinemática 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 poiseuille_flow_rate
# Pipe radius range for plotting
r = np.linspace(0.001, 0.01, 100) # 1mm to 10mm
# Create plot
plt.figure(figsize=(10, 6))
# Fixed parameters
pressure_drop = 1000.0 # Pa
length = 1.0 # m
viscosity = 0.001 # Pa·s (water-like)
# Calculate flow rate
Q = poiseuille_flow_rate(r, pressure_drop, length, viscosity) * 1e6 # Convert to mL/s
plt.plot(r * 1000, Q, color='blue', linewidth=2)
plt.xlabel('Pipe Radius (mm)', fontsize=12)
plt.ylabel('Flow Rate (mL/s)', fontsize=12)
plt.title('Poiseuille Flow Rate vs Pipe Radius', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('poiseuille_plot.svg', format='svg', dpi=300)
print("Plot saved to poiseuille_plot.svg")