2009年9月30日水曜日

SPHによる巻き波のシミュレーション第3回

前回のエントリで、巻き波のシミュレーションができた。今回は、それを綺麗にレンダリングしてみる。

まず、粒子でレンダリングしたものがこれ。




これを、マーチングキューブで陰関数曲面を抽出してレンダリングするとこうなる。





さらに、屈折や反射を考慮してレンダリングしたものがこれ。





いい感じ!次は何をしようかな?


■関連するエントリ
SPHによる巻き波のシミュレーション第1回
SPHによる巻き波のシミュレーション第2回

-

2009年9月27日日曜日

SPHによる巻き波のシミュレーション第2回

前回のエントリでは、可動壁によって波を起こすことで巻き波のシミュレーションをしようとしたが、うまく巻き波が起きなかった。

そこで、巻き波を起こすにはどうしたらいいのかいろいろと調べてみたところ、RadovitzkyとOritzの"Lagrangian finite element analytics of newtonian fluid flows."という論文を見つけた。

この論文は、有限要素法によってラグランジュ的に自由表面をシミュレーションする手法を提示している。その適用例の1つとして砕波を扱っており、そこに孤立波の理論解が示されていた。これを適用すれば波の岸に打ち寄せる波を再現することができそう。

孤立波の初期条件は、水面の高さをη、x方向の初速をu、y方向の初速をvとすると、



のようになる(x方向のオフセットを省略)。ここで、gは重力加速度で9.8[m/s^2]、Hとdはそれぞれ基準となる水面の高さと波の高さである。

また、tanhとsechは双曲線関数で、その定義は



である。

この初期条件を適用して、またシミュレーションしてみると、



お!巻き波が起きた!

シミュレーション結果を見ると、左から進んできた孤立波が、斜面にさしかかったところでせり上がって、巻き波になってくずれる様子が見てとれる。また、巻き波が打ち寄せたあとにさーっと引いていく様子も、実際の砂浜とよく似ている。

いい感じに巻き波が起きるようになったので、次は、このエントリのように綺麗にレンダリングしてみます。

■関連するエントリ
SPHによる巻き波のシミュレーション第1回
SPHによる巻き波のシミュレーション第3回
-

2009年9月16日水曜日

SPHによる巻き波のシミュレーション第1回


波の一種に巻き波というものがある。浅海域に進入した波が対称性を失って、前面が切り立った壁のようになり、頂部の水が前に飛び出す形で巻くように砕けるものをいう。

粒子法では、しぶきがあがるような激しい変形を表現することができる。そこで、巻き波をシミュレーションしたいと思った。



左側の境界条件を周期的に動かすことで波を起こしている。また、真ん中から右は斜面になっている。

ところが、結果をみてみるとうまくいかない…

波が減衰して斜面まで届かないのと、斜面の底部分で不自然に左向きの流れが起きているのが気になる。

波が減衰してしまう点については、容器の形や可動壁の動きを調整しようと思う。

斜面の底部分で不自然な流れが起きている点については、理由がよくわからない…境界条件にはペナルティ法を使っているが、そのせいで斜面方向に変に力がかかっているんだろうか?

もうすこし調整が必要そうだ。

■関連するエントリ
SPHによる巻き波のシミュレーション第2回
SPHによる巻き波のシミュレーション第3回
-