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.