Як обчислити дифузію Стокса-Ейнштейна у Python за допомогою UliEngineering
Ви можете легко обчислити коефіцієнт дифузії за рівнянням Стокса-Ейнштейна за допомогою бібліотеки Python UliEngineering:
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"Коефіцієнт дифузії (1нм, 25°C, вода): {format_value(D, 'м²/с')}")
# Обчислити коефіцієнт дифузії для більшої частинки
D = stokes_einstein_diffusion("5nm", "25°C", "0.89mPa·s")
print(f"Коефіцієнт дифузії (5нм, 25°C, вода): {format_value(D, 'м²/с')}")Приклад виводу
Коефіцієнт дифузії (1нм, 25°C, вода): 4,88e-10 м²/с
Коефіцієнт дифузії (5нм, 25°C, вода): 9,76e-11 м²/сРівняння Стокса-Ейнштейна пов’язує коефіцієнт дифузії сферичної частинки з її розміром, температурою та в’язкістю рідини. Це є фундаментальним для розуміння броунівського руху, перенесення частинок у рідинах та проєктування процесів розділення в хімії та біофізиці.
Коефіцієнт дифузії обчислюється за формулою: $D = \frac{k_B T}{6 \pi \eta r}$, де $D$ — коефіцієнт дифузії, $k_B$ — стала Больцмана, $T$ — абсолютна температура в кельвінах, $\eta$ — динамічна в’язкість, а $r$ — радіус частинки. Ця залежність показує, що дифузія зростає з температурою та зменшується зі збільшенням розміру частинки та в’язкості.
Графік вище показує, як коефіцієнт дифузії змінюється залежно від радіуса частинки для частинок у воді при 25°C. Зверніть увагу на обернену залежність: менші частинки дифундують набагато швидше, ніж більші, саме тому нанорозмірні частинки виявляють швидкий броунівський рух.
Пов’язані публікації
- 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
Скрипт генерації графіка
#!/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('Радіус частинки (нм)', fontsize=12)
plt.ylabel('Коефіцієнт дифузії (×10⁻¹² м²/с)', fontsize=12)
plt.title('Дифузія Стокса-Ейнштейна залежно від радіуса частинки (25°C, вода)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('stokes_einstein_plot.svg', format='svg', dpi=300)