我要解决的问题是线弹性的位移公式:
弱公式是标准公式:
然后是使用 1 或 2 阶的经典拉格朗日函数基础对四面体或六面体网格进行 FEM 离散化。(P1 或 P2 用于四面体网格,Q1 或 Q2 用于六面体网格)
我可以组装线性系统没有困难,但我无法解决不重要的问题。
我已将我的测试用例减少到以下内容:
我正在使用共轭梯度来求解线性系统。我使用 Jacobi 或 Gauss-Seidel 预处理器进行了测试,但没有它们,CG 求解器会更快。
对于 Q1 函数基础:
- 当有超过 300k 个未知数(100k 个顶点)时,CG 求解器不收敛(几乎恒定残差)
对于第二季度的基础:
- 它在 200k 未知数处开始变慢,并且在它根本不会收敛之后
使用 Jacobi 或 Gauss-Seidel 预处理器不会提高收敛性。
为了比较视图,我使用热方程(标量场)和类似问题(单位立方体,混合边界条件)进行了测试,CG 求解器在 600k 未知数下快速收敛。由于差异主要是标量与矢量场,我想我在矢量问题的预处理中遗漏了一些东西。
具有 200k 未知数(8000 个六角形,9000 个顶点,Q2 基础)和微不足道的几何形状的线性弹性问题似乎很小,但我失败了。而更简单的预处理器并不能改善事情。所以我的问题是:
- 我应该如何选择线性弹性预调节器?
- 解决大型弹性问题(数百万个未知数)的人们如何处理此类问题?
如果您对此主题有任何建议或参考,我将非常感激,谢谢。