Skip to content
cfd-lab:~/ko/posts/2026-04-28-rankine-vorte…online
NOTE #027DAY TUE 유체역학DATE 2026.04.28READ 4 min readWORDS 2,222#Vortex#Vorticity#유체역학#유동현상#Helmholtz

회오리의 두 얼굴 — 자유와동·강제와동, 그리고 헬름홀츠

욕조 회오리부터 토네이도까지, 와동과 와도의 진짜 의미

욕조 마개를 뽑으면 물이 빙글빙글 돈다. 우리는 그 광경을 "물이 회전한다"고 부른다. 그런데 유체역학자는 그 영역 대부분에 대해 "거기서는 회전이 일어나지 않는다(irrotational)"라고 답한다. 모순처럼 들리는 이 진술에 와동(vortex)의 정체가 숨어 있다. 이 글은 같은 그림 안에 공존하는 자유와동(free vortex, 1/r1/r 속도)과 강제와동(forced vortex, ωr\omega r 속도)을 갈라보고, 와도(vorticity, 자전 각속도의 두 배)가 정확히 무엇을 재는지 짚은 뒤, 헬름홀츠(Helmholtz) 정리가 왜 와동을 "불멸"이라 부르는지까지 따라간다.

욕조 회오리는 정말 '회전'인가#

답부터 적자. 회전이란 단어에 두 의미가 섞여 있다. 첫째는 공전 — 어떤 점을 중심으로 원운동을 한다. 둘째는 자전 — 입자 자신이 돌고 있다. 욕조 회오리에서 물 입자는 공전한다. 그러나 자전은? 마개에서 멀리 떨어진 영역에서는 거의 일어나지 않는다. 떠 있는 작은 나뭇잎은 빙글빙글 도는 길을 따라가지만, 자기 자신을 회전시키지는 않는다. 항상 같은 면이 마개를 향한다.

유체역학에서 "회전"은 자전을 의미한다. 그래서 자유와동에서는 모든 영역이 "회전 없음"으로 분류된다.

강제와동과 자유와동: 같은 그림, 다른 영혼#

회전 원통에 든 물을 오래 저으면 액체 전체가 강체처럼 함께 돈다. 이를 강제와동이라 부른다. 입자는 공전하면서 동시에 자전한다.

uθ(r)=ωru_\theta(r) = \omega \, r

여기서 uθu_\theta는 접선 속도, ω\omega는 강체 회전의 각속도, rr은 중심으로부터의 거리다. 속도가 거리에 비례한다.

반대로 점성을 무시한 이상 유체에서 자연스럽게 만들어지는 회오리는 자유와동(=포텐셜와동)이다.

uθ(r)=Γ2πru_\theta(r) = \frac{\Gamma}{2\pi r}

Γ\Gamma는 순환(circulation, 닫힌 경로를 따라 적분한 속도). 속도가 1/r1/r로 감소한다. 중심에서는 무한대로 발산한다 — 이 특이점을 점성이 길들인다.

강제와동자유와동
속도ωr\omega rΓ/2πr\Gamma / 2\pi r
자전있음없음
에너지 공급외부에서 계속처음 한 번만
일상 예회전 컵의 물욕조·토네이도

같은 원운동인데 자전 여부가 다르다. 이 차이를 정량화하는 단 하나의 양이 와도다.

와도가 측정하는 것#

와도 ω\boldsymbol{\omega}는 속도장의 회전(curl)이다.

ω=×u\boldsymbol{\omega} = \nabla \times \mathbf{u}

2차원에서는 zz 성분만 살아남아

ωz=vxuy\omega_z = \frac{\partial v}{\partial x} - \frac{\partial u}{\partial y}

가 된다. u,vu, v는 각각 x,yx, y 방향 속도. 이 값은 유체 입자 자전 각속도의 두 배다.

강제와동에 대입하면 ωz=2ω\omega_z = 2\omega로 일정 — 영역 전체가 자전한다. 자유와동에 대입하면 중심 한 점을 빼고 어디서나 ωz=0\omega_z = 0이다. 모양은 똑같이 둥근 흐름인데, 자전 정도는 정반대다.

랭킨 조합와동 — 토네이도의 청사진#

현실의 회오리는 한쪽만 따르지 않는다. 중심 부근에서는 점성이 강해 강체처럼 돌고, 멀리서는 점성이 무시되어 자유와동을 따른다. 이 둘을 이은 모형이 랭킨 조합와동이다.

uθ(r)={UmaxRr,rRUmaxRr,r>Ru_\theta(r) = \begin{cases} \dfrac{U_{\max}}{R}\, r, & r \le R \\[6pt] \dfrac{U_{\max}\, R}{r}, & r > R \end{cases}

RR은 코어 반지름, UmaxU_{\max}는 코어 경계에서의 최대 접선 속도. 두 식은 r=Rr = R에서 매끈하게 이어진다. 토네이도의 풍속 분포, 비행기 날개 끝에서 떨어지는 wing-tip 와동, 욕조 흡입 와동이 모두 이 형태에 가깝다. 코어 안은 회전 영역, 코어 밖은 비회전 영역이다.

헬름홀츠 정리 — 와동의 불멸#

점성을 무시하면 유체 입자에 작용하는 힘은 압력뿐이고, 압력은 입자 중심을 향하므로 자전을 만들지 못한다. 그래서 자전이 없는 입자는 영원히 자전하지 않고, 자전을 시작한 입자는 영원히 자전한다. 이것이 헬름홀츠 와동 정리의 한 줄 요약이다.

좀 더 정밀하게는 켈빈(Kelvin) 정리가 있다. 닫힌 물질 곡선을 따라 잰 순환 Γ\Gamma는 시간이 흘러도 변하지 않는다.

DΓDt=0\frac{D\Gamma}{Dt} = 0

D/DtD/Dt는 물질 미분(입자를 따라가는 미분). 와동 튜브는 자르거나 끊을 수 없고, 늘어나면 더 빠르게 돈다 — 피겨 스케이터가 팔을 모으는 것과 같다. 실제 유체에는 점성이 있어 와동은 결국 흩어지지만, 점성이 작은 물·공기에서는 며칠씩 살아남는다. 비행기가 지나간 자리의 응결 와동이 한참 동안 보이는 이유다.

속도 포텐셜이 여는 수학의 문#

비회전(ω=0\boldsymbol{\omega} = 0) 영역에서는 벡터 항등식이 한 줄 선물을 준다.

×u=0u=ϕ\nabla \times \mathbf{u} = 0 \quad \Longrightarrow \quad \mathbf{u} = \nabla \phi

스칼라 함수 ϕ\phi속도 포텐셜이라 부른다. 비압축 흐름이라면 u=0\nabla \cdot \mathbf{u} = 0도 성립하므로

2ϕ=0\nabla^2 \phi = 0

라플라스 방정식이다. 비점성·비회전·비압축 흐름은 단 하나의 스칼라 함수로 풀린다는 뜻. 19세기 유체역학이 익체 분포·날개 양력·소스/싱크 모형을 분석적으로 다룰 수 있었던 비결이 이것이다. 자유와동은 ϕ=(Γ/2π)θ\phi = (\Gamma / 2\pi)\, \theta로 표현된다 — 각도 θ\theta에 비례한 포텐셜이다.

코드로 보는 두 와동#

랭킨 와동의 속도와 와도를 그려보면 차이가 한눈에 들어온다.

import numpy as np
 
def rankine_speed(r, R_core, U_max):
    """Tangential speed of a Rankine combined vortex."""
    speed = np.where(r <= R_core,
                     U_max * r / R_core,
                     U_max * R_core / np.maximum(r, 1e-9))
    return speed
 
def vorticity_field(u, v, dx, dy):
    """Discrete curl in 2D: omega_z = dv/dx - du/dy."""
    dvdx = (v[1:-1, 2:] - v[1:-1, :-2]) / (2 * dx)
    dudy = (u[2:, 1:-1] - u[:-2, 1:-1]) / (2 * dy)
    return dvdx - dudy
 
# Sample on a 200x200 grid
N, L = 200, 2.0
x = np.linspace(-L, L, N)
y = np.linspace(-L, L, N)
X, Y = np.meshgrid(x, y)
R = np.hypot(X, Y)
THETA = np.arctan2(Y, X)
 
U_max, R_core = 1.0, 0.5
u_theta = rankine_speed(R, R_core, U_max)
u =  -u_theta * np.sin(THETA)
v =   u_theta * np.cos(THETA)
 
dx = dy = x[1] - x[0]
omega = vorticity_field(u, v, dx, dy)
 
# 코어 안 평균 와도와 코어 밖 평균 와도
mask_in  = R[1:-1, 1:-1] <  R_core
mask_out = R[1:-1, 1:-1] >  1.5 * R_core
print(f"코어 안 평균 ω_z ≈ {omega[mask_in].mean():.3f}")   # ~ 2 * U_max / R_core
print(f"코어 밖 평균 ω_z ≈ {omega[mask_out].mean():.3f}")  # ~ 0

코어 안에서는 ωz2Umax/R\omega_z \approx 2 U_{\max}/R 로 상수에 가깝고, 코어 밖에서는 0에 가깝다. 같은 둥근 흐름인데 자전을 가르는 경계가 코어 반지름 RR에 정확히 그려진다.

시뮬레이션에서 직접 만져보자#

아래 시뮬레이션에서 직접 파라미터를 조작해보자. 노란 입자가 갇힌 영역이 강제와동 코어, 파란 입자가 떠다니는 영역이 자유와동이다.

Yellow tracers sit inside the forced-vortex core and rotate as a solid body (ω = 2U/R). Blue tracers outside follow u_θ = ΓR/r — circular streamlines but zero local spin. The Rankine combined vortex is the simplest model for a bath-tub drain or tornado.

코어 반지름 RR을 줄이면 자전이 일어나는 영역이 좁아진다 — 토네이도의 "눈"이 좁아지는 모형. UmaxU_{\max}를 키우면 코어 안 와도 ω=2Umax/R\omega = 2U_{\max}/R가 함께 커진다. 오른쪽 위 그래프를 보면 rRr \le R 구간은 직선(ωr\omega r), r>Rr > R 구간은 쌍곡선(1/r1/r)으로 매끈하게 이어진다.

다음에 회오리를 보면#

자전이 있는 영역과 없는 영역을 가른다. 그것이 이 한 시간이 남기는 한 줄이다. 다음에 욕조 회오리·찻잔의 소용돌이·태풍 위성사진을 볼 때 세 가지를 떠올려보자.

  • 공전과 자전은 다르다. 같은 원형 흐름이라도 와도는 0일 수 있다.
  • 랭킨 조합와동은 가장 단순한 현실 모형이다. 코어 안은 강체 회전, 밖은 1/r1/r.
  • 헬름홀츠 정리는 왜 와동이 잘 사라지지 않는가의 답이다 — 점성이 작을수록 더 오래 산다.

이 세 줄을 가지고 있으면, 다음번 난류 강의에서 "와도 수송 방정식"이 등장해도 당황하지 않을 것이다. 와도 자체가 보존되지 않을 뿐, 그 정신은 같은 자리에 있다.

도움이 됐다면 공유해주세요.