FFTを使用した迅速でシンプルな離散2Dヘルムホルツ・ホッジ分解?


8

私が開発しようとしている愚かなスクリーンセーバーの場合、2Dベクトルの発散のない2D配列をランダムに生成し、それを使用して線積分畳み込みプロットを生成します。これを行う1つの方法は、ランダムノイズを生成し、ヘルムホルツホッジ分解のソレノイドコンポーネントを投影することであると聞いたことがあります。それをするために、私は次の推論を使ってみました:1

関数は、ヘルムホルツホッジ分解 ( 、およびはスカラー関数)とりあえず、調和成分が消失すると仮定します。2 F = H + φ + J ψ J = 0 - 1 1 0 φ ψ HfR2R22

f=h+φ+Jψ
J=0110
φψh

フーリエ空間では、これは なり、ソレノイド投影を定義できますとしてのフーリエ空間の演算子は 、介してソレノイドコンポーネントに関数を投影します P = I - KK

Ff=kφ^Jkψ^
F-1PFF=Jψ
P=kkkk
F1PFf=Jψ

次に、これをMathematicaで実装して、ランダム配列に適用しようとしました。最初にランダム配列を生成し、FFTを2つのコンポーネントのそれぞれに適用します。21×21×2

arr = RandomReal[{-1, 1}, {2, 21, 21}];
fArr = Fourier /@ arr;

次に、を配列インデックスの関数として定義します。k

k[k1_, k2_] := Mod[{k1 - 1, k2 - 1}, 21, -10]/21;

次に、フーリエ成分の射影を実行します(の特異点はステートメントを使用してそのままにしておきます)。k=0If

dat = Transpose[
   Table[If[k1 == 1 && k2 == 1, fArr[[;; , k1, k2]], 
     fArr[[;; , k1, k2]] - 
      k[k1, k2] (k[k1, k2].fArr[[;; , k1, k2]])/(k[k1, k2].k[k1, 
           k2])], {k1, 21}, {k2, 21}], {2, 3, 1}];

次に、2つのコンポーネントをiFFTします。

projArr = InverseFourier /@ dat;

これにより、純粋に実数の配列が得られ、単純に結果が近似になると期待します。私の質問は:Jψ

  • 結果はどのように近似しますか?Jψ

Chris BeaumontのHH_DECOMPルーチンがFFTを使用してHelmholtz-Hodge分解を実行することになっているため、2DデータのHelmholtz-Hodge分解は重要なタスクであると思われますが、メソッドのように彼は(コードの上部のコメントで)不正確。同様に、2Dデータのヘルムホルツ・ホッジ分解を実行するためのより複雑な変分法があります。これは、より単純なFFT法が何らかの形で不適切であることを示唆しているようです。どうして?FFTメソッドは何が間違っていますか?そして、ランダムノイズの高調波成分が消失すると仮定するのは間違っていますか?

(1):Stable Fluids、Jos Stam。

(2):Helmholtz-Hodge分解を使用したベクトルフィールドの特徴検出、Alexander Wiebel、12ページ。

(3):離散マルチスケールベクトル場分解、Yiying Tong。


私はあなたの実際の質問についてすぐに考えますが、なぜランダムなを生成してを定義しないのですか?さらに読む:「手続き型流体の流れに対するカールノイズ」、R。Bridson et al。F = J ψψf=Jψ

回答:


5

ψ

u=ψyandv=ψx

ψ


JψψF1LPFfLf2Jk^N1N2cos2πkr+τ

4

あなたの投稿でいくつかの質問をしたので、ビルは根本的な問題の解決策を提供しましたが、あなたの述べた質問についても誰かがいくつかのことを言うべきだと思います。

Jψ

f=h+ϕ+Jψh+Jψ

fh

Chris BeaumontのHH_DECOMPルーチンはFFTを使用してHelmholtz-Hodge分解を実行することになっていますが、(コードの上部にあるコメントで)メソッドが不正確に思われるとも述べています。

IDLを読み取れないため、何が起こっているのかわかりませんが、テストベクトルフィールドは周期的ではないようです。

同様に、2Dデータのヘルムホルツ・ホッジ分解を実行するためのより複雑な変分法があります。これは、より単純なFFT法がどういうわけか不適切であることを示唆しているようです。どうして?

心配しすぎだと思います。引用した論文の2ページ目に、「通常のグリッドの離散ヘルムホルツホッジ分解はすでにグラフィックスで使用されており(たとえば[25、10]を参照)、有限差分アプローチで実装するのは比較的簡単です。ただし、任意のグリッドに対して実用的で正確な方法を設計することははるかに困難です。」

FFTメソッドは何が間違っていますか?

周期的な境界条件がある場合、何もありません。実際、これらの条件下では、このようなスペクトル法は、有限差分法の多項式収束と比較して、指数収束を提供します。ただし、任意のジオメトリに適用するのは困難です。

そして、ランダムノイズの高調波成分が消えると仮定するのは間違っていますか?

技術的にはそうですが、周期的なケースでは、唯一の可能な調和ベクトル場は定数です。したがって、DCコンポーネントをそのままにしておくことで、問題はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.