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:
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
Diffusion coefficient (1nm, 25°C, water): 4.88e-10 m²/s
Diffusion coefficient (5nm, 25°C, water): 9.76e-11 m²/sA 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.
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
- Como calcular o valor B do termistor em Python usando UliEngineering
- Como calcular a temperatura do termistor em Python usando UliEngineering
- Como converter mols em gramas em Python usando UliEngineering
Script de geração do gráfico
#!/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)