amgcl
1.4.4
AMGCL 是一个仅包含头文件的 C++ 库,用于使用代数多重网格 (AMG) 方法求解大型稀疏线性系统。 AMG 是解决方程组最有效的迭代方法之一,例如,通过在非结构化网格上离散偏微分方程而产生。该方法可以用作各种计算问题的黑盒求解器,因为它不需要有关基础几何形状的任何信息。 AMG 通常不用作独立求解器,而是用作迭代求解器(例如共轭梯度、BiCGStab 或 GMRES)中的预处理器。
AMGCL 在 CPU 上构建 AMG 层次结构,然后将其传输到提供的后端之一。这样可以借助 OpenCL、CUDA 或 OpenMP 技术透明地加速解决方案阶段。用户可以提供自己的后端,从而实现 AMGCL 和用户代码之间的紧密集成。
请参阅 AMGCL 文档:http://amgcl.readthedocs.io/
杰米多夫、丹尼斯. AMGCL:一种高效、灵活且可扩展的代数多重网格实现。 Lobachevskii 数学杂志,40(5):535–546,2019 年 5 月。doi pdf bib
杰米多夫、丹尼斯. AMGCL——一个用于高效解决大型稀疏线性系统的 C++ 库。软件影响,6:100037,2020 年 11 月。doi bib
杰米多夫、丹尼斯、林木和王斌。使用 C++ 元编程加速 Stokes 问题的线性求解器。计算科学杂志 (2020): 101285.doi arxiv bib