Je prévois d'utiliser le multigrille pour calculer certaines valeurs et vecteurs propres, et j'ai remarqué que PETSc a un support de haut niveau pour le multigrille. La documentation PETSc indique que cette partie de PETSc ne doit pas être utilisée, car elle sera bientôt remplacée.
Quelles autres bibliothèques prennent en charge de haut niveau le multigrille, et à quelle date approximative PETSc publiera-t-il le nouveau support multigrille?
Réponses:
PETSc et Trilinos ont tous deux de bonnes méthodes multigrilles algébriques.
deal.II implémente des méthodes géométriques multigrilles pour les discrétisations par éléments finis, voir par exemple le programme tutoriel étape-16 .
la source
PETSc multigrid (en tant que préconditionneur) est assez mature et peut être utilisé avec n'importe lequel des solveurs KSP (méthode itérative de Krylov) dans PETSc en tapant:
-pc_type mg
Cependant, cela nécessite que vous ayez un moyen de générer vos niveaux grossiers, comme avoir des grilles structurées définies par des objets PETSc DA, qui seront grossies automatiquement.
Ou, si vous souhaitez utiliser une multigrille algébrique du package HYPRE, vous pouvez utiliser
-pc_type hypre
Ou du pack ML avec
-pc_type ml
Ceux-ci sont téléchargés pendant le processus de configuration en ajoutant
--download-hypre=1 --download-ml=1
à votre ligne de commande ./configure.
La partie qui est dépréciée (pour l'instant) est le cadre DMMG, qui est remplacé par le solveur SNES (non linéaire) FAS et un meilleur support pour gérer les discrétisations multiniveaux tout en utilisant MG ou FAS en ce moment. L'autre remplacement (pour les problèmes linéaires) est
-pc_type gamg -pc_gamg_type sa
Il s'agit d'un code plus récent, natif de PETSc, multigrille algébrique à agrégation lissée hautement évolutive.
la source