Como calcular a viscosidade de Swindells em Python usando UliEngineering

Você pode calcular facilmente a correlação de viscosidade de Swindells usando a biblioteca Python UliEngineering. A correlação de Swindells é um modelo empírico comumente usado para viscosidade da água:

K
Pa·s
K
K
swindells_viscosity.py
from UliEngineering.Physics.Viscosity import swindells_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *

# Calcular viscosidade de Swindells da água a 20°C
T = 20 + 273.15  # Converter para Kelvin
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Water viscosity at 20°C: {format_value(eta, 'Pa·s')}")

# Calcular viscosidade de Swindells da água a 50°C
T = 50 + 273.15
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Water viscosity at 50°C: {format_value(eta, 'Pa·s')}")

# Usando constantes de Swindells personalizadas
from UliEngineering.Physics.Viscosity import SwindellsConstants
custom = SwindellsConstants(name="Custom liquid", eta_ref=1.0e-3, T_ref=293.15, a=1.5, b=-150.0)
eta = swindells_viscosity(300.0, custom)
print(f"Custom liquid viscosity at 300K: {format_value(eta, 'Pa·s')}")

Exemplo de saída

swindells_viscosity_output.txt
Water viscosity at 20°C: 1.00 mPa·s
Water viscosity at 50°C: 546 µPa·s
Custom liquid viscosity at 300K: 1.00 mPa·s

swindells viscosity plot.svg

A correlação de Swindells é dada por:

$$ \eta = \eta_{ref} \cdot 10^{\left(-\frac{a \cdot (T - T_{ref})}{T + b}\right)} $$

onde $\eta$ é a viscosidade dinâmica, $T$ é a temperatura absoluta em Kelvin, $\eta_{ref}$ é a viscosidade de referência na temperatura de referência $T_{ref}$, e $a$ e $b$ são parâmetros empíricos específicos do fluido.

A correlação de Swindells foi desenvolvida especificamente para água e fornece excelente precisão ao longo de uma ampla faixa de temperatura. É particularmente útil em aplicações de engenharia onde a viscosidade da água precisa ser calculada em várias temperaturas.

O gráfico acima mostra a correlação de Swindells para água ao longo de uma faixa de temperatura de 0°C a 100°C. Note a característica diminuição exponencial da viscosidade com o aumento da temperatura.

A biblioteca UliEngineering fornece constantes de Swindells pré-definidas para água através de CommonLiquids.Water.swindells. Constantes personalizadas podem ser definidas usando o dataclass SwindellsConstants para outros fluidos.

Posts relacionados


Script de geração do gráfico

plot_swindells_viscosity.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 (
    swindells_viscosity,
    CommonLiquids,
)

# Faixa de temperatura em Celsius para plotagem
T_C = np.linspace(0, 100, 200)  # 0 a 100°C
T_K = T_C + 273.15  # Converter para Kelvin

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

# Plotar para água usando correlação de Swindells
eta = swindells_viscosity(T_K, CommonLiquids.Water.swindells) * 1000  # Converter para mPa·s
plt.plot(T_C, eta, label='Water', color='blue', linewidth=2)

plt.xlabel('Temperature (°C)', fontsize=12)
plt.ylabel('Dynamic Viscosity (mPa·s)', fontsize=12)
plt.title('Swindells Viscosity Correlation for Water', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)

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

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