对于大的3维线性弹性问题,什么是鲁棒的迭代求解器?


9

我将深入研究迷人的有限元分析世界,并想解决一个大的热机械问题(仅热机械,无反馈)。

对于机械问题,我已经从Geoff的答案中了解到,由于网格的大小,我将需要使用迭代求解器。我在Matt的回复中进一步读到,选择正确的迭代算法是一项艰巨的任务。

我要问的是,在大型3维线性弹性问题上是否有任何经验可以帮助我缩小对最佳性能的搜索范围?在我的情况下,它是一种结构,具有薄的图案化薄膜不规则放置的材料(高CTE和低CTE)。在热力学分析中没有大的变形。我可以使用大学的HPC [1.314节点,带有2个AMD Opteron处理器(每个2.2 GHz / 8核)]。

我认为其中PETSc可能包含一些有趣的东西,尤其是进行某种域分解(FETI,多重网格)的算法,但我对这些选择有些不知所措,没有经验。我也喜欢“几何通知的前置条件”一词,但是不确定这是否对我有帮助。我还没有找到关注线性连续体力学的东西。

在我的应用程序中,强大的缩放比例(Amdahl)非常重要,因为我的工业合作伙伴迫不及待要等待很长时间才能获得仿真结果。我绝对不仅赞赏答案,而且还提出建议,以便在评论中进一步阅读。


您在解决静态问题吗?好像是 我认为,对于动态或时谐问题,答案会有所不同。
张晖

静态的。动态过于昂贵。
塞巴斯蒂安

Answers:


6

假设您的结构实际上是3D(而不是仅薄型特征,也许是离散化的壳单元)并且模型大于数十万自由度,则直接求解器将变得不切实际,尤其是在您只需要一次解决每个问题的情况下。此外,除非结构始终“接近”狄利克雷边界,否则您将需要一种多层方法来提高效率。社区分为“多重网格”和“多层域分解”。有关数学的比较,请参阅我的答复:与网格分解前置条件相比,多重网格有什么优势,反之亦然?

通常,多网格社区在生产通用软件方面更为成功。出于弹性考虑,我建议使用需要大约“接近零空间”的平滑聚合。在PETSc中,这是通过选择PCGAMG或PCML(使用进行配置--download-ml)并调用MatSetNearNullSpace()以提供刚体模式来完成的。

域分解方法提供了比平滑聚合更快地进行粗化的机会,因此可能更耐延迟,但是就性能而言,“最佳点”往往比平滑聚合更窄。除非您想研究域分解方法,否则建议您仅使用平滑聚合,并可能在软件变得更好时尝试使用域分解方法。


非常感谢您提供了非常有用的答案!您接近Dirichlet边界到底是什么意思?就元素数量而言接近?
塞巴斯蒂安

在距离上,沿着元素或子域测量(对于具有强子域求解的一级域分解),沿着强材料路径闭合。如果信息必须经过许多子域才能确定本地解决方案,则一级方法将收敛缓慢。请注意,一个牢固的连接不足以实现弹性,因此必须控制所有刚体模式。
杰德·布朗

4

我想说这个问题的标准选择是共轭梯度求解器和代数多重网格预处理器。对于PETSc,hypre / boomeramg或ML是显而易见的预处理剂选择。

如果问题足够大(每个MPI流程至少有100,000个自由度),则通过PETSc使用的所有这些组件都可以很好地扩展到成千上万的处理器。


请注意,BoomerAMG(通常是传统的AMG)不使用空空间信息,也不以其他方式确保粗略空间可以准确表示旋转模式。您可以(并且应该)尝试一下,以及拆分组件并分别求解它们(PCFIELDSPLIT在PETSc中使用),但是平滑聚合通常对弹性更健壮。
杰德·布朗

1

如果您的材料不是太不可压缩(泊松比),则可以使用单独的位移分量预处理器轻松创建一个相当好的弹性预处理器。想法是简单地使一个具有3个块的块对角矩阵,每个块代表沿相同物理尺寸的耦合即:,,。<0.4(x,y,z)KxxKyyKzz

在那种情况下,您可以使用不太高级的AMG方法来计算每个块逆的近似值,并获得一个很好的前置条件。


1

沃尔特·兰德里(Walter Landry)使用自适应多重网格开发了用于三维弹性变形的代码。您可以在以下位置找到代码

https://bitbucket.org/wlandry/gamra

您可以通过各向同性本征应变和等效体力来包括热强迫的影响。一旦这些到位,求解器就可以正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.