Python: Stokes-Einstein-Diffusion mit UliEngineering berechnen
Du kannst leicht den Diffusionskoeffizienten mit der Stokes-Einstein-Gleichung und der UliEngineering-Python-Bibliothek berechnen:
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
Diffusionskoeffizient (1nm, 25°C, Wasser): 4.88e-10 m²/s
Diffusionskoeffizient (5nm, 25°C, Wasser): 9.76e-11 m²/sDie 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.
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
- How to compute thermistor B value in Python using UliEngineering
- How to compute thermistor temperature in Python using UliEngineering
- How to convert moles to grams in Python using UliEngineering
Plot-Erzeugungsskript
#!/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)