Skip to content
cfd-lab:~/ja/posts/2026-07-14-kelvin-helmho…online
NOTE #104DAY TUE 유체역학DATE 2026.07.14READ 6 min readWORDS 3,231#Kelvin-Helmholtz#Shear-Instability#Vortex#Stratified-Flow#유동현상

空に浮かぶ波の正体 — ケルビン・ヘルムホルツ不安定

速度の違う二つの流れが出会うと、なぜ渦に巻き上がるのか

ときどき空に、海の波がそのまま凍りついたような雲がかかります。かぎ状に巻き上がった形が、浜辺の砕け波のように整然と並びます。写真で見ると合成のようですが、実在する雲です。名前もついています。ケルビン・ヘルムホルツ雲。波が砕ける直前の姿を、空気がそっくり真似たものです。

この記事では、そのかぎがどうやってできるのかを追います。速い流れと遅い流れが接する薄い境界面(せん断層)。この面がなぜ平らなままでいられず渦に巻き上がるのか、いつ巻き上がっていつ静かなままなのかを、一つの成長率の式にまとめます。最後には薄い渦層を自分の手で巻き上げて、そのかぎを作ってみます。

空に浮かぶ波

ケルビン・ヘルムホルツ雲だけが特別なわけではありません。同じことがあちこちで起きています。木星の縞模様が裂ける境界、海中で密度の違う水が滑り合ってできる内部波、コーヒーにミルクを注いだときに一瞬現れる螺旋。まっすぐ立ちのぼるタバコの煙が突然乱れるあの点も、同じ原理です。

共通点は一つです。速度の違う二つの流体層が並んで流れます。上の層は速く、下の層は遅く。その間の薄い境界が滑ります。この滑り(せん断)が種です。

直感的には、二つの流れはただ並んで通り過ぎればよさそうに思えます。実際はそうなりません。境界面にほんの小さな揺らぎがあるだけで、その揺らぎが自ら成長します。これがケルビン・ヘルムホルツ不安定(せん断による界面の不安定)です。

二つの流れが滑るとき何が起きるか

境界面に小さな山が一つ盛り上がったとします。上の速い流れはこの山を越えなければなりません。越える通り道は狭くなります。流量が同じであるためには、狭いところで速度が上がります。

速くなれば圧力が下がります。ベルヌーイの法則(流れが速いところは圧力が低い)です。山の上の圧力が下がると、山はさらに上へ吸い上げられます。谷では逆に流れが遅くなって圧力が上がり、谷はさらに押し下げられます。

まとめるとこうです。山はさらに盛り上がり、谷はさらに深くなる。小さな揺らぎが自分自身を育てる正のフィードバックです。一度始まると止まりません。これが不安定の中核となるしくみです。

ここで誤解を一つ。「密度の大きい水が下、小さい空気が上にあるのだから安定では?」重力だけを見ればその通りです。しかしせん断が十分強ければ、重力の安定化効果に打ち勝ちます。安定な成層も強い風の前では崩れます。

分散関係 — 成長する波長と静かな波長

この力比べは一つの式に圧縮できます。上の層(密度 ρ1\rho_1)と下の層(密度 ρ2\rho_2)が相対速度 ΔU\Delta U で滑り合い、界面に重力 gg と表面張力 TT が働きます。波数 kk(単位長さあたりの波の数)の揺らぎが成長する速さ、すなわち成長率 σ\sigma は次のようになります。

σ(k)=kρ1ρ2(ρ1+ρ2)2(ΔU)2g(ρ2ρ1)(ρ1+ρ2)kTkρ1+ρ2\sigma(k) = k\sqrt{\frac{\rho_1\rho_2}{(\rho_1+\rho_2)^2}(\Delta U)^2 - \frac{g(\rho_2-\rho_1)}{(\rho_1+\rho_2)\,k} - \frac{T k}{\rho_1+\rho_2}}

σ\sigma は揺らぎが大きくなる速さです。根号の中の第一項はせん断(不安定を起こす)、第二項は重力(重い流体が下にあれば安定化する)、第三項は表面張力(界面をぴんと張って安定化する)です。

根号の中が正なら σ\sigma は実数になり、揺らぎは指数的に成長します。負なら σ\sigma は虚数になり、揺らぎは振動するだけで成長しません。不安定条件は根号の中が正であること、つまりせん断項が残りの二つに勝つことです。

ρ1ρ2ρ1+ρ2(ΔU)2>g(ρ2ρ1)k+Tk\frac{\rho_1\rho_2}{\rho_1+\rho_2}(\Delta U)^2 > \frac{g(\rho_2-\rho_1)}{k} + T k

もっとも純粋な場合を見てみましょう。二つの層の密度が等しく(ρ1=ρ2=ρ\rho_1=\rho_2=\rho)、重力も表面張力もなければ、式は驚くほど単純になります。

σ=kΔU2\sigma = \frac{k\,\Delta U}{2}

波数が大きいほど、つまり波長が短いほど速く成長します。ブレーキがまったくなければ、どれほど短い波長も爆発的に成長します。実際の流れでは、粘性がこの暴走を短波長側で断ち切ります。

重力と表面張力がブレーキをかける

二つのブレーキは異なる波長を止めます。重力項は 1/k1/k に比例するので、波長の長い側(小さい kk)を抑えます。表面張力項は kk に比例するので、波長の短い側(大きい kk)を抑えます。その間に不安定な波長の帯が残ります。

せん断が弱ければ、この帯はそもそも開きません。せん断を強めると、ある瞬間に特定の波長で最初に不安定が突き抜けます。その閾値こそ、風が穏やかな水面に波を立て始める最小風速です。

ΔUmin2=2(ρ1+ρ2)ρ1ρ2gT(ρ2ρ1)\Delta U_{\min}^2 = \frac{2(\rho_1+\rho_2)}{\rho_1\rho_2}\sqrt{g\,T\,(\rho_2-\rho_1)}

空気と水を入れると ΔUmin6.6 m/s\Delta U_{\min} \approx 6.6\ \mathrm{m/s}、最初に突き抜ける波長は約 1.7 cm です。ケルビンが19世紀に計算した値です。(実際の水面は粘性のため、より低い風速でもさざ波が立ちます。理想理論の限界です。)

連続的に成層した流れでは、リチャードソン数(浮力対せん断の比)で判定します。Ri=N2/(dU/dz)2\mathrm{Ri} = N^2/(dU/dz)^2、ここで NN は浮力振動数です。マイルズ・ハワードの定理によれば、Ri<1/4\mathrm{Ri} < 1/4 のどこかで不安定が可能になります。大気・海洋で乱流がいつ発生するかを予測する実務上の基準です。

下で実際にブレーキをかけてみましょう。スライダーでせん断・密度比・重力・表面張力を変えると、成長率の曲線がどう変わるかを見られます。

UNSTABLE — fastest growth at λ* ≈ 0.79 cm (σ ≈ 597.78 /s)

せん断 ΔU\Delta U を6付近まで下げると曲線が床に張りつき「STABLE」に変わります。重力や表面張力を強めると、不安定帯(オレンジ色の領域)が両側から狭まります。密度比を1に近づける(二つの層を似せる)と、ごく弱いせん断でも曲線が跳ね上がります。

Python で描く成長率の曲線#

式をそのままコードに移せば、どの風速でどの波長が最初に成長するかがすぐに確認できます。

import math
 
def kh_growth_rate(k, dU, rho_u, rho_l, g=9.81, T=0.072):
    """ケルビン・ヘルムホルツモードの成長率 sigma(k)。"""
    shear   = rho_u * rho_l * dU**2 / (rho_u + rho_l)**2   # 不安定化 (せん断)
    gravity = g * (rho_l - rho_u) / ((rho_u + rho_l) * k)  # 長波長を安定化
    tension = T * k / (rho_u + rho_l)                      # 短波長を安定化
    disc = shear - gravity - tension
    return k * math.sqrt(disc) if disc > 0 else 0.0
 
rho_air, rho_water = 1.225, 1000.0
ks = [1 + 0.2 * i for i in range(4000)]
for dU in (3.0, 6.6, 10.0):
    s = [kh_growth_rate(k, dU, rho_air, rho_water) for k in ks]
    smax = max(s)
    if smax > 0:
        kstar = ks[s.index(smax)]
        lam = 2 * math.pi / kstar * 100   # cm
        print(f"dU={dU:4.1f} m/s -> unstable, lambda*={lam:5.2f} cm, sigma_max={smax:6.2f} /s")
    else:
        print(f"dU={dU:4.1f} m/s -> stable (no waves)")

実行結果はこうなります。

dU= 3.0 m/s -> stable (no waves)
dU= 6.6 m/s -> unstable, lambda*= 1.69 cm, sigma_max=  4.89 /s
dU=10.0 m/s -> unstable, lambda*= 0.78 cm, sigma_max=183.30 /s

風速が毎秒3 m なら水面は穏やかです。6.6 m を超えた瞬間、約 1.7 cm のさざ波が最初に成長します。風速をさらに上げると成長率が急激に大きくなり、もっとも危険な波長は短くなります。

渦に巻き上がる瞬間

不安定が最初に成長する段階までは線形理論がよく合います。しかし山が十分大きくなると話が変わります。界面は単に波打つだけでは止まらず、まるごと巻き上がります。薄い渦層が巻きついて規則的な渦の列を作ります。これがかぎ雲の正体であり、理論でスチュアートの猫の目(cat's eye)と呼ばれる模様です。

下のシミュレーションは、少し揺らした渦層を実際に巻き上げます。各点は界面上の目印で、粘性のない流れの誘導速度で互いを引き合います。スライダーで渦の数とせん断の強さを変えてみましょう。

最初はゆるやかな波だった線が、数秒で巻きついて猫の目を作ります。せん断 ΔU\Delta U を強めるとより速く巻き、渦の数を増やすとより細かく分かれたかぎの列が現れます。Reset を押すと、また平らな波から始まります。

ここで二つの段階を区別することが大切です。成長率の式は、最初に波が大きくなる線形段階だけを説明します。巻き上がる猫の目は非線形段階で、界面が自分自身を引き合うことで生まれる別の絵です。自然は二つの段階を続けて見せます。波が立ち、そのあと巻きます。

この現象が教えてくれること

せん断のあるところには、いつも不安定の種があります。速度の違う二つの流れが接すると、その境界は決して滑らかなままではいられません。小さな山が自らを育て、やがて渦に巻き上がります。これがケルビン・ヘルムホルツ不安定の本質です。

成長率 σ(k)\sigma(k) はこの戦いの審判です。せん断が押し、重力と表面張力が引き止めます。三者のバランスが、どの波長を成長させ、どの波長を眠らせるかを決めます。穏やかな水面に波を立てる最小風速から、大気乱流の閾値を測るリチャードソン数まで、すべては同じ天秤の目盛りです。空にかかるあのかぎ雲は、この天秤がせん断の側に傾いた証拠なのです。

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