Python: Stokes-Einstein-Diffusion mit UliEngineering berechnen

English Deutsch

Du kannst leicht den Diffusionskoeffizienten mit der Stokes-Einstein-Gleichung und der UliEngineering-Python-Bibliothek berechnen:

stokes_einstein_diffusion.py
from UliEngineering.Physics import stokes_einstein_diffusion
from UliEngineering.EngineerIO import *

# Diffusionskoeffizient für ein Partikel in Wasser bei 25°C berechnen
D = stokes_einstein_diffusion("1nm", "25°C", "0.89mPa·s")
print(f"Diffusionskoeffizient (1nm, 25°C, Wasser): {format_value(D, 'm²/s')}")

# Diffusionskoeffizient für ein größeres Partikel berechnen
D = stokes_einstein_diffusion("5nm", "25°C", "0.89mPa·s")
print(f"Diffusionskoeffizient (5nm, 25°C, Wasser): {format_value(D, 'm²/s')}")

Beispielausgabe

stokes_einstein_diffusion_output.txt
Diffusionskoeffizient (1nm, 25°C, Wasser): 4.88e-10 m²/s
Diffusionskoeffizient (5nm, 25°C, Wasser): 9.76e-11 m²/s

Die Stokes-Einstein-Gleichung setzt den Diffusionskoeffizienten eines kugelförmigen Partikels mit seiner Größe, der Temperatur und der Viskosität des Fluids in Beziehung. Dies ist grundlegend für das Verständnis der Brownschen Bewegung, des Partikeltransports in Fluiden und die Auslegung von Trennprozessen in Chemie und Biophysik.

stokes einstein plot.svg

Der Diffusionskoeffizient wird mit der Formel $D = \frac{k_B T}{6 \pi \eta r}$ berechnet, wobei $D$ der Diffusionskoeffizient, $k_B$ die Boltzmann-Konstante, $T$ die absolute Temperatur in Kelvin, $\eta$ die dynamische Viskosität und $r$ der Partikelradius ist. Die Beziehung zeigt, dass die Diffusion mit der Temperatur zunimmt und mit Partikelgröße und Viskosität abnimmt.

Der obige Plot zeigt, wie der Diffusionskoeffizient mit dem Partikelradius für Partikel in Wasser bei 25°C variiert. Beachte die umgekehrte Beziehung: kleinere Partikel diffundieren viel schneller als größere, weshalb Nanoskalige Partikel eine schnelle Brownsche Bewegung aufweisen.

Verwandte Beiträge


Plot-Erzeugungsskript

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

# Partikelradiusbereich für Plotting
r = np.linspace(1e-9, 10e-9, 100)  # 1 nm bis 10 nm

# Plot erstellen
plt.figure(figsize=(10, 6))

# Feste Parameter
temperature = 298.15  # 25°C in Kelvin
viscosity = 0.89e-3  # Pa·s (Wasser bei 25°C)

# Diffusionskoeffizient berechnen
D = stokes_einstein_diffusion(r, temperature, viscosity)

plt.plot(r * 1e9, D * 1e12, color='blue', linewidth=2)
plt.xlabel('Partikelradius (nm)', fontsize=12)
plt.ylabel('Diffusionskoeffizient (×10⁻¹² m²/s)', fontsize=12)
plt.title('Stokes-Einstein-Diffusion vs Partikelradius (25°C, Wasser)', 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