有理関数を使ったCIP法.
CIP法の欠点は関数を移流させるとき,若干のオーバーシュートがでることである.
このオーバーシュートは移流が進んでも大きくはならないため問題がないように思えるが,
水と空気の二相流など,計算したい物理量の差が非常に大きい場合に,
小さなオーバーシュートが大きな問題となる.
RCIP法
((F. Xiao, T. Yabe, and T. Ito, "Constructing oscillation preventing scheme for advection equation by rational function", Comput. Phys. Commun. 93, pp.1-12, 1996.)),
((F. Xiao, T. Yabe, G. Nizam and T. Ito, "Constructing a multi-dimensional oscillation preventing scheme for the advection equation by a rational function", Comput. Phys. Commun. 94, pp.103-118, 1996.))
はこの問題を解決する.
RCIP法はCIP法の3次関数の代わりに有理関数

#ref(eqa_rcip1.gif,,70%)
#ref(eqa_rcip1.gif,nolink,70%)

を用いる.
ここで,&ref(eqa_rcip2.gif,,70%);はパラメータで0か1の値をとる.
&ref(eqa_rcip3.gif,,70%);のときはCIP法と同じであり,&ref(eqa_rcip4.gif,,70%);のとき,
ここで,&ref(eqa_rcip2.gif,nolink,70%);はパラメータで0か1の値をとる.
&ref(eqa_rcip3.gif,nolink,70%);のときはCIP法と同じであり,&ref(eqa_rcip4.gif,nolink,70%);のとき,
この関数は単調性と凹凸性を保存する有理関数となる.
&ref(eqa_rcip5.gif,,70%);であり, &ref(eqa_rcip6.gif,,70%);である.
&ref(eqa_rcip5.gif,nolink,70%);であり, &ref(eqa_rcip6.gif,nolink,70%);である.
上式の各係数は以下である.

#ref(eqa_rcip7.gif,,70%)
#ref(eqa_rcip7.gif,nolink,70%)

ここで,

#ref(eqa_rcip8.gif,,70%)
#ref(eqa_rcip8.gif,nolink,70%)

RCIP法以外にも,Tangent変換を用いることで
オーバーシュートを抑える方法も提案されている
((T. Yabe and F. Xiao "Description fo Complex and Sharp Interface during Shock Wave Interaction with Liquid Drop", Journal of the Physical Society of Japan, 62, pp.2537-2540, 1993.)).
Tangent変換を用いた手法では物体界面がシャープに保たれるという特徴を持つ.
これは数値流体計算上は非常に有益であるが,
グラフィックスで用いた場合,グリッド解像度によっては
液体表面があまり滑らかにならず,保存性も保証されない.

RCIP法による密度関数の移流では,界面を表す0から1への変化部分が拡散し,
関数の傾きがなだらかになる.
この滑らかな界面はCGでの利用においては美しいレンダリング結果を生むが,
シミュレーションでは数値的な不安定性を引き起こす.
密度関数の体積移動によるSTAA手法
((池端昭夫, 肖鋒, "保存型自由表面捕獲スキームと固液気3相流への適用", 日本機械学会2002年度年次大会, 2002))
を使うことで,
界面拡散を抑制することができる.
また,拡散をある程度の幅で制御する方法
((M. Fujisawa and K. T. Miura, "Animation of ice melting phenomenon based on thermodynamics with thermal radiation", Proc. GRAPHITE2007, pp.249-256, 2007.))
もある.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS