「完全に長方形ではない」グリッド上のマルチグリッド


9

マルチグリッドの導入では、通常、長方形のグリッドを使用します。次に、値の補間は単純です。粗いグリッドの2つの隣接するノード間のエッジを直線的に補間して、そのエッジ上の細かいグリッドノードの値を見つけます。

FEMアプリケーションの場合、「トポロジー的に」長方形のグリッドがあるので、ノード接続は長方形グリッドと同じです。ただし、ノードはグリッド上で完全に整列しているわけではありませんが、ジオメトリをより適切にフィットさせるために短い距離を移動する一方で、完全な長方形グリッドのように接続を維持します。

メッシュは次のようになります。メッシュの例。コネクションは「通常の長方形」ですが、ノードの位置はそうではありません。

このような設定で、いくつかの「妥当な」幾何学的補間スキームをイメージできます。

一般的な質問は次のとおりです。マルチグリッドは完全に整列した長方形グリッドを必要としますか、それとも補間が「良好」である限り、上記の状況でも機能しますか?それとも、その場合は代数的マルチグリッドを使用する方が良いですか?(幾何学的なマルチグリッドほど直感的ではないので、私は好みません。)


グリッドがトポロジー的に長方形であるという意味が理解できませんが、ノードが長方形グリッドのように配置されていません。グリッドは構造化された長方形グリッドですか?おそらく図面でこれを明確にしていただけませんか?構造化デカルトグリッドを使用する場合に発生するように整列しない長方形要素を使用しているという問題がありますか?
ジェームズ

@ジェームズ、私はOPの質問を「台形の中に「デカルトのような」グリッドがあるとどうなりますか?」と解釈しました。
ビル・バルト

回答:


6

マルチグリッドは、デカルト(長方形)の均一なグリッドを必要としません。必要なのは、細かいレベルと粗いレベルを定義でき(2レベルからマルチレベルのスキームに移動する場合は、再帰的に)、これらのレベル間に補間演算子を定義できることです。これを説明する最も簡単な方法は、確かにデカルトグリッドがある場合ですが、実際には粗いメッシュから始めて、一度メッシュを細かくすることができます。これは、より細かいメッシュです。

言い換えれば、マルチグリッドに適したメッシュを細かいメッシュとは考えず、より粗いメッシュを見つける方法を考えるのが最も簡単ですが、均一なリファインによって細かいレベルを取得する粗いメッシュから開始することです(つまり、すべての四辺形が4つの小さいものに細分されます)。常に均一な調整が可能なため、これにより階層がすぐに得られます。これは粗くすることとは対照的です。特定のメッシュが与えられただけでは必ずしも可能ではないため、メッシュ階層の定義がはるかに複雑になります。(そのため、行列の基になっているメッシュを考慮せずに、行列だけに基づいて粗いレベルを定義する代数的マルチグリッド法が登場しました。)


画像の例を質問に編集しました。私の場合、2番目のノード(次元ごと)のみを取得し、そのグリッドのFEMを再計算して粗い行列/演算子を取得するだけで、粗大化は非常に簡単だと思います。粗いデータベクトルは、すべての2番目のノード値を取得するだけで取得できます。
マイケル

1
それはあなたが望むようにうまくいくかもしれないし、そうでないかもしれません(私はおそらくそれはうまくいくと思いますが、完全に確実ではありません)。実際の例では、粗いメッシュのセルは子と同じ領域をカバーしていないため、有限要素空間のネストプロパティはありません。粗いメッシュで表すことができる関数は、細かいメッシュで表現できる関数。Joe PasciakとJim Brambleはそのようなケースに関する論文を書いており、私はそれらを機能させることができることを思い出します。しかし、すぐにはわかりません。
Wolfgang Bangerth 2015

4

長方形の要素で構成される次のグリッドがあるとしましょう:

ここに画像の説明を入力してください

通常の構造化された長方形グリッドを想定して補間を実行すると、この不正確な補間に関連するエラーが発生します。つまり、残差ベクトルを制限したり、エラーベクトルを延長したりすると、補間によるエラーが発生します。

グリッドが通常の構造化デカルトグリッドに「近い」場合、これは少なくとも最初は機能する可能性がありますが、グリッドが長方形からどれだけ離れているかによって、次の2つのうちの1つが起こると思います。

1)マルチグリッドが最初に収束し始めることがわかります。結局のところ、最初のうちはエラーがいずれにせよ大きく、「近似」補間は、一部のノードがわずかに過剰に表現されている一方で、一部のノードがわずかに不十分に表現されていることを実際に意味します。ただし、解がより正確になり、補間エラーがより重要になるにつれて、収束が停滞する場合があります。

2)別の可能性としては、マルチグリッドが収束することになりますが、正しい補間を使用した場合ほど速くはありません。

基本的に、補間をオフにすることで、特定のノードの重要度に不正確な重みを付けます。たとえば、次のように特定のノードに重みを付けている場合、2Dで

[0.250.50.250.51.00.50.250.50.25]

グリッドが完全にデカルトではないため、実際には次のようになります。

[0.250.550.250.551.00.490.280.520.30]

その後、これはいくつかのエラーになります。このエラーが収束を妨げるかどうかは、グリッドがデカルト座標からどれだけ離れているかによります。

AMGは理解/実装がより困難ですが、グリッドにとって正しい方法のように思えます。幾何学的マルチグリッドを「近似」長方形グリッドに適用することはうまくいくかもしれませんが、それはせいぜいバンドエイドの解決策だと思います。お役に立てれば。

更新:私の答えには混乱があったかもしれません。幾何学的マルチグリッドがデカルトメッシュでのみ機能することを言っているのではなく、デカルトメッシュでの補間の定義(したがって制限)は簡単ですが、構造化されていないメッシュではこれは難しい場合があります。たとえば、三角形のメッシュを持つ単純な2Dドメインの場合も考えてみましょう。このメッシュの調整は(少なくとも概念的には)簡単ですが、粗いメッシュと細かいメッシュの間の補間演算子をどのように定義しますか?AMGの方が「ブラックボックス」ソルバーのように機能する、つまり基礎となるメッシュに関する情報を必要としないという理由だけでAMGを好みますが、これは私の個人の偏見/癖です。幾何学的マルチグリッドは、正確な補間演算子を提供できる限り機能します。


私はこれを「あなたの補間がどれほど良いかに依存する」と読むことができますよね?だから私が「完璧な」補間スキームを思い付くことができれば、私は大丈夫でしょうか?
マイケル

1
私はこの答えは真実ですが誤解を招くと思います-グリッドが通常のデカルトであるふりをしていない場合は、間違った答えが返されるということです。それは本当ですが、数値法についても同じことが言えます。重要な点は、ジオメトリックマルチグリッドは、正しく実装されている場合、より一般的なメッシュで正確であることです。
David Ketcheson、2015

正しく実行されている限り、ジオメトリックマルチグリッドを非デカルトメッシュで使用できることに同意します。実際のデカルトメッシュ用に設計された補間を使用しながら、「おおよその」デカルトメッシュを使用することで機能するかどうかを尋ねるOPの質問に答えました。
ジェームズ

@Michael基本的に、異なるグリッドレベル間で補間演算子を定義するいくつかの方法が必要です。デカルトメッシュではこれは簡単です。非デカルトメッシュでは、メッシュの構造化の程度によっては、これがすぐに困難になる可能性があります。ウォルフガングが彼の答えで言うように、あなたは常に粗いメッシュからより洗練されたメッシュを作成することができますが、意味のある補間演算子を定義することは難しいかもしれません。AMGの利点は、補間演算子を定義するためにメッシュデータを必要としないという点で、「ブラックボックス」ソルバーのように動作することです。必要なのはマトリックス
James

@MIchaelそれではあなたの質問に答えてください。はい、正確な補間演算子を考え出すことができれば、ジオメトリックマルチグリッドは正常に機能します。お役に立てれば。
ジェームズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.