Viscosité d'Andrade : calcul en Python avec UliEngineering

Vous pouvez facilement calculer la viscosité d’Andrade des liquides à l’aide de la bibliothèque Python UliEngineering. L’équation d’Andrade est un modèle de type Arrhenius qui décrit la dépendance de la viscosité à la température :

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

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

# Calculer la viscosité d'Andrade de l'éthanol à 50°C
T = 50 + 273.15
eta = andrade_viscosity(T, CommonLiquids.Ethanol.andrade)
print(f"Viscosité de l'éthanol à 50°C : {format_value(eta, 'Pa·s')}")

# Utilisation de constantes d'Andrade personnalisées
from UliEngineering.Physics.Viscosity import AndradeConstants
custom = AndradeConstants(name="Custom liquid", A=1.0e-6, B=2000.0)
eta = andrade_viscosity(300.0, custom)
print(f"Viscosité du liquide personnalisé à 300K : {format_value(eta, 'Pa·s')}")

Exemple de sortie

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

andrade viscosity plot.svg

L’équation d’Andrade est donnée par :

$$ \eta = A \cdot \exp\left(\frac{B}{T}\right) $$

où $\eta$ est la viscosité dynamique, $T$ est la température absolue en Kelvin, et $A$ et $B$ sont des constantes spécifiques au matériau. Le paramètre $B$ est lié à l’énergie d’activation de l’écoulement visqueux.

Le graphique ci-dessus montre le modèle de viscosité d’Andrade pour plusieurs liquides courants sur une plage de températures allant de 0°C à 100°C. Notez que la viscosité diminue de façon exponentielle avec la température, ce qui est caractéristique de la plupart des liquides.

La bibliothèque UliEngineering fournit des constantes d’Andrade prédéfinies pour des liquides courants comme l’eau, l’éthanol, le méthanol, la glycérine, l’huile d’olive, le mercure, l’acétone et le benzène via la classe CommonLiquids.

Articles liés


Script de génération du graphique

plot_andrade_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 (
    andrade_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 différents liquides courants
liquids_to_plot = [
    ('Water', CommonLiquids.Water.andrade, 'blue'),
    ('Ethanol', CommonLiquids.Ethanol.andrade, 'green'),
    ('Methanol', CommonLiquids.Methanol.andrade, 'red'),
    ('Glycerol', CommonLiquids.Glycerol.andrade, 'purple'),
    ('Mercury', CommonLiquids.Mercury.andrade, 'orange'),
]

for name, constants, color in liquids_to_plot:
    eta = andrade_viscosity(T_K, constants) * 1000  # Convertir en mPa·s
    plt.plot(T_C, eta, label=name, color=color, linewidth=2)

plt.xlabel('Température (°C)', fontsize=12)
plt.ylabel('Viscosité dynamique (mPa·s)', fontsize=12)
plt.title('Modèle de viscosité d\'Andrade pour les liquides courants', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)
plt.yscale('log')  # Échelle logarithmique car les viscosités couvrent plusieurs ordres de grandeur

plt.tight_layout()
plt.savefig('andrade_viscosity_plot.svg', format='svg', dpi=300)
print("Graphique enregistré dans andrade_viscosity_plot.svg")

Check out similar posts by category: Physics, Python