什么是大型 3-d 线弹性问题的稳健迭代求解器?

计算科学 pde 并行计算 宠物 高性能计算 迭代法
2021-12-08 05:33:45

我正在潜入迷人的有限元分析世界,想解决一个大的热机械问题(只有热机械,无反馈)。

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

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

我认为PETSc可能包含一些有趣的东西,尤其是进行某种域分解(FETI,multigrid)的算法,但我对这些选项有点不知所措并且没有经验。我也喜欢“几何信息预处理器”这个短语,但我不确定这是否对我有帮助。我还没有找到专注于线性连续体力学的东西。

强缩放 (Amdahl) 在我的应用程序中非常重要,因为我的工业合作伙伴不能等待很长时间才能获得模拟结果。我绝对不仅感谢答案,而且还建议在评论中进一步阅读。

4个回答

假设您的结构实际上是 3D 的(而不仅仅是细特征,可能用壳单元离散化)并且模型大于几十万自由度,直接求解器变得不切实际,特别是如果您只需要解决每个问题一次。此外,除非结构总是“接近”狄利克雷边界,否则您将需要一个多级方法来提高效率。社区分为“多网格”和“多级域分解”。有关数学的比较,请参阅我的回复:多重网格与域分解预处理器相比有什么优势,反之亦然?

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

域分解方法提供了比平滑聚合更快地粗化的机会,因此可能具有更高的延迟容忍度,但就性能而言,“最佳位置”往往比平滑聚合更窄。除非你想研究领域分解的方法,否则我建议只使用平滑聚合,等软件变得更好时,也许可以尝试使用领域分解的方法。

我想说这个问题的典型选择是共轭梯度求解器加上一个代数多重网格预处理器。对于 PETSc,hypre/boomeramg 或 ML 将是明显的预处理器选择。

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

如果您的材料不是太不可压缩(泊松比<0.4) 通过使用单独的位移分量预处理器这个想法很简单,就是有一个包含 3 个块的块对角矩阵,每个块代表沿相同物理维度的耦合(X,是的,z)IE:ķXX,ķ是的是的,ķzz.

在这种情况下,您可以使用不太先进的 AMG 方法来计算每个块逆的近似值并获得一个非常好的预条件子。

Walter Landry 使用自适应多重网格开发了一种用于三维弹性静力变形的代码。您可以在以下位置找到代码

https://bitbucket.org/wlandry/gamra

您可以将热强迫效应与各向同性本征应变和等效体力结合起来。一旦这些都到位,求解器就可以正常工作了。