1
対流拡散演算子の前処理に代数マルチグリッドを使用する
線形連立方程式を解くために、FEM離散化とPETScに基づいてNavier Stokesを実装しました。効率的な解の手順を作成するために、私は「非圧縮性流れのための線形化されたナビエ・ストークス方程式の効率的な事前調整」(Silvester et al。)に従って、Schur補完アプローチを提案します。メッシュサイズとタイムステップに関係なく、ほぼ一定の反復回数があり、このホワイトペーパーでも説明されている単純なベンチマーク(2D駆動キャビティフローと後向きステップ)の反復数がほぼ一定であるという意味で、これは非常にうまく機能します。しかし、現時点では、並列速度直接ソルバー(MUMPS)で上部速度ブロックを解きます。Pressure Schurブロックは、論文で提案されているように、不正確なソルバーで解かれます。 この論文では、著者は、各外部反復で単一のマルチグリッドVサイクルを実行し、この離散対流拡散演算子の逆数を近似するためにポイントガウスザイデルスムーザーを使用することを提案しています。幾何学的なマルチグリッド法を簡単に使用できないため、直接ソルバーを1つの代数的マルチグリッドVサイクル(hypreパッケージのboomeramg)に置き換えることを考えました。しかし、メッシュを細かくしている間、一定数の反復を失うよりも。 代数的マルチグリッドに基づいて速度行列の逆行列に対してスペクトル的に等価で効率的な前処理を作成する方法を知っている人はいますか?この場合、代数的マルチグリッドを利用できない固有のものはありますか?そうでない場合、定数反復スケーリングを失う原因は何でしょうか? 編集: 速度ブロックのさまざまなソルバーのベンチマークをいくつか追加しました。問題は、標準の2D駆動キャビティフロー、テイラーフードによる離散化、およびユニットボックスの均一な改良によって解決されます。 Exaktソルバー(MUMPS) :25 ITER H=1h = 132h=132h = \frac{1}{32}:25 ITER H=1h = 164h=164h = \frac{1}{64}:25反復 h=1h = 1128h=1128h = \frac{1}{128}:22反復h = 1256h=1256h = \frac{1}{256} 1つのV-AMG(代数、ブーメラム) :30 ITER H=1h = 132h=132h = \frac{1}{32}:30 ITER H=1h = 164h=164h = \frac{1}{64}:39反復 h=1h = 1128h=1128h = …