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

渦の二つの顔 — 自由渦・強制渦、そしてヘルムホルツ

風呂場の渦から竜巻まで、渦度とは何を測っているのか

風呂の栓を抜くと水がぐるぐる回ります。私たちはその光景を「水が回転している」と呼びます。けれども流体力学者は、その領域の大部分について「ここでは回転は起きていない(irrotational)」と答えます。一見矛盾するこの言い方の中に、渦(vortex)の本当の姿が隠れています。本稿では同じ絵の中に共存する自由渦(free vortex、1/r1/r 速度)と強制渦(forced vortex、ωr\omega r 速度)を切り分け、渦度(vorticity、流体粒子の自転角速度の二倍)が何を測っているのかを示し、ヘルムホルツの定理が渦を「不滅」と呼ぶ理由までたどります。

風呂の渦は本当に「回転」なのか#

「回転」という一語に二つの意味が混ざっています。一つ目は 公転 — ある点を中心に円運動する。二つ目は 自転 — 粒子自身が軸の周りを回る。風呂の渦で水の粒子は公転します。けれど自転は? 排水口から離れた領域ではほとんど起きません。水面に浮かぶ小さな葉は円形の経路を描きながらも、自分自身は回らず、いつも同じ面が排水口を向いています。

流体力学で「回転」とは自転のことです。だから自由渦は中心点を除く全域で「回転なし」と分類されます。

強制渦と自由渦:同じ絵、違う魂#

回転する容器の中の水を長く混ぜ続けると、液体全体が剛体のように一緒に回ります。これを 強制渦 と呼びます。粒子は公転と同時に自転しています。

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}

二次元では 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 で滑らかに接続します。竜巻の風速分布、航空機翼端から放たれる翼端渦、排水口の吸い込み渦はすべてこの形に近いです。コア内は回転領域、コア外は非回転領域です。

ヘルムホルツの定理 — 渦の不滅#

粘性を無視すれば流体粒子に働く力は圧力のみで、圧力は粒子中心を向くため、トルクを生みません。したがって 自転していない粒子は永遠に自転を始めず、自転している粒子は永遠に止まらない。これがヘルムホルツの渦定理の一行要約です。

より精密には ケルビン(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):
    """ランキン組合せ渦の接線速度"""
    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):
    """2次元の離散curl: 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
 
# 200x200 格子でサンプリング
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"コア内 平均 omega_z ~ {omega[mask_in].mean():.3f}")   # ~ 2 * U_max / R_core
print(f"コア外 平均 omega_z ~ {omega[mask_out].mean():.3f}")  # ~ 0

コア内では ωz2Umax/R\omega_z \approx 2 U_{\max}/R でほぼ一定、コア外ではゼロに近い。同じ丸い流れの中に、自転を分ける鋭い境界がコア半径 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 = 2 U_{\max}/R も大きくなります。右上のグラフを見ると、rRr \le R の区間は直線(ωr\omega r)、r>Rr > R の区間は双曲線(1/r1/r)として滑らかにつながっています。

次に渦を見たら#

自転のある領域とない領域を切り分ける。これが本稿の一行のお土産です。次に風呂の渦・お茶の中の小渦・台風の衛星画像を目にしたら、三つを思い出してみてください。

  • 公転と自転は別物。 同じ円形の流線でも渦度はゼロかもしれません。
  • ランキン組合せ渦は最も単純な現実モデル。 コア内は剛体回転、外は 1/r1/r
  • ヘルムホルツの定理は「なぜ渦はなかなか消えないのか」への答え。 粘性が小さいほど長生きします。

この三行を持っていれば、次の乱流講義で「渦度輸送方程式」が登場しても戸惑いません。渦度そのものは保存されなくなるだけで、その精神は同じ場所にあります。

役に立ったらシェアしてください。