Как вычислить диффузию по Стоксу-Эйнштейну на Python с помощью UliEngineering

Можно легко вычислить коэффициент диффузии по уравнению Стокса-Эйнштейна с помощью библиотеки Python UliEngineering:

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

# Вычислить коэффициент диффузии для частицы в воде при 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')}")

# Вычислить коэффициент диффузии для более крупной частицы
D = stokes_einstein_diffusion("5nm", "25°C", "0.89mPa·s")
print(f"Diffusion coefficient (5nm, 25°C, water): {format_value(D, 'm²/s')}")

Пример вывода

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 einstein plot.svg

Коэффициент диффузии вычисляется по формуле: $D = \frac{k_B T}{6 \pi \eta r}$, где $D$ — коэффициент диффузии, $k_B$ — постоянная Больцмана, $T$ — абсолютная температура в кельвинах, $\eta$ — динамическая вязкость, а $r$ — радиус частицы. Эта зависимость показывает, что диффузия увеличивается с температурой и уменьшается с размером частицы и вязкостью.

График выше показывает, как коэффициент диффузии изменяется с радиусом частицы для частиц в воде при 25°C. Обратите внимание на обратную зависимость: меньшие частицы диффундируют намного быстрее, чем крупные, поэтому наноразмерные частицы демонстрируют быстрое броуновское движение.

Связанные записи


Скрипт для построения графика

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

# Диапазон радиусов частиц для построения графика
r = np.linspace(1e-9, 10e-9, 100)  # от 1 нм до 10 нм

# Создание графика
plt.figure(figsize=(10, 6))

# Фиксированные параметры
temperature = 298.15  # 25°C в кельвинах
viscosity = 0.89e-3  # Па·с (вода при 25°C)

# Расчёт коэффициента диффузии
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: Calculators, Physics, Chemistry, Python