AMGCL — это библиотека C++, предназначенная только для заголовков, предназначенная для решения больших разреженных линейных систем с помощью метода алгебраической многосеточной обработки (AMG). АМГ — один из наиболее эффективных итерационных методов решения систем уравнений, возникающих, например, при дискретизации УЧП на неструктурированных сетках. Этот метод можно использовать в качестве решателя «черного ящика» для различных вычислительных задач, поскольку он не требует никакой информации о базовой геометрии. AMG часто используется не как автономный решатель, а как предобуславливатель в итеративном решателе (например, Conjugate Gradients, BiCGStab или GMRES).
AMGCL строит иерархию AMG на ЦП, а затем передает ее на один из предоставленных серверов. Это позволяет прозрачно ускорить этап решения с помощью технологий OpenCL, CUDA или OpenMP. Пользователи могут предоставлять свои собственные серверные части, что обеспечивает тесную интеграцию между AMGCL и пользовательским кодом.
См. документацию AMGCL по адресу http://amgcl.readthedocs.io/.
Демидов Денис. AMGCL: эффективная, гибкая и расширяемая реализация алгебраической многосеточной системы. Математический журнал Лобачевского, 40(5):535–546, май 2019 г. doi pdf bib
Демидов Денис. AMGCL — библиотека C++ для эффективного решения больших разреженных линейных систем. Влияние программного обеспечения, 6:100037, ноябрь 2020 г. doi bib
Демидов, Денис, Линь Му и Бинь Ван. Ускорение линейных решателей задач Стокса с помощью метапрограммирования C++. Журнал вычислительной науки (2020): 101285. doi arxiv bib