Comment calculer la diffusion de Stokes-Einstein en Python avec UliEngineering
Vous pouvez facilement calculer le coefficient de diffusion en utilisant l’équation de Stokes-Einstein avec la bibliothèque Python UliEngineering :
from UliEngineering.Physics import stokes_einstein_diffusion
from UliEngineering.EngineerIO import *
# Calculer le coefficient de diffusion pour une particule dans l'eau à 25°C
D = stokes_einstein_diffusion("1nm", "25°C", "0.89mPa·s")
print(f"Coefficient de diffusion (1nm, 25°C, eau) : {format_value(D, 'm²/s')}")
# Calculer le coefficient de diffusion pour une particule plus grande
D = stokes_einstein_diffusion("5nm", "25°C", "0.89mPa·s")
print(f"Coefficient de diffusion (5nm, 25°C, eau) : {format_value(D, 'm²/s')}")Exemple de sortie
Coefficient de diffusion (1nm, 25°C, eau) : 4.88e-10 m²/s
Coefficient de diffusion (5nm, 25°C, eau) : 9.76e-11 m²/sL’équation de Stokes-Einstein relie le coefficient de diffusion d’une particule sphérique à sa taille, à la température et à la viscosité du fluide. Cela est fondamental pour comprendre le mouvement brownien, le transport de particules dans les fluides et la conception de procédés de séparation en chimie et en biophysique.
Le coefficient de diffusion est calculé en utilisant la formule : $D = \frac{k_B T}{6 \pi \eta r}$, où $D$ est le coefficient de diffusion, $k_B$ est la constante de Boltzmann, $T$ est la température absolue en Kelvin, $\eta$ est la viscosité dynamique, et $r$ est le rayon de la particule. La relation montre que la diffusion augmente avec la température et diminue avec la taille de la particule et la viscosité.
Le graphique ci-dessus montre comment le coefficient de diffusion varie en fonction du rayon de la particule pour des particules dans l’eau à 25°C. Remarquez la relation inverse : les petites particules diffusent beaucoup plus rapidement que les grandes, c’est pourquoi les particules à l’échelle nanométrique présentent un mouvement brownien rapide.
Articles liés
- Comment calculer la valeur B d’une thermistance en Python avec UliEngineering
- Comment calculer la température d’une thermistance en Python avec UliEngineering
- Comment convertir des moles en grammes 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.Chemistry.StokesEinstein import stokes_einstein_diffusion
# Plage de rayons de particules pour le tracé
r = np.linspace(1e-9, 10e-9, 100) # 1 nm à 10 nm
# Créer le graphique
plt.figure(figsize=(10, 6))
# Paramètres fixes
temperature = 298.15 # 25°C en Kelvin
viscosity = 0.89e-3 # Pa·s (eau à 25°C)
# Calculer le coefficient de diffusion
D = stokes_einstein_diffusion(r, temperature, viscosity)
plt.plot(r * 1e9, D * 1e12, color='blue', linewidth=2)
plt.xlabel('Particle Radius (nm)', fontsize=12)
plt.ylabel('Diffusion Coefficient (×10⁻¹² m²/s)', fontsize=12)
plt.title('Stokes-Einstein Diffusion vs Particle Radius (25°C, water)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('stokes_einstein_plot.svg', format='svg', dpi=300)