VOF法による波浪シミュレーション
理論:波の性質と水面の追跡
概要
洋上の構造物に当たる波をCFDで計算したいのですが、造波してもしばらく進むと波が小さくなってしまいます。
数値水槽でいちばんよくある悩みだね。原因の多くは、水面の近くのメッシュが波に対して粗いか、時間刻みが大きいことだ。VOF法は水の割合を運ぶ計算なので、格子が粗いと水面がなまって、そのぶん波のエネルギーが失われていく。まずは作りたい波の波長を正しく求めて、1波長と波高に何セル入っているかを確かめよう。波長は周期と水深で決まるから、分散関係から計算するんだ。
分散関係
$\omega = 2\pi/T$ は角周波数、$k$ は波数、$h$ は水深、$L$ は波長、$c$ は波の速さ。深い海($kh$ が大きい)では $L = gT^2/2\pi$、浅くなると同じ周期でも波長が短く、波が遅くなる。周期の長い波ほど水深の影響を受けやすい。
VOF法
$\alpha$ はセルの中の水の体積率(1が水、0が空気)。水と空気の密度を体積率で混ぜて1つの流れとして解く。水面は $\alpha = 0.5$ の位置で、その鋭さを保つための特別な移流の計算(界面の圧縮など)が使われる。
『体積の割合』で水面を表す発想
VOF法は1981年、米国ロスアラモス研究所のHirtとNicholsが発表した。それまでの方法は、水面に沿って点を並べて追いかけたり、表面の形を関数で表したりしていたが、波が砕けたり水滴が飛んだりすると破綻した。各セルに『水がどれだけ入っているか』という1つの数だけを持たせる発想は、水面がどんなに複雑に変形しても扱える強さがあった。その後、界面をくっきり保つ工夫が重ねられ、今では船の抵抗から、ダムの決壊、容器の中の液体の揺れまで幅広く使われている。
計算例
例1:周期と水深による波長
| 周期 | 深海の波長 | 水深20 mの波長 | 波の速さ | kh |
|---|---|---|---|---|
| 4 s | 25.0 m | 25.0 m | 6.2 m/s | 5.03 |
| 6 s | 56.2 m | 55.0 m | 9.2 m/s | 2.28 |
| 8 s | 99.9 m | 88.8 m | 11.1 m/s | 1.42 |
| 10 s | 156.1 m | 121.2 m | 12.1 m/s | 1.04 |
周期4秒の波は水深20 mでも深海と同じ波長だが、10秒の波は深海の式より2割以上短くなる。深海の式のまま水槽を作ると、長い周期の波ではメッシュの目安も反射を抑える区間の長さもずれてしまう。
例2:数値水槽のメッシュと計算量
水深20 m、波高2 m、長さ5波長の2次元水槽。水面±2 mの帯を細かくし、それ以外は縦方向を4倍粗くした場合。
| 周期 | 1波長/波高のセル数 | 横の大きさ | 縦の大きさ | 2次元のセル数 | 1周期のステップ数 |
|---|---|---|---|---|---|
| 6 s | 80 / 10 | 0.69 m | 0.20 m | 約2.1万 | 160 |
| 6 s | 100 / 20 | 0.55 m | 0.10 m | 約5.2万 | 200 |
| 10 s | 80 / 10 | 1.52 m | 0.20 m | 約2.1万 | 160 |
| 10 s | 100 / 20 | 1.21 m | 0.10 m | 約5.2万 | 200 |
2次元なら数万セルで済むんですね。3次元だとどうなりますか?
横方向にも同じくらい細かくすると、セル数は横のセル数だけかけ算で増えて、すぐ数百万〜数千万になる。だから3次元では、構造物の近くだけ細かくして、造波と消波の区間は粗くする、あるいは遠くは別の手法(ポテンシャル流の波モデル)で解いて近くだけCFDとつなぐ、といった工夫をする。もう1つ、10秒の波で横と縦のセルの大きさの比が7倍を超えているのにも注意。比が大きすぎると水面の計算が不安定になりやすいので、縦を細かくしたら横も合わせて調整しよう。
時間刻み
クーラン数 Co を0.5程度に抑えると、1周期あたり100〜200ステップ程度になる。VOF法では界面をくっきり保つために、クーラン数をさらに小さくする(0.25程度)ことも多い。
数値水槽の作り方
手順
- 周期・波高・水深から波長を求め、波の理論(線形、ストークス、クノイダル)を選ぶ。
- 造波の区間と、反射を抑える消波の区間(1〜2波長)を設ける。
- 構造物がない状態で波を流し、構造物の位置で波高と周期が狙いどおりか確かめる。
- メッシュと時間刻みを変えて、波高の減衰と構造物の力が変わらないことを確かめる。
「水槽の奥から波が戻ってくる」
構造物に当たる波の力を調べていたら、計算を続けるうちに力が少しずつ大きくなっていった——原因は水槽の出口側の消波が不十分で、反射した波が戻ってきて、入ってくる波と重なっていたことだった。消波の区間が短いと、長い周期の波ほど反射しやすい。構造物からの反射波も造波の側へ戻るので、造波の区間でも反射を吸収する設定が必要になる。構造物なしの計算で、水槽の中の波高が場所によって変わらないか(定在波ができていないか)を確かめるのが基本だ。
よくある間違い
間違いと対策
| 間違い | 起きること | 対策 |
|---|---|---|
| 水面付近のメッシュが粗い | 波が減衰する | 1波長80〜100・波高10〜20セル |
| 深海の式で波長を決める | 長周期で波長を誤る | 分散関係を解く |
| 消波区間が短い | 反射波が重なる | 1〜2波長を確保 |
| 縦横比の大きいセル | 水面が不安定 | 比を抑える |
| 構造物ありでいきなり計算 | 波の質を確かめられない | 空の水槽で確認 |
波の計算を自分でも試したいです。
なった
詳しく
報告