为什么在共轭梯度中用作预处理器的平滑聚合多重网格方法会减慢求解时间?

计算科学 有限元 迭代法 多重网格 共轭梯度 固体力学
2021-11-25 15:32:17

我正在求解一个线性方程组,该方程组是从一个平面上的零位移和另一平面上的负载的立方体上的简单线性弹性问题的 FEM 离散化获得的。系统大小约为 85000。我使用以平滑聚合多重网格方法为预处理的共轭方法,该方法为我的矩阵提供了平移和旋转向量。但最终我在求解时间三倍时只在迭代量上得到加速。我实现了这里介绍的算法:https ://link.springer.com/content/pdf/10.1007/s211-001-8015-y.pdf 延长算子平滑器现在略有不同,它是作为基于原始问题矩阵的加权雅可比方法完成的。但一般步骤是一样的。所以在我读过的任何作品中,我从未见过求解时间的图表,或者作者用这种算法求解了一个大矩阵。经典的 AMG 应用于巨大的 Poisson 问题矩阵可以在几秒钟内解决它,但是应该解决线性弹性问题的算法并没有表现出这样的性能。为什么这样?我试图找到线性弹性中的任何问题,其中 amg 将显示加速度

1个回答

如果我正确理解您的问题,您正在使用共轭梯度解决线性弹性问题,并且它是用预处理的 AMG 求解器进行预处理的?在我看来,对于一个表现良好的问题来说,这可能是矫枉过正,这可能就是为什么你看不到加速的原因。只是为了详细说明一下。我认为在这种情况下只使用预处理 AMG 更有意义。大多数情况下,您将预处理的 AMG 作为预处理器用于 krylov 求解器,用于处理来自更复杂物理和更复杂网格的非常讨厌的线性系统。在这种情况下,我们喜欢使用 krylov 求解器,因为它们可以防止发散,并且预处理的 AMG 作为 krylov 求解器的预处理器完成了大部分工作。您的问题应该表现良好,并且不需要花哨的求解器。