ベクトルポテンシャルを用いた非圧縮性流体流れ場の変形
Deformation of Incompressible Fluid Flow Fields using Vector Potential
佐藤 周平1

土橋 宜典2Syuhei Sato Yoshinori Dobashi
1

UEI リサーチ

1

2

楽 詠灝3

岩崎 慶41

Yonghao Yue Kei Iwasaki

北海道大学/JST CREST

3

コロンビア大学

4

西田 友是15
Tomoyuki Nishita

和歌山大学

5

広島修道大学

まえがき
本稿では，非圧縮性流体解析により得られた流れ場に対し，非圧縮性を保った変形を実現するための方法を提案する．近年，映画やゲームなどにおいて，流体シミュレーションを用いた映像制作が盛んに行われている．このような映像制作では，特に SF やファンタジー映画において，物理シミュレーションを用いつつも，現実では起こりえないような流体の映像が求められる．このような場合，流体の流れ場を変形することで，そのような映像の容易な作成が期待できる．しかし，単純に流れ場を変形した場合，流体が満たすべき物理法則である質量保存，

図 1：提案法の概要

運動量保存を満たすことができない．流体の質量が保たれない場合，変形箇所において流体が湧き出したり，消失したりする．運動量が保存されない場合は，急な加速が起こるなど動きへの影響が生じる．特に，質量保存が満たされない場合，意図しない場所から流体が湧き出るなど，視覚的に問題となる場合が多い．そこで本手法では，2 つの物理法則のうち質量保存，すなわち流体の非2.1

ベクトルポテンシャルの算出

上述したように，本手法では流体の速度場をベクトルポテンシャルへ変換する．まず，の両辺に curl演算子を作用させる．
(1)
この式は，ベクトルラプラシアンを用いて以下のように書き換えることができる．

圧縮性を保った流れ場の変形を実現する．本稿では，格(2)子ベースのシミュレーションを対象とする．また，実験

ただし，上式では一意にベクトルポテンシャルを求めるとして 2 次元的な変形のみを適用する．

ことができない．このことについて以下で説明する．

2

提案手法

あるベクトルポテンシャル が，提案法では，非圧縮性を保ちつつ流体の流れ場を変形き，する．そのためにベクトルポテンシャルを利用する．
Helmholtz-Hodge の分解定理[1]から，ベクトルポテンシャ
ル と非圧縮な速度場 とには，の関係があり，を満たすととおくと，任意のスカラー場 について，より，となる．したがって にはの自由度が存在する．単に速度場 を再構築する場合，この自由度は問題とならないが，我々は を変形する．こ

定義から   (  ψ)  0 となるため，ベクトルポテンシャ

こで，適用する変形を表す写像を とすると，変形後のベルに対し変形操作を適用することで，常に非圧縮性を満クトルポテンシャルはたした速度場を得ることができる．
提案手法の概要を図 1 に示す．まず，格子ベースシミとなる．この時，は，必ずしも になるとは限らない．そのため，変形によりの自由度が，流れュレーションにより非圧縮性 Navier-Stokes 方程式を解き，場に対して期待しない揺らぎを与える場合がある．この

入力速度場 を作成する．そして，作成した速度場データ

ような理由から，本手法では，この自由度を常に としたをベクトルポテンシャル へ変換する．次に，ランタイい．の自由度を とするためには，かつ境界でムにおいて，ユーザが変形操作を行い，ベクトルポテンの値が となればよい．したがって，かつ境界シャルを変形する．また，詳細は後述するが，単にポテ条件をンシャルを変形しただけでは，速度ベクトルの方向がユポテンシャルを一意に求めることができる．そして，ーザの意図通りに変化しない場合があるため，ポテンシと設定することで，変形に適したベクトル，，境界条件より，式(2)が以下のポアャルに補正を行う．最後に，補正したベクトルポテンシ

ソン方程式の形となり，この式を解くことでベクトルポャルに，curl 演算子(テンシャルを算出する．

)を作用させ，変形後の速度場を生成する．以下で各処理について説明する．

(3)

2.2へ変換する．一方，2.1 節で求めた変形前のベクトベクトルポテンシャルの変形変形手法について説明する．まず，ベクトルポテンシルポテンシャルについても，その時間方向の平均 を算ャルを変形するために，2 次元の変形用格子を用意する．

出しておく．この 2 つのポテンシャルを用いて，毎ステ格子の変形には，Moving Least Squares[2]に基づいた方法

ップのポテンシャルを以下のように補正する．

を利用する．また，変形は 2 次元平面上で行い，それを(5)

3 次元格子の奥行き方向の各平面にそれぞれ適用する．

ここで は変形による写像， は各時間ステップを表してユーザは，制御点 を配置し，それらを目標の位置おり，へである．また， は入力の速度移動する．そして，以下のエネルギー関数 を最小化す場データのフレーム数である．以上の処理により，大域ることで得られる変形関数 を用いて格子を変形する．

的な速度方向の補正が可能である．

(4)
ここで， は変形格子上の格子点，3実験結果
図 3 に提案法により作成した結果を示す．シミュレー

は 番目の制御点のはユションの格子数は 128x128x128，変形格子の格子数はは重み係128x128 である．入力の流れ場の右上にある画像が変形と定義される． はユーザ指格子の初期状態であり，それぞれ適用例の右上の画像の定の係数である．変形関数を求めるための上記最小化問

ようにラインを基にして変形している．結果からもわか

題の解き方については，文献[2]を参照していただきたい．

るとおり流れ場の変形が実現できているのがわかる．まそして，上記の方法により求めた変形関数を用いて，ベた，定義より，結果は常に非圧縮な流れ場となる．

クトルポテンシャルを変形する．

4

初期位置であり， は目標の位置を表す．また，ーザによって配置された制御点の数である．
数であり，まとめと今後の課題

最後に，変形されたベクトルポテンシャルに curl 演算

本稿では，流体の非圧縮性を保ったまま流体の流れ場を行うことで，変形後の速度場を得る．生成される速度を変形するための方法について提案した．ベクトルポテ場は定義より，常に非圧縮条件を満たす．しかし，非圧ンシャルの自由度を 0 とするような条件付けを行うこと縮性を保った変形は可能となったが，変形後の速度場ので，変形を行っても問題のないベクトルポテンシャルの速度方向がユーザの意図通りに変化しない場合がある．

算出を可能とした．

これに対し，提案手法では，ベクトルポテンシャルに補今後の課題としては，もう一つの物理法則である，運正を行うことで，上記のような問題を解決する．次節に動量保存則も考慮した変形を行うことがあげられる．てその補正方法を説明する．

参考文献

2.3

ベクトルポテンシャルの補正

速度の方向をユーザの意図通りに変化させるために，変形後のベクトルポテンシャルに補正を行う．図 2 に，補正なしとありの場合の比較例を示す．この例では，元の流れ場において流れの中心に設定した直線を，蛇行さ[1] Bhatia, H. et al. The Helmholtz-Hodge Decomposition — ASurvey. IEEE Transactions on Visualization and ComputerGraphics, Vol. 19, 8, 1386-1404, 2013.
[2] Schaefer, S. et al. Image deformation using moving leastsquares. ACM Transactions on Graphics 25, 3, 533–540,
2006.

せるような変形操作を行っている（橙色点線）．補正ありでは，流体の中心に曲線が位置しているのに対し，補正なしでは，曲線よりもやや鉛直上方に流体がずれている．この例の場合大域的な速度方向が曲線に沿うことが期待されるが，補正なしでは，期待よりも鉛直上向きに速度が向いてしまっていることが原因である．また，その影響から入力データにおいて速度の存在しない部分に煙が侵入してしまっているため，視覚的に入力の結果と

図 2：補正の有無による比較大きく異なる結果となってしまっている．これを補正するために，本稿では，入力の速度場から算出した平均の速度場を利用する．平均速度場から入力データの大域的な流れの成分を抽出し，そこから補正の目標となるポテンシャルを作成する．以下で処理の詳細を説明する．
まず，入力の速度場の時間方向の平均 を計算しておき，ユーザが変形操作を行った際にその平均速度場も同時に変形し，によりベクトルポテンシャル

図 3：適用例