Как вычислить число Рейнольдса на Python с помощью UliEngineering
Можно легко вычислить число Рейнольдса с помощью библиотеки Python UliEngineering. Число Рейнольдса — безразмерная величина, прогнозирующая режимы течения в гидродинамике:
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.
from UliEngineering.Physics.Viscosity import reynolds_number
from UliEngineering.EngineerIO import *
# Вычислить число Рейнольдса для потока воды в трубе
density = 998.2 # кг/м³ (вода)
velocity = 1.0 # м/с
characteristic_length = 0.01 # 1 см (диаметр трубы)
viscosity = 0.001 # Па·с (вода)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Reynolds number: {Re:.0f}")
# Вычислить число Рейнольдса для потока воздуха
density = 1.225 # кг/м³ (воздух)
velocity = 10.0 # м/с
characteristic_length = 0.1 # 10 см
viscosity = 1.8e-5 # Па·с (воздух)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Air Reynolds number: {Re:.0f}")
# Вычислить число Рейнольдса для потока глицерина
density = 1261.0 # кг/м³ (глицерин)
velocity = 0.1 # м/с
characteristic_length = 0.01 # 1 см
viscosity = 1.412 # Па·с (глицерин)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Glycerol Reynolds number: {Re:.0f}")Пример вывода
Reynolds number: 9982
Air Reynolds number: 68083
Glycerol Reynolds number: 9Число Рейнольдса задаётся формулой:
$$ Re = \frac{\rho v L}{\eta} $$где $Re$ — число Рейнольдса, $\rho$ — плотность жидкости, $v$ — скорость потока, $L$ — характерная длина (например, диаметр трубы), а $\eta$ — динамическая вязкость.
Число Рейнольдса указывает, является ли течение ламинарным или турбулентным:
- Re < 2300: Ламинарное течение (гладкое, упорядоченное)
- 2300 < Re < 4000: Переходное течение
- Re > 4000: Турбулентное течение (хаотическое, смешивающее)
График выше показывает, как число Рейнольдса изменяется со скоростью для воды, текущей через трубу диаметром 1 см. Зелёная пунктирная линия при Re = 2300 отмечает переход от ламинарного к переходному течению, а красная пунктирная линия при Re = 4000 отмечает начало турбулентного течения.
Число Рейнольдса фундаментально для механики жидкости и используется в анализе потока в трубах, аэродинамике, теплопередаче и многих других инженерных применениях. Оно представляет отношение инерционных сил к вязким силам в жидкости.
Связанные записи
- Как вычислить кинематическую вязкость на Python с помощью UliEngineering
- Как вычислить расход Пуазёйля на Python с помощью UliEngineering
- Как вычислить сопротивление Стокса на Python с помощью 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.Physics.Viscosity import reynolds_number
# Диапазон скоростей для построения графика
v = np.linspace(0.001, 10, 100) # от 0,001 до 10 м/с
# Создание графика
plt.figure(figsize=(10, 6))
# Фиксированные параметры (водоподобный поток в трубе)
density = 1000.0 # кг/м³
characteristic_length = 0.01 # 1 см (диаметр трубы)
viscosity = 0.001 # Па·с
# Расчёт числа Рейнольдса
Re = reynolds_number(density, v, characteristic_length, viscosity)
plt.plot(v, Re, color='blue', linewidth=2)
plt.xlabel('Velocity (m/s)', fontsize=12)
plt.ylabel('Reynolds Number', fontsize=12)
plt.title('Reynolds Number vs Velocity (Water in 1cm Pipe)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
# Добавление линий перехода ламинарный/турбулентный
plt.axhline(y=2300, color='green', linestyle='--', linewidth=2, label='Laminar limit (2300)')
plt.axhline(y=4000, color='red', linestyle='--', linewidth=2, label='Turbulent onset (4000)')
plt.legend(loc='upper left', fontsize=10)
plt.tight_layout()
plt.savefig('reynolds_plot.svg', format='svg', dpi=300)
print("Plot saved to reynolds_plot.svg")