フーリエ疑似スペクトル法と数値散逸


9

FFTを使用したフーリエ疑似スペクトル法(Orzag&Patterson、PRL、1972)による等方性乱流の直接数値シミュレーションの実行。乱流コミュニティで広く使用されている方法の背景については、次のコースをご覧ください。http//www.math.ualberta.ca/~bowman/m655/lab3d.pdf

いわゆる用いことから成るdealiasingための規則 ここで、は時間、は波数、は最大波数、は速度のスペクトル振幅です。2/3

u^(k,t)=0              if   k>23kMAX
tkkMAXu^

脱エリア化は数値散逸として機能しますか?つまり、デアリアリングによるエネルギー漏れはありますか?


あなたの質問が何を求めているのか明確ではありません。明確にしてもらえますか?
Geoff Oxberry、

今はどう ?
ucsky

回答:


6

たたみ込みの解放は、数値の散逸として機能しません。実際、エネルギーは、エイリアスされた用語を除外した場合にのみ保存されます。

FFTベースのたたみ込みの関連付け解除の背後にある考え方は、FFTによって追加された余分な項を取り除くことです。畳み込みは単なる合計であり、合計を計算するだけで計算できます。ただし、これは非常に遅いため、入力をフーリエ変換し、結果を乗算してから、フーリエ変換を反転する方がよいでしょう。これは、畳み込み定理により、畳み込みと同じです。

しかし、畳み込み定理は、入力が無限の長さの場合にのみ機能します。有限長の入力の場合、物理的でない追加の用語(エイリアス)が表示されます。エイリアス解除のポイントは、計算を高速化するためにFFTを使用できるようにしながら、計算しようとしていた元の方程式を取り戻すことです。


マルコムは、彼が共同執筆したFFTW ++ライブラリについて言及していませんが、パディングを暗黙的に(特に)処理することにより、エイリアスのない畳み込みをすばやく実行できます。fftwpp.sourceforge.netを参照してください。
マシューエメット2012年

そうそう、マットに感謝!FFTW ++のコンボリューションルーチンは、エイリアスのないコンボリューションの計算コストを本当に削減します。sourceforgeページやその他のWebページに参​​照があります。私はこれらの3D乱流ラボがOPにリンクされているJohn Bowmanと共同で作業しました。
Malcolm

4

エイリアス解除の機能を理解するには、そもそもFFTを行う理由を理解する必要があります。私にとって、重み付き残差アプローチの方法は、最も単純なフレームワークを提供します。

  1. フーリエモードの合計として解を拡張し、それをナビエストークス方程式にドロップします。テスト関数もフーリエ基底です。
  2. トライアル関数とテスト関数を掛け合わせて内積を取る(つまり、適切な共役と統合する)と、非線形であるため単純に評価できない1つの積分があることがわかります。
  3. 均一な配置ポイントで値を単純に合計する均一な求積法を使用して、その積分を近似できます。
  4. フーリエモードの1.5倍の直交点を使用する場合、直交は2次非線形性に正確であることに注意してください。これは3つの半分の要素です。
  5. 最後に、直交はFFTとして効率的に計算できることに注意してください。

すべてのFFTマジックは、効率的な近似直交スキームであり、2次非線形性に対して正確にすることができます。他のデエリアシングバリアントは他のトリックを実行して、同じクラスの非線形性に対して求積法を正確にします。

ですから、あなたの質問に答えるために、エイリアス解除は散逸を追加しません。これは、手順のすべてのステップが正確だったためにわかります。


1

@Malcolmは、FFTベースの畳み込み和の逆引きについて専門家の説明をしました。しかし、これは、@ abberationが必要とする完全な答えではないので、直感ではわかりません。したがって、数値手法を理解するための私自身の闘争を反映する文章をもう少し挙げます。

Dealiasingは数値散逸としては機能しませんが、数値散逸と同じことを行います-シミュレーションが爆発するのを防ぎます。

シミュレーションはどのように爆発しますか?

高波数から低波数への非物理的なエネルギー移動があり、最初に不安定性が発生します(多くの場合、その後にシンプトーム-2h波、hグリッドノード距離、グリッドで表すことができる最小の波)。

この背後にある理由は、グリッドで表現できる低い波数への高い波数のエイリアシングです。これは「スペクトルブロッキング」を引き起こします-高い波数の振幅(読み取りエネルギー)の非物理的な増加です。これは、表される波数の上限に近づくにつれて悪化します。

最初の救済策(フィリップス、1959年):表示された波数スペクトルの上半分をフィルタリングするか、ゼロに等しくします。

2番目の救済策(Orszag、1971年):Orszagの2/3ルールとして知られている救済策。スティーブンは「波数の半分を取り除くことは無駄です。私たちは2 / 3Nを維持し、上の1 / 3Nのみを取り除くべきです。

結論。

私たちのシミュレーションは時々爆破する傾向があります。(これらのラインの作者がしたように)2次有限体積宇宙に住んでいて、スペクトル法について何も知らない場合、「ああ、シミュレーションが爆破されていますか?中央スキームではなく風上の一次風を使用するか、ブレンドしてください中心的なスキームは修正されたアプローチで風上に10%あります。これは散逸を追加しますが、シミュレーションが爆発するのを防ぎます!LESを実行しているのですか?ILESを実行しているのでなければ、風上を使用しないでください。中央方式とスマゴリンスキーは、最も低いスケールで発生する物理的散逸をモデル化します。」スペクトラルメソッドユニバースに住んでいる場合は、エネルギーの非物理的な伝達がどのように行われるかを学び、3分の2ルールまたは「パディング」による対処で救済策を見つけます。

この投稿のインスピレーションは、J。ボイドによるすばらしい本「チェビシェフとフーリエスペクトル法」のセクション11です。

私のアドバイスは:

物理的またはスペクトル的に行動しますが、スペクトル的に考えてください!(よく知られている「グローバルに考え、ローカルに行動する」と言い換えること。)


1

「エイリアス除去」自体に関連するエネルギーリークはありませんが、切り捨てに関連して、または関連付けなしで常に実行される切り捨てに関連するエネルギーリークあります。説明させてください:

2つの関数fgがあり、どちらもモードkまでのスペクトル成分を持っている場合、積fgはモード2kまでのスペクトル成分を持ちます。ただし、表現のスペクトルコンテンツが各タイムステップで2倍になることは望ましくありません。したがって、積fgを最初のkモードに切り捨てる必要があります。これを行うと、kより高いモードに含まれるエネルギーが失われます。

Dealiasing(またはアンチエイリアシング)は、kまでのモードがfgの表現で正しいことを保証しますが、kより大きいモードは、とにかく破棄されるためです。

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