Como calcular o arrasto de Stokes em Python usando UliEngineering

Você pode calcular facilmente a força de arrasto em uma esfera movendo-se através de um fluido viscoso usando a lei de Stokes com a biblioteca Python UliEngineering:

TechOverflow calculators:
You can enter values with SI suffixes like 12.2m (equivalent to 0.012) or 14k (14000) or 32u (0.000032).
The results are calculated while you type and shown directly below the calculator, so there is no need to press return or click on a Calculate button.
m
m/s
Pa·s
stokes_drag.py
from UliEngineering.Physics.Viscosity import stokes_drag
from UliEngineering.EngineerIO import *

# Calcular força de arrasto em uma esfera de 10 µm na água
radius = 10e-6  # 10 µm
velocity = 0.01  # 1 cm/s
viscosity = 0.001  # Pa·s (água)

F = stokes_drag(radius, velocity, viscosity)
print(f"Drag force: {format_value(F, 'N')}")

# Calcular força de arrasto em uma esfera de 1 µm na água
radius = 1e-6
F = stokes_drag(radius, velocity, viscosity)
print(f"Drag force (1 µm sphere): {format_value(F, 'N')}")

# Calcular força de arrasto em fluido mais viscoso (glicerol)
viscosity = 1.412  # Pa·s (glicerol a 20°C)
F = stokes_drag(10e-6, velocity, viscosity)
print(f"Drag force in glycerol: {format_value(F, 'N')}")

Exemplo de saída

stokes_drag_output.txt
Drag force: 1.88 pN
Drag force (1 µm sphere): 188 fN
Drag force in glycerol: 2.66 nN

stokes drag plot.svg

A lei de Stokes é dada por:

$$ F = 6 \pi \eta r v $$

onde $F$ é a força de arrasto, $\eta$ é a viscosidade dinâmica, $r$ é o raio da esfera, e $v$ é a velocidade.

A lei de Stokes descreve a força de arrasto em uma esfera movendo-se através de um fluido viscoso em baixos números de Reynolds (tipicamente Re < 1). Este regime é chamado de fluxo de arrasto ou fluxo de Stokes, onde os efeitos inerciais são negligenciáveis comparados aos efeitos viscosos. A relação linear com velocidade e raio torna esta lei particularmente útil para analisar pequenas partículas em fluidos.

O gráfico acima mostra como a força de arrasto varia com o raio da esfera para uma velocidade fixa de 1 cm/s em um fluido tipo água (η = 1 mPa·s). Note o aumento linear da força de arrasto com o raio, como previsto pela lei de Stokes.

Esta lei é fundamental em muitas aplicações incluindo análise de sedimentação, dimensionamento de partículas, microfluídica e compreensão do movimento de células biológicas e nanopartículas em ambientes fluidos.

Posts relacionados


Script de geração do gráfico

plot_stokes_drag.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.Physics.Viscosity import stokes_drag

# Faixa de raio de esfera para plotagem
r = np.linspace(1e-6, 1e-4, 100)  # 1 µm a 100 µm

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

# Parâmetros fixos
velocity = 0.01  # m/s
viscosity = 0.001  # Pa·s (tipo água)

# Calcular força de arrasto
F = stokes_drag(r, velocity, viscosity) * 1e12  # Converter para pN

plt.plot(r * 1e6, F, color='blue', linewidth=2)
plt.xlabel('Sphere Radius (µm)', fontsize=12)
plt.ylabel('Drag Force (pN)', fontsize=12)
plt.title('Stokes Drag vs Sphere Radius (v = 1 cm/s, η = 1 mPa·s)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('stokes_drag_plot.svg', format='svg', dpi=300)
print("Plot saved to stokes_drag_plot.svg")

Check out similar posts by category: Calculators, Physics, Python