#求解器 #矩阵 #迭代 #研究 #自适应 #方法 #匹配

bin+lib amg_match

研究迭代求解器工具

1 个不稳定版本

0.1.0 2024年4月4日

#1357 in 数学

MIT 许可证

3.5MB
3K SLoC

Rust 2.5K SLoC // 0.2% comments C++ 389 SLoC // 0.3% comments

AMG Match

AMG Match 是一个研究项目,旨在研究用于解决大型稀疏正定矩阵系统的自适应多网格方法。提供了几种不同的光滑算子和预处理器,并实现了几种迭代方法。

这是一个正在进行中的项目,需要大量的工作,但如果有人需要用于在 nalgebra-sparse 之上的稀疏迭代求解器,这可能很有用。

功能

[x] 静态求解器 [x] 预处理共轭梯度 [x] mu-cycle AMG 求解器/预处理器 [x] L1 和高斯-赛德尔光滑算子 [x] 三角求解器(用于高斯-赛德尔)

许可证

MIT 2022 Austen Nelson


lib.rs:

TODO 添加 GitHub、crates 和文档的链接


此库提供了对论文中描述的研究算法的测试套件:TODO 添加论文链接。

实现的求解器旨在用于对称正定矩阵。这些矩阵通常来源于描述扩散的偏微分方程中的椭圆算子的离散化。这些离散化的最优和流行预处理器是多网格方法。对于相当规则的网格和材料成分,标准几何多网格既简单又高效。在更复杂的几何形状和材料的情况下,尤其是那些表现出极端各向异性的情况,需要更通用和复杂的代数多网格(AMG)技术。存在许多 AMG 的变体和方法,其中许多都非常复杂和专业化。此实现向这些方法添加了一个通用且(相对)简单的选项。

实现的算法基于构建复合代数多网格预处理器。复合预处理器中的每个组件都是自适应的,并利用系统矩阵的“近零空间”中的向量。众所周知,这些“近零”组件或低幅值特征值很难用基于 Krylov 子空间的迭代方法消除。这些“近零”组件通过在系统 Ax=0 上测试预处理器直到收敛停滞来发现。之后,它们被用于构建一个特殊的 AMG 循环,该循环与先前的预处理器组合形成一个新的复合方法。重复测试、构建和组合的循环,直到该方法在测试问题上有期望的收敛速度。

依赖项

~23MB
~408K SLoC