Como calcular a difusão de Stokes-Einstein em Python usando UliEngineering

Você pode calcular facilmente o coeficiente de difusão usando a equação de Stokes-Einstein com a biblioteca Python UliEngineering:

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

# Calcular coeficiente de difusão para uma partícula na água a 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')}")

# Calcular coeficiente de difusão para uma partícula maior
D = stokes_einstein_diffusion("5nm", "25°C", "0.89mPa·s")
print(f"Diffusion coefficient (5nm, 25°C, water): {format_value(D, 'm²/s')}")

Exemplo de saída

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

A equação de Stokes-Einstein relaciona o coeficiente de difusão de uma partícula esférica ao seu tamanho, à temperatura e à viscosidade do fluido. Isso é fundamental para compreender o movimento browniano, transporte de partículas em fluidos e projeto de processos de separação em química e biofísica.

stokes einstein plot.svg

O coeficiente de difusão é calculado usando a fórmula: $D = \frac{k_B T}{6 \pi \eta r}$, onde $D$ é o coeficiente de difusão, $k_B$ é a constante de Boltzmann, $T$ é a temperatura absoluta em Kelvin, $\eta$ é a viscosidade dinâmica, e $r$ é o raio da partícula. A relação mostra que a difusão aumenta com a temperatura e diminui com o tamanho da partícula e a viscosidade.

O gráfico acima mostra como o coeficiente de difusão varia com o raio da partícula para partículas na água a 25°C. Note a relação inversa: partículas menores se difundem muito mais rápido do que as maiores, razão pela qual partículas em escala nanométrica exibem movimento browniano rápido.

Posts relacionados


Script de geração do gráfico

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

# Faixa de raio de partícula para plotagem
r = np.linspace(1e-9, 10e-9, 100)  # 1 nm a 10 nm

# Criar gráfico
plt.figure(figsize=(10, 6))

# Parâmetros fixos
temperature = 298.15  # 25°C em Kelvin
viscosity = 0.89e-3  # Pa·s (água a 25°C)

# Calcular coeficiente de difusão
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