Comment calculer la viscosité de Swindells en Python avec UliEngineering

Vous pouvez facilement calculer la corrélation de viscosité de Swindells en utilisant la bibliothèque Python UliEngineering. La corrélation de Swindells est un modèle empirique couramment utilisé pour la viscosité de l’eau :

swindells_viscosity.py
from UliEngineering.Physics.Viscosity import swindells_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *

# Calculer la viscosité de Swindells de l'eau à 20°C
T = 20 + 273.15  # Convertir en Kelvin
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Viscosité de l'eau à 20°C : {format_value(eta, 'Pa·s')}")

# Calculer la viscosité de Swindells de l'eau à 50°C
T = 50 + 273.15
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Viscosité de l'eau à 50°C : {format_value(eta, 'Pa·s')}")

# Utilisation de constantes de Swindells personnalisées
from UliEngineering.Physics.Viscosity import SwindellsConstants
custom = SwindellsConstants(name="Custom liquid", eta_ref=1.0e-3, T_ref=293.15, a=1.5, b=-150.0)
eta = swindells_viscosity(300.0, custom)
print(f"Viscosité du liquide personnalisé à 300K : {format_value(eta, 'Pa·s')}")

Exemple de sortie

swindells_viscosity_output.txt
Viscosité de l'eau à 20°C : 1.00 mPa·s
Viscosité de l'eau à 50°C : 546 µPa·s
Viscosité du liquide personnalisé à 300K : 1.00 mPa·s

swindells viscosity plot.svg

La corrélation de Swindells est donnée par :

$$ \eta = \eta_{ref} \cdot 10^{\left(-\frac{a \cdot (T - T_{ref})}{T + b}\right)} $$

où $\eta$ est la viscosité dynamique, $T$ est la température absolue en Kelvin, $\eta_{ref}$ est la viscosité de référence à la température de référence $T_{ref}$, et $a$ et $b$ sont des paramètres empiriques spécifiques au fluide.

La corrélation de Swindells a été développée spécifiquement pour l’eau et offre une excellente précision sur une large plage de températures. Elle est particulièrement utile dans les applications d’ingénierie où la viscosité de l’eau doit être calculée à différentes températures.

Le graphique ci-dessus montre la corrélation de Swindells pour l’eau sur une plage de températures allant de 0°C à 100°C. Remarquez la diminution exponentielle caractéristique de la viscosité avec l’augmentation de la température.

La bibliothèque UliEngineering fournit des constantes de Swindells prédéfinies pour l’eau via CommonLiquids.Water.swindells. Des constantes personnalisées peuvent être définies en utilisant la dataclass SwindellsConstants pour d’autres fluides.

Articles liés


Script de génération du graphique

plot_swindells_viscosity.py
#!/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 (
    swindells_viscosity,
    CommonLiquids,
)

# Plage de températures en Celsius pour le tracé
T_C = np.linspace(0, 100, 200)  # 0 à 100°C
T_K = T_C + 273.15  # Convertir en Kelvin

# Créer le graphique
plt.figure(figsize=(10, 6))

# Tracé pour l'eau utilisant la corrélation de Swindells
eta = swindells_viscosity(T_K, CommonLiquids.Water.swindells) * 1000  # Convertir en mPa·s
plt.plot(T_C, eta, label='Water', color='blue', linewidth=2)

plt.xlabel('Temperature (°C)', fontsize=12)
plt.ylabel('Dynamic Viscosity (mPa·s)', fontsize=12)
plt.title('Swindells Viscosity Correlation for Water', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('swindells_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to swindells_viscosity_plot.svg")

Check out similar posts by category: Physics, Python