AMGCL est une bibliothèque C++ en en-tête uniquement pour résoudre de grands systèmes linéaires clairsemés avec la méthode multigrille algébrique (AMG). AMG est l'une des méthodes itératives les plus efficaces pour la résolution de systèmes d'équations issus, par exemple, de la discrétisation d'EDP sur des grilles non structurées. La méthode peut être utilisée comme solveur de boîte noire pour divers problèmes de calcul, car elle ne nécessite aucune information sur la géométrie sous-jacente. AMG n'est souvent pas utilisé comme solveur autonome mais comme préconditionneur au sein d'un solveur itératif (par exemple Conjugate Gradients, BiCGStab ou GMRES).
AMGCL construit la hiérarchie AMG sur un processeur, puis la transfère vers l'un des backends fournis. Cela permet une accélération transparente de la phase de solution à l'aide des technologies OpenCL, CUDA ou OpenMP. Les utilisateurs peuvent fournir leurs propres backends, ce qui permet une intégration étroite entre AMGCL et le code utilisateur.
Voir la documentation AMGCL sur http://amgcl.readthedocs.io/
Demidov, Denis. AMGCL : une implémentation multigrille algébrique efficace, flexible et extensible. Lobatchevskii Journal of Mathematics, 40(5):535-546, mai 2019. doi pdf bib
Demidov, Denis. AMGCL -- Une bibliothèque C++ pour une solution efficace des grands systèmes linéaires clairsemés. Impacts logiciels, 6:100037, novembre 2020. doi bib
Demidov, Denis, Lin Mu et Bin Wang. Accélération des solveurs linéaires pour les problèmes de Stokes avec la métaprogrammation C++. Journal of Computational Science (2020): 101285. doi arxiv bib