代数マルチグリッドコード


9

代数的マルチグリッド法(AMG)の実装に関する詳細を理解したいと思います。私は「マルチグリッドチュートリアル」を読んでいます。これは非常に優れており、AMGの補間、粗グリッドオペレーター、粗グリッド選択のすべての詳細を説明しています。しかし、コードをいじって読むのと同じだと私は思います。

そこで、SF McCormickの「Multigrid Methods」(SIAM)の最後にある幾何学的マルチグリッドFORTRANコードのような、古典的なAMGの「サンプルコード」を誰かが知っているかどうかを尋ねたいと思います。メソッドの詳細を学ぶためにBoomerAMGのような高品質で量産コードを入手するのは非常に困難です。


古典的な AMGに特に関心がありますか(*スムーズな集計とは対照的ですか)?もしそうなら、質問でこれを述べてください。
Jed Brown、

回答:


10

BoomerAMGはの一部であるHypreの取得に死んで簡単ですパッケージ。これらのメソッドを見始めた場合、それほど複雑ではないコードはPyAMGかもしれません。


はい、私はPyAMGを見てみました。これは非常に優れたコードですが、C / C ++コードをPythonでラップすることに関するすべてのものを備えており、「クラシック」以外のさまざまなAMGメソッドを実装しています。私は、人々が教えるために使用する、もっと簡単なものを探していました。
ベルナルドMR

4
残念ながら、AMGコードを使用して貢献しようとする一般的な経験は、多数のオプションがないと、興味深い問題に近づくものを何も解決できないということです。そのため、通常のAMGパッケージには、接続性の近似、補間器の構築、およびコードの読み取りでは確かに解析が難しい平滑化のための多くのオプションが含まれます。とは言っても、古典的なAMGは非常に単純であり、自分で実装するか、または自分の生徒に(スキルレベルに応じて)自分で試してもらうのが良い方法かもしれません。
Peter Brune

2

Alfio Boriziによる代数的マルチグリッド法紹介を強くお勧めします。付録AにサンプルのFortran 77コードがあります。


彼は文献よりも実装について尋ねていると思います。
ジャックポールソン、2012

1
@JackPoulson:付録に実装があります。
ポール

2
すみません、どうやら今朝は読めません。賛成。
ジャックポールソン、2012

1
@Paul:私は間違っているかもしれませんが、これはポアソン問題の幾何学的マルチグリッドコードだと思います(これは非線形の場合にも機能します)。
ベルナルドMR

@ BernardoM.R .:私はこのポストスクリプトファイルを見つけました...モデル問題の延長演算子と制限演算子の具体的な例がたくさんあります。実際には完全なコードは含まれていませんが、それでもまだある程度役立つかもしれません。
ポール

1

Trilinosの一部であるMLパッケージもあります。その評判はBoomerAMG / hypreの評判と同じくらい良いです。

AMGの新しいTrilinosパッケージはMueLuと呼ばれ、最新のリリースでも使用できるはずです。

これらはすべてオープンソースです。


1
MueLuはリリースされておらず、私が彼に最後に話をしたとき、Rayはもう1年ほどのリリースを期待していませんでした。MLとMueLu(その内容を聞いた限り)は、従来のAMG(BoomerAMGのベース)とはかなり異なるアルゴリズムである平滑化集約に基づいていることに注意してください。
Jed Brown

1

私はしばらくの間、この実装に取り組んできました。Python / Numpy / Scipyです。これは代数的マルチグリッドではありません。独自の制限演算子を指定する必要があります。しかし、それが興味のある教育の実装である場合は、そのような機能を追加するためのプルリクエストを歓迎します。

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