Comment calculer le nombre de Reynolds en Python avec UliEngineering
Vous pouvez facilement calculer le nombre de Reynolds en utilisant la bibliothèque Python UliEngineering. Le nombre de Reynolds est une quantité sans dimension qui prédit les modèles d’écoulement en dynamique des fluides :
from UliEngineering.Physics.Viscosity import reynolds_number
from UliEngineering.EngineerIO import *
# Calculer le nombre de Reynolds pour un écoulement d'eau dans un tuyau
density = 998.2 # kg/m³ (eau)
velocity = 1.0 # m/s
characteristic_length = 0.01 # 1 cm (diamètre du tuyau)
viscosity = 0.001 # Pa·s (eau)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Nombre de Reynolds : {Re:.0f}")
# Calculer le nombre de Reynolds pour un écoulement d'air
density = 1.225 # kg/m³ (air)
velocity = 10.0 # m/s
characteristic_length = 0.1 # 10 cm
viscosity = 1.8e-5 # Pa·s (air)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Nombre de Reynolds de l'air : {Re:.0f}")
# Calculer le nombre de Reynolds pour un écoulement de glycérine
density = 1261.0 # kg/m³ (glycérine)
velocity = 0.1 # m/s
characteristic_length = 0.01 # 1 cm
viscosity = 1.412 # Pa·s (glycérine)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Nombre de Reynolds de la glycérine : {Re:.0f}")Exemple de sortie
Nombre de Reynolds : 9982
Nombre de Reynolds de l'air : 68083
Nombre de Reynolds de la glycérine : 9Le nombre de Reynolds est donné par :
$$ Re = \frac{\rho v L}{\eta} $$où $Re$ est le nombre de Reynolds, $\rho$ est la densité du fluide, $v$ est la vitesse d’écoulement, $L$ est la longueur caractéristique (comme le diamètre du tuyau), et $\eta$ est la viscosité dynamique.
Le nombre de Reynolds indique si l’écoulement est laminaire ou turbulent :
- Re < 2300 : Écoulement laminaire (lisse, ordonné)
- 2300 < Re < 4000 : Écoulement transitoire
- Re > 4000 : Écoulement turbulent (chaotique, avec mélange)
Le graphique ci-dessus montre comment le nombre de Reynolds varie en fonction de la vitesse pour de l’eau s’écoulant dans un tuyau de 1 cm de diamètre. La ligne verte pointillée à Re = 2300 marque la transition de l’écoulement laminaire à transitoire, tandis que la ligne rouge pointillée à Re = 4000 marque le début de l’écoulement turbulent.
Le nombre de Reynolds est fondamental pour la mécanique des fluides et est utilisé dans l’analyse des écoulements en tuyau, l’aérodynamique, le transfert de chaleur et de nombreuses autres applications d’ingénierie. Il représente le rapport entre les forces d’inertie et les forces visqueuses dans un fluide.
Articles liés
- Comment calculer la viscosité cinématique en Python avec UliEngineering
- Comment calculer le débit de Poiseuille en Python avec UliEngineering
- Comment calculer la traînée de Stokes en Python avec UliEngineering
Script de génération du graphique
#!/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
# Plage de vitesses pour le tracé
v = np.linspace(0.001, 10, 100) # 0.001 à 10 m/s
# Créer le graphique
plt.figure(figsize=(10, 6))
# Paramètres fixes (écoulement de type eau dans un tuyau)
density = 1000.0 # kg/m³
characteristic_length = 0.01 # 1 cm (diamètre du tuyau)
viscosity = 0.001 # Pa·s
# Calculer le nombre de Reynolds
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)
# Ajouter les lignes de transition laminaire/turbulent
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")