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 :

stokes_einstein_diffusion.py
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

stokes_einstein_diffusion_output.txt
Coefficient de diffusion (1nm, 25°C, eau) : 4.88e-10 m²/s
Coefficient de diffusion (5nm, 25°C, eau) : 9.76e-11 m²/s

L’é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.

stokes einstein plot.svg

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


Script de génération du graphique

plot_stokes_einstein.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.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)

Check out similar posts by category: Physics, Chemistry, Python