VOF法による波浪シミュレーション

カテゴリ: 流体解析(CFD) | 2026-10-01 改稿
CAE visualization for vof wave theory - technical simulation diagram
VOF法による波浪シミュレーション

理論:波の性質と水面の追跡

概要

🙋

洋上の構造物に当たる波をCFDで計算したいのですが、造波してもしばらく進むと波が小さくなってしまいます。

🎓

数値水槽でいちばんよくある悩みだね。原因の多くは、水面の近くのメッシュが波に対して粗いか、時間刻みが大きいことだ。VOF法は水の割合を運ぶ計算なので、格子が粗いと水面がなまって、そのぶん波のエネルギーが失われていく。まずは作りたい波の波長を正しく求めて、1波長と波高に何セル入っているかを確かめよう。波長は周期と水深で決まるから、分散関係から計算するんだ。

分散関係

$$ \omega^2 = g k \tanh(kh), \qquad L = \frac{2\pi}{k}, \qquad c = \frac{L}{T} $$

$\omega = 2\pi/T$ は角周波数、$k$ は波数、$h$ は水深、$L$ は波長、$c$ は波の速さ。深い海($kh$ が大きい)では $L = gT^2/2\pi$、浅くなると同じ周期でも波長が短く、波が遅くなる。周期の長い波ほど水深の影響を受けやすい。

VOF法

$$ \frac{\partial \alpha}{\partial t} + \nabla\cdot(\alpha\,\mathbf{u}) = 0, \qquad \rho = \alpha\rho_w + (1-\alpha)\rho_a $$

$\alpha$ はセルの中の水の体積率(1が水、0が空気)。水と空気の密度を体積率で混ぜて1つの流れとして解く。水面は $\alpha = 0.5$ の位置で、その鋭さを保つための特別な移流の計算(界面の圧縮など)が使われる。

Coffee Break よもやま話

『体積の割合』で水面を表す発想

VOF法は1981年、米国ロスアラモス研究所のHirtとNicholsが発表した。それまでの方法は、水面に沿って点を並べて追いかけたり、表面の形を関数で表したりしていたが、波が砕けたり水滴が飛んだりすると破綻した。各セルに『水がどれだけ入っているか』という1つの数だけを持たせる発想は、水面がどんなに複雑に変形しても扱える強さがあった。その後、界面をくっきり保つ工夫が重ねられ、今では船の抵抗から、ダムの決壊、容器の中の液体の揺れまで幅広く使われている。

計算例

例1:周期と水深による波長

周期深海の波長水深20 mの波長波の速さkh
4 s25.0 m25.0 m6.2 m/s5.03
6 s56.2 m55.0 m9.2 m/s2.28
8 s99.9 m88.8 m11.1 m/s1.42
10 s156.1 m121.2 m12.1 m/s1.04

周期4秒の波は水深20 mでも深海と同じ波長だが、10秒の波は深海の式より2割以上短くなる。深海の式のまま水槽を作ると、長い周期の波ではメッシュの目安も反射を抑える区間の長さもずれてしまう。

例2:数値水槽のメッシュと計算量

水深20 m、波高2 m、長さ5波長の2次元水槽。水面±2 mの帯を細かくし、それ以外は縦方向を4倍粗くした場合。

周期1波長/波高のセル数横の大きさ縦の大きさ2次元のセル数1周期のステップ数
6 s80 / 100.69 m0.20 m約2.1万160
6 s100 / 200.55 m0.10 m約5.2万200
10 s80 / 101.52 m0.20 m約2.1万160
10 s100 / 201.21 m0.10 m約5.2万200
🙋

2次元なら数万セルで済むんですね。3次元だとどうなりますか?

🎓

横方向にも同じくらい細かくすると、セル数は横のセル数だけかけ算で増えて、すぐ数百万〜数千万になる。だから3次元では、構造物の近くだけ細かくして、造波と消波の区間は粗くする、あるいは遠くは別の手法(ポテンシャル流の波モデル)で解いて近くだけCFDとつなぐ、といった工夫をする。もう1つ、10秒の波で横と縦のセルの大きさの比が7倍を超えているのにも注意。比が大きすぎると水面の計算が不安定になりやすいので、縦を細かくしたら横も合わせて調整しよう。

時間刻み

$$ \Delta t \le \mathrm{Co}\,\frac{\Delta x}{c} $$

クーラン数 Co を0.5程度に抑えると、1周期あたり100〜200ステップ程度になる。VOF法では界面をくっきり保つために、クーラン数をさらに小さくする(0.25程度)ことも多い。

数値水槽の作り方

手順

  1. 周期・波高・水深から波長を求め、波の理論(線形、ストークス、クノイダル)を選ぶ。
  2. 造波の区間と、反射を抑える消波の区間(1〜2波長)を設ける。
  3. 構造物がない状態で波を流し、構造物の位置で波高と周期が狙いどおりか確かめる。
  4. メッシュと時間刻みを変えて、波高の減衰と構造物の力が変わらないことを確かめる。
Coffee Break よもやま話

「水槽の奥から波が戻ってくる」

構造物に当たる波の力を調べていたら、計算を続けるうちに力が少しずつ大きくなっていった——原因は水槽の出口側の消波が不十分で、反射した波が戻ってきて、入ってくる波と重なっていたことだった。消波の区間が短いと、長い周期の波ほど反射しやすい。構造物からの反射波も造波の側へ戻るので、造波の区間でも反射を吸収する設定が必要になる。構造物なしの計算で、水槽の中の波高が場所によって変わらないか(定在波ができていないか)を確かめるのが基本だ。

よくある間違い

間違いと対策

間違い起きること対策
水面付近のメッシュが粗い波が減衰する1波長80〜100・波高10〜20セル
深海の式で波長を決める長周期で波長を誤る分散関係を解く
消波区間が短い反射波が重なる1〜2波長を確保
縦横比の大きいセル水面が不安定比を抑える
構造物ありでいきなり計算波の質を確かめられない空の水槽で確認
🙋

波の計算を自分でも試したいです。

🎓

海洋波シミュレーターと波の基礎で波の性質、フルード数で相似則、波力発電で波のエネルギーを試せるよ。関連する話題は波浪のモデル化、スロッシング、船の抵抗、係留解析の記事にまとめてある。

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

熱解析V&V・品質保証構造解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0