有理関数を使ったCIP法. CIP法の欠点は関数を移流させるとき,若干のオーバーシュートがでることである. このオーバーシュートは移流が進んでも大きくはならないため問題がないように思えるが, 水と空気の二相流など,計算したい物理量の差が非常に大きい場合に, 小さなオーバーシュートが大きな問題となる. RCIP法 *1, *2 はこの問題を解決する. RCIP法はCIP法の3次関数の代わりに有理関数 ![]() を用いる.
ここで, ![]() ここで, ![]() RCIP法以外にも,Tangent変換を用いることで オーバーシュートを抑える方法も提案されている *3. Tangent変換を用いた手法では物体界面がシャープに保たれるという特徴を持つ. これは数値流体計算上は非常に有益であるが, グラフィックスで用いた場合,グリッド解像度によっては 液体表面があまり滑らかにならず,保存性も保証されない. RCIP法による密度関数の移流では,界面を表す0から1への変化部分が拡散し, 関数の傾きがなだらかになる. この滑らかな界面はCGでの利用においては美しいレンダリング結果を生むが, シミュレーションでは数値的な不安定性を引き起こす. 密度関数の体積移動によるSTAA手法 *4 を使うことで, 界面拡散を抑制することができる. また,拡散をある程度の幅で制御する方法 *5 もある. |