물은 관을 얼마나 흘러야 포물선이 되는가 — 발달 길이와 Hagen–Poiseuille
관 입구 발달 구간, Hagen–Poiseuille 포물선, 마찰계수 64/Re
수도꼭지를 완전히 열면 물줄기가 한동안 매끈하다. 관 속에서도 비슷한 일이 벌어진다. 입구에서 물은 벽의 존재를 거의 느끼지 못한다. 프로파일은 거의 평평하다. 그런데 조금 흐르고 나면 단면 속도 분포가 부드러운 포물선으로 바뀐다. 그 사이 구간이 오늘의 주인공이다.
벽이 소문을 퍼뜨리는 데 걸리는 거리#
관 벽에서 유체는 미끄러지지 않는다(no-slip, 벽 접촉면 속도 0). 이 조건은 입구에서 곧바로 전 단면에 퍼지지 않는다.
벽 근처에만 얇은 경계층(속도가 급변하는 벽 부근 층)이 생긴다. 흐를수록 이 층이 안쪽으로 자란다. 위아래 경계층이 관 중심에서 만나는 순간, 프로파일은 더 이상 변하지 않는다. 이 지점부터를 완전발달(fully developed) 구간이라 부른다.
입구에서 완전발달까지의 거리를 수력학적 발달 길이 라 한다. 층류에서는 관 지름 와 Reynolds 수(관성력/점성력 비)로 정해진다.
은 단면 평균 속도, 는 밀도, 는 점성계수다. 이면 발달 길이가 관 지름의 100배에 달한다. 가는 실험 배관에서 측정 위치를 잘못 잡으면 아직 발달 중인 유동을 재는 셈이다.
아래 시뮬레이션에서 Reynolds 수를 직접 조작해보자.
Re를 100에서 2000까지 올리면 주황색 "fully developed" 선이 오른쪽으로 밀려난다. 입구의 평평한 프로파일이 포물선으로 자리 잡는 데 더 긴 거리가 필요해진다.
완전발달 구간의 포물선 — Hagen–Poiseuille#
완전발달이면 축방향 속도가 더 변하지 않는다. , 반경방향 속도 이다. 원통좌표 운동량 방정식은 단순해진다.
압력 구배 는 상수다. 벽에서 , 중심에서 을 걸고 두 번 적분한다.
는 관 반지름, 는 중심에서의 거리다. 결과가 깔끔하다. 중심 속도는 평균의 정확히 두 배다. 이 포물선이 Hagen–Poiseuille 흐름이다.
압력은 왜 일정하게 떨어지는가 — 마찰계수#
포물선을 단면에 걸쳐 평균하면 평균 속도와 압력 구배가 직접 연결된다.
구배가 상수라는 건 압력이 관을 따라 직선으로 떨어진다는 뜻이다. 이 손실을 무차원으로 묶은 것이 Darcy 마찰계수 다.
층류 마찰계수는 오직 Reynolds 수만으로 결정된다. 관 거칠기는 끼어들지 않는다. 아래에서 Reynolds 수를 바꾸며 마찰계수 곡선 위 점을 옮겨보자.
구간에서 점은 직선을 정확히 따라간다. 문턱을 넘기면 곡선이 꺾이며 다른 법칙으로 갈아탄다.
2300이라는 문턱 — 층류에서 난류로#
가 약 2300을 넘으면 매끈하던 유동이 흐트러진다. 소용돌이가 섞이며 난류로 천이한다.
난류에서는 발달 길이가 짧아진다. 가 대략 10~60에 머문다. 층류의 100배와 대비된다. 대신 마찰은 커진다. 매끈한 관의 경험식 하나가 Blasius 식이다.
지수가 에서 로 완만해진다. Reynolds 수를 올려도 마찰이 예전만큼 빨리 떨어지지 않는다. 같은 유량을 더 큰 압력으로 밀어야 한다.
Python으로 재현하는 발달 길이와 마찰#
작은 배관 하나를 숫자로 따라가 보자.
import numpy as np
def entrance_length(Re, D):
# 층류 수력학적 발달 길이 [m]
return 0.05 * Re * D
def poiseuille_profile(r, R, u_mean):
# 완전발달 층류 속도 분포 (Hagen-Poiseuille)
return 2.0 * u_mean * (1.0 - (r / R) ** 2)
def darcy_friction(Re):
# 층류 마찰계수 (Re < 2300)
return 64.0 / Re
D = 0.02 # 관 지름 [m]
rho, mu = 1000.0, 1e-3
u_mean = 0.08 # 평균 속도 [m/s]
Re = rho * u_mean * D / mu
print(f"Re = {Re:.0f}") # Re = 1600
print(f"발달 길이 = {entrance_length(Re, D):.2f} m") # 1.60 m
print(f"중심 속도 = {poiseuille_profile(0, D/2, u_mean):.3f} m/s") # 0.160
dpdx = -32 * mu * u_mean / D**2
print(f"압력 구배 = {dpdx:.2f} Pa/m") # -6.40 Pa/m
print(f"마찰계수 f = {darcy_friction(Re):.4f}") # 0.0400지름 2 cm 관인데 발달 길이가 1.6 m다. 관 지름의 80배다. 실험대 위 짧은 배관은 대부분 발달 중인 유동을 다룬다.
다음에 관 유동을 만나면#
관 유동의 본질은 "벽의 정보가 중심까지 스미는 과정"이다. 세 가지만 남기자.
- 입구 구간에서는 프로파일이 계속 바뀐다. 발달 길이는 까지 늘어난다.
- 완전발달 층류는 포물선이다. 중심 속도는 평균의 두 배, 마찰계수는 .
- 에서 천이한다. 난류는 발달이 빠르지만 마찰이 크다.
도움이 됐다면 공유해주세요.