BFECCはSemi-Lagrangian法においてバックトレースする際に,フォワードトレースにより誤差を求め, その誤差を修正することで高精度に移流を行う方法である. BFECCの最初のアイデアは *1 で提案され, 2005年にCG分野で移流方程式へ適用された *2, *3

Semi-Lagrangian法のバックトレースによるeqa_phi.gifの更新を以下の式で表す.

eqa_bfecc1.gif

Lは直線を使った1次精度のバックトレース,uは速度場を表す.
BFECCの場合,上式は以下のようになる.

eqa_bfecc2.gif

ここで,

eqa_bfecc3.gif


  • BFECCの考え方
    BFECCの概念図

BFECCの式を上の図を使って説明する.
まず,A点を計算点xとする. もし,特徴曲線に完璧に沿ってバックトレースしたならば,バックトレース点はBになるはずである. だが,実際には直線でトレースしているのでC点になっている(eqa_bfecc4.gif). このとき,B点とC点の間のeqa_phi.gifの値の違い(誤差)をeとする.
C点からさらにフォワードトレースした位置Dは,A点からの誤差2eを含んでいる(誤差なしならA点に戻る). D点での関数値をeqa_barphi.gifとすると,

eqa_bfecc5.gif

となる.上式から,誤差eは以下のように求められる.

eqa_bfecc6.gif

より正確なeqa_phin+1.gifは,eqa_phin.gifからeを引いた場eqa_bfecc7.gifより得られる.

eqa_bfecc8.gif
  • BFECCの実装
    1. eqa_phin.gifをバックトレース
      eqa_bfecc9.gif
    2. eqa_phia.gifをフォワードトレース
      eqa_bfecc10.gif
    3. 誤差eを引いたeqa_phiaa.gifを計算
      eqa_bfecc11.gif
    4. eqa_phiaa.gifをバックトレースして,eqa_phin+1.gifを算出
      eqa_bfecc12.gif

*1 T. Dupont, Y. Liu, "Back and forth error compensation and correction methods for removing errors induced by uneven gradients of the level set function", J. Comput. Phys. 190(1) (2003) pp.311-324.
*2 B.-M. Kim, Y. Liu, I. Llamas, J. Rossignac, "Using BFECC for fluid simulation", Eurographics Workshop on Natural Phenomena 2005, 2005.
*3 B.-M. Kim, Y. Liu, I. Llamas, J. Rossignac, "Advections with significantly reduced dissipation and diffusion", IEEE Trans. Vis. Comput. Graph. 13(1), pp.135-144, 2007.

添付ファイル: fileBFECC.gif 1727件 [詳細] fileeqa_bfecc11.gif 670件 [詳細] fileeqa_bfecc4.gif 680件 [詳細] fileeqa_bfecc6.gif 649件 [詳細] fileeqa_bfecc10.gif 716件 [詳細] fileeqa_phin.gif 635件 [詳細] fileeqa_bfecc9.gif 629件 [詳細] fileeqa_bfecc12.gif 494件 [詳細] fileeqa_phin+1.gif 581件 [詳細] fileeqa_phiaa.gif 638件 [詳細] fileeqa_phia.gif 562件 [詳細] fileeqa_bfecc5.gif 640件 [詳細] fileeqa_bfecc3.gif 627件 [詳細] fileeqa_bfecc1.gif 638件 [詳細] fileeqa_barphi.gif 626件 [詳細] fileeqa_bfecc7.gif 615件 [詳細] fileeqa_bfecc8.gif 661件 [詳細] fileeqa_bfecc2.gif 642件 [詳細] fileeqa_phi.gif 653件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-28 (金) 13:04:49 (3566d)