Jak vypočítat Stokes-Einsteinovu difuzi v Pythonu pomocí UliEngineering

Můžete snadno vypočítat difuzní koeficient pomocí Stokes-Einsteinovy rovnice s knihovnou UliEngineering v Pythonu:

K
Pa·s
m
stokes_einstein_diffusion.py
from UliEngineering.Physics import stokes_einstein_diffusion
from UliEngineering.EngineerIO import *

# Výpočet difuzního koeficientu pro částici ve vodě při 25°C
D = stokes_einstein_diffusion("1nm", "25°C", "0.89mPa·s")
print(f"Diffusion coefficient (1nm, 25°C, water): {format_value(D, 'm²/s')}")

# Výpočet difuzního koeficientu pro větší částici
D = stokes_einstein_diffusion("5nm", "25°C", "0.89mPa·s")
print(f"Diffusion coefficient (5nm, 25°C, water): {format_value(D, 'm²/s')}")

Příklad výstupu

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

Stokes-Einsteinova rovnice vztahuje difuzní koeficient kulové částice k její velikosti, teplotě a viskozitě kapaliny. To je základní pro pochopení Brownova pohybu, transportu částic v kapalinách a návrh separačních procesů v chemii a biofyzice.

stokes einstein plot.svg

Difuzní koeficient se počítá pomocí vzorce: $D = \frac{k_B T}{6 \pi \eta r}$, kde $D$ je difuzní koeficient, $k_B$ je Boltzmannova konstanta, $T$ je absolutní teplota v Kelvinech, $\eta$ je dynamická viskozita a $r$ je poloměr částice. Vztah ukazuje, že difuze roste s teplotou a klesá s velikostí částice a viskozitou.

Graf výše ukazuje, jak difuzní koeficient závisí na poloměru částice pro částice ve vodě při 25°C. Všimněte si inverzního vztahu: menší částice difundují mnohem rychleji než větší, což je důvod, proč nanoskopické částice vykazují rychlý Brownův pohyb.

Související příspěvky


Skript pro generování grafu

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

# Rozsah poloměrů částic pro graf
r = np.linspace(1e-9, 10e-9, 100)  # 1 nm až 10 nm

# Vytvoření grafu
plt.figure(figsize=(10, 6))

# Pevné parametry
temperature = 298.15  # 25°C v Kelvinech
viscosity = 0.89e-3  # Pa·s (voda při 25°C)

# Výpočet difuzního koeficientu
D = stokes_einstein_diffusion(r, temperature, viscosity)

plt.plot(r * 1e9, D * 1e12, color='blue', linewidth=2)
plt.xlabel('Poloměr částice (nm)', fontsize=12)
plt.ylabel('Difuzní koeficient (×10⁻¹² m²/s)', fontsize=12)
plt.title('Stokes-Einsteinova difuze vs poloměr částice (25°C, voda)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('stokes_einstein_plot.svg', format='svg', dpi=300)

Podívejte se na podobné články podle kategorie: Calculators, Physics, Chemistry, Python