Estoy planeando usar multirredes para calcular algunos valores y vectores propios, y noté que PETSc tiene soporte de alto nivel para multirredes. La documentación de PETSc dice que esta parte de PETSc no debe usarse, ya que se reemplazará pronto.
¿Qué otras bibliotecas tienen soporte de alto nivel para multigrid, y aproximadamente qué tan pronto PETSc lanzará el nuevo soporte multigrid?
Respuestas:
Tanto PETSc como Trilinos tienen buenos métodos algebraicos de múltiples cuadrículas.
deal.II implementa métodos geométricos de múltiples cuadrículas para discretizaciones de elementos finitos, ver por ejemplo el programa tutorial del paso 16 .
fuente
La multirredes PETSc (como preacondicionador) es bastante madura y se puede usar con cualquiera de los solucionadores KSP (método iterativo de Krylov) en PETSc escribiendo:
-pc_type mg
Sin embargo, esto requiere que tenga alguna forma de generar sus niveles gruesos, como tener cuadrículas estructuradas definidas por objetos PETSc DA, que se volverán gruesos automáticamente.
O, si desea usar multirredes algebraicas del paquete HYPRE, puede usar
-pc_type hypre
O del paquete ML con
-pc_type ml
Estos se descargan durante el proceso de configuración agregando
--download-hypre=1 --download-ml=1
a su línea de comando ./configure.
La parte que se deprecia (por ahora) es el marco DMMG, que está siendo reemplazado por el solucionador FAS SNES (no lineal) y un mejor soporte para manejar discretizaciones multinivel mientras usamos MG o FAS mientras hablamos. El otro reemplazo (para problemas lineales) es
-pc_type gamg -pc_gamg_type sa
Este es un código más nuevo, nativo en PETSc, multirrid algebraico de agregación suavizada altamente escalable.
fuente