Welche Bibliotheken unterstützen Multigrid auf hohem Niveau?

17

Ich plane, mit Multigrid einige Eigenwerte und Vektoren zu berechnen, und mir ist aufgefallen, dass PETSc Multigrid auf hohem Niveau unterstützt. Die PETSc-Dokumentation besagt, dass dieser Teil von PETSc nicht verwendet werden sollte, da er bald ersetzt wird.

Welche anderen Bibliotheken unterstützen Multigrid auf hohem Niveau, und wie bald wird PETSc die neue Multigrid-Unterstützung veröffentlichen?

Dan
quelle
2
Der neue MG ist in petsc-dev enthalten und funktioniert genauso wie der neue GAMG-Solver. Wir warten auf die Veröffentlichung, bis wir jedes Beispiel ändern können (und es gibt Hunderte). Ich würde gerade anfangen, petsc-dev jetzt zu verwenden.
Matt Knepley

Antworten:

7

Sowohl PETSc als auch Trilinos verfügen über gute algebraische Multigrid-Methoden.

deal.II implementiert geometrische Multigrid-Methoden für Finite-Elemente-Diskretisierungen, siehe zum Beispiel das Lernprogramm für Schritt 16 .

Wolfgang Bangerth
quelle
2
PETSc führt geometrische MG durch, wenn Sie seitdem ein DMDA-Gitter (kartesisches Gitter) verwenden. Wir wissen, wie man Interpolatoren und grobe Probleme konstruiert.
Matt Knepley
11

PETSc multigrid (als Vorkonditionierer) ist ziemlich ausgereift und kann mit jedem der KSP-Löser (iterative Krylov-Methode) in PETSc verwendet werden, indem Folgendes eingegeben wird:

-pc_type mg

Dies setzt jedoch voraus, dass Sie eine Möglichkeit zum Generieren Ihrer Grobstufen haben, z. B. durch PETSc DA-Objekte definierte strukturierte Gitter, die automatisch vergröbert werden.

Oder, wenn Sie algebraisches Multigrid aus dem HYPRE-Paket verwenden möchten, können Sie verwenden

-pc_type hypre

Oder aus dem ML-Paket mit

-pc_type ml

Diese werden während des Konfigurationsprozesses durch Anhängen heruntergeladen

--download-hypre=1 --download-ml=1

zu Ihrer ./configure Kommandozeile.

Der Teil, der (vorerst) abgeschrieben wird, ist das DMMG-Framework, das durch den SNES-FAS-Solver (nichtlinear) ersetzt wird und das den Umgang mit mehrstufigen Diskretisierungen bei der Verwendung von MG oder FAS besser unterstützt. Der andere Ersatz (für lineare Probleme) ist

-pc_type gamg -pc_gamg_type sa

Dies ist ein neuerer, in PETSc integrierter, hoch skalierbarer algebraischer Multigrid-Code mit geglätteter Aggregation.

Peter Brune
quelle