热膨胀问题的 Abaqus、ANSYS 和 FVM 求解器收敛到不同的值

计算科学 有限元 有限体积 收敛 固体力学
2021-12-08 08:16:14

如果满足稳定性约束,FEM 和 FVM 代码收敛到相同物理问题(相同的 BC、几何、属性等)的略微不同的解决方案是否合理?甚至,不同的 FEM 方法是否有可能收敛到不同的解决方案?

这应该是一个更普遍的问题,但它受到我几周前测试的一个具体示例的启发。

几周前,我尝试在 Abaqus、ANSYS 和 FVM 求解器中建模一个简单的热膨胀问题,所有这些都在线性弹性下运行。我很确定所有 3 个求解器中的条件都相同,但似乎 3 个求解器收敛到略有不同的结果,差异约为 10-20%(Abaqus 与 ANSYS 也存在差异,2 个 FEM 求解器)。

我自己编写了 FVM 求解器,并且验证了线性弹性方程得到了正确求解,并且我假设 ANSYS 和 Abaqus 等已建立的求解器也正确求解了它们的方程。这让我很困惑 3 个求解器如何各自收敛到不同的解决方案,我无法直观地想到这怎么可能,在数字上?

1个回答

很难给你建议,因为我们不知道你正在解决的问题的细节。作为一般性答案,我会说您应该在 FEM 程序 A 和 FEM 程序 B 之间获得相同的结果,但这可能不像听起来那么简单,因为您可能需要调整一些默认值才能获得它。

不过,我建议如下:

  1. 使用分析解决方案检查您是否正在重现结果。例如,您可以找到一个受非均匀加热且温度分布呈球对称的球体的位移。在这种情况下,(径向)位移场由下式给出

    ur=α1+ν3(1ν)[1r20rT(r)r2dr+2(12ν)1+νrR30RT(r)r2dr],

    在哪里T(R)=0已被假定。

  2. 使用制造解决方案的方法来检查所需的收敛性。您可以查看参考 1,他们在其中为 Abaqus 执行此操作。

参考

  1. Aycock、Kenneth I.、Nuno Rebelo 和 Brent A. Craven。“商业有限元求解器中弹性固体力学问题的制造解决方案代码验证方法。” arXiv 预印本 arXiv:1902.07608 (2019)。