Me gustaría comprender más detalles sobre la implementación de los métodos de múltiples cuadrículas algebraicas (AMG). He estado leyendo "Un tutorial de cuadrícula múltiple", que es bastante bueno y explica todos los detalles de la interpolación, el operador de cuadrícula gruesa y la selección de cuadrícula gruesa para AMG. Sin embargo, creo que no hay nada como jugar y leer un código.
Por lo tanto, me gustaría preguntar si alguien conoce algún "código de ejemplo" AMG clásico, como el código FORTRAN de múltiples cuadrículas geométricas disponible al final de "Métodos de múltiples cuadrículas" (SIAM) de SF McCormick. Es bastante difícil obtener un código de alta calidad y producción como BoomerAMG para obtener más información sobre el método.
Respuestas:
BoomerAMG es parte del paquete Hypre , que es muy sencillo de adquirir. Un código mucho menos complejo si está comenzando a mirar estos métodos podría ser PyAMG .
fuente
Recomiendo encarecidamente la introducción de Alfio Borizi al método algebraico de múltiples cuadrículas. Hay un ejemplo de código fortran 77 en el apéndice A.
fuente
También está el paquete ML que forma parte de Trilinos. Su reputación es igual de buena que la de BoomerAMG / hypre.
Creo que un nuevo paquete de Trilinos para AMG se llama MueLu, y también debería estar disponible en las versiones más recientes.
Todos estos son de código abierto.
fuente
He estado trabajando en esta implementación por un tiempo. Es Python / Numpy / Scipy. No es una multigrid algebraica: debe proporcionar su propio operador de restricción. Pero si es una implementación educativa en la que está interesado, agradecería algunas solicitudes de extracción para agregar dicha capacidad.
fuente