対流拡散演算子の前処理に代数マルチグリッドを使用する


8

線形連立方程式を解くために、FEM離散化とPETScに基づいてNavier Stokesを実装しました。効率的な解の手順を作成するために、私は「非圧縮性流れのための線形化されたナビエ・ストークス方程式の効率的な事前調整」(Silvester et al。)に従って、Schur補完アプローチを提案します。メッシュサイズとタイムステップに関係なく、ほぼ一定の反復回数があり、このホワイトペーパーでも説明されている単純なベンチマーク(2D駆動キャビティフローと後向きステップ)の反復数がほぼ一定であるという意味で、これは非常にうまく機能します。しかし、現時点では、並列速度直接ソルバー(MUMPS)で上部速度ブロックを解きます。Pressure Schurブロックは、論文で提案されているように、不正確なソルバーで解かれます。

この論文では、著者は、各外部反復で単一のマルチグリッドVサイクルを実行し、この離散対流拡散演算子の逆数を近似するためにポイントガウスザイデルスムーザーを使用することを提案しています。幾何学的なマルチグリッド法を簡単に使用できないため、直接ソルバーを1つの代数的マルチグリッドVサイクル(hypreパッケージのboomeramg)に置き換えることを考えました。しかし、メッシュを細かくしている間、一定数の反復を失うよりも。

代数的マルチグリッドに基づいて速度行列の逆行列に対してスペクトル的に等価で効率的な前処理を作成する方法を知っている人はいますか?この場合、代数的マルチグリッドを利用できない固有のものはありますか?そうでない場合、定数反復スケーリングを失う原因は何でしょうか?


編集:

速度ブロックのさまざまなソルバーのベンチマークをいくつか追加しました。問題は、標準の2D駆動キャビティフロー、テイラーフードによる離散化、およびユニットボックスの均一な改良によって解決されます。

Exaktソルバー(MUMPS)

:25 ITER H=1h=132:25 ITER H=1h=164:25反復 h=1h=1128:22反復h=1256

1つのV-AMG(代数、ブーメラム)

:30 ITER H=1h=132:30 ITER H=1h=164:39反復 h=1h=1128:48反復h=1256

プレコンディショナーV-AMG(代数、ブーメラム)を使用したFGMRES、rtol:106

:30 ITER H=1h=132:29 ITER H=1h=164:30反復 h=1h=1128:47反復h=1256

プレコンディショナーV-AMG(代数、ブーメラム)を含むFGMRES、atol:108

:27 ITER H=1h=132:27 ITER H=1h=164:28反復 h=1h=1128:26反復h=1256

回答:


2

あなたがしたことは、左上にある正確な(直接)ソルバーを、単一のVサイクルのみを実行するソルバーに置き換えることです。進む方法は、VサイクルAMGをこの内部ソルバーの前提条件として使用して、反復ソルバー(GMRESなど)を使用して前提条件子の左上のブロックを解くことです。経験によれば、F-GMRESを外部ソルバーとして使用する場合、内部GMRESソルバーはそれほど正確である必要はありません。ほぼ一定の数の外部反復を生成できるほど正確です。


私はあなたの提案に従い、正確なソルバーをfgmresに置き換えることでいくつかのテストを行いました(マルチグリッドは線形演算子として動作しないため、内部ソルバーとしてgmresの柔軟なバリアントも使用する必要があると思います)。 。上記の質問に結果を追加しました。ご覧のとおり、1つのVサイクルを相対許容誤差を持つソルバーに置き換えても、同じ結果が得られます。内部ソルバーを絶対許容誤差で実行するだけで、外部反復が定数になり、増加する内部反復の代償になります。
Thomas W.

問題が見つかりました!驚いたことに、この問題は対流拡散演算子のスペクトル近似が悪いためではなく、Schur補数部分で私が犯したいくつかの間違いによるものでした。したがって、速度ブロックではVサイクルが1つでも問題なく、ソルバーはメッシュサイズに関係なくタイムステップごとに10回の反復を必要とします。
トーマスW.

聞いてうれしい。あなたの結果は確かに、ここにある紙35の経験と一致しています:math.tamu.edu/~bangerth/publications.html#x-reviewed
Wolfgang Bangerth
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.