与四面体网格相比,六面体 FEM 网格如何提高每个自由度的近似质量?
计算科学
pde
有限元
交易.ii
2021-12-20 00:35:50
2个回答
写完这篇文章,让我也回答你的问题:-)
这个问题本质上归结为以下几点:给定一个函数及其插值到具有相同数量未知数的三角形或四边形网格上,那么两者中哪一个更准确?换句话说,是
或者是周围的其他方式。我们知道,阶(在中)的多项式时 )。问题只是两者中哪一个具有较小的插值常数。在实践中,答案是上面的不等式通常是错误的,以下是经验上正确的:
换句话说,四边形上的额外多项式允许 10 倍更好的近似值。(我相信您可以找到反例;这只是对 PDE 的“典型”解决方案的经验观察。)
我完全同意 Wolfgang 的回答,但我想补充一些我的经验。我最近不得不在基于三和四的 FEM 之间进行选择,在谷歌搜索之后,我决定从头开始编写代码以进行公平比较(我以前有编写 FEM 内核的经验。我使用 C++ 和 Eigen 库来编写矩阵和向量。我只考虑了笛卡尔网格)。
Wolfgang 的答案似乎也适用于我的案例(简单的平流扩散问题),所以我可以确认这一点。但是,“相同的工作量”并不完全正确。为了进行真正的错误比较时间,我们还需要考虑其他差异。
- 正交点的数量可能不同。在我的情况下,三积分有 1 分,而四积分有 4 分。这使得基于 tri 的 FEM 的装配过程中的正交节点减少了两倍。但是,这取决于手头的问题。
- 对于这两种方法,结果矩阵中非零条目的数量是不同的。对于具有三角形的类笛卡尔网格,内部自由度通常与其他 6 个自由度耦合,而对于四边形,它与其他 8 个自由度耦合。这使得组件更加昂贵,并且还可能影响线性求解器,具体取决于使用哪一个。
- 对于迭代求解器,基于四边形的 FEM 的线性系统(令人惊讶的是?)比基于三边的(给定容差的迭代次数更少)更容易。我使用了基于 ILUT 预处理的基于 Krylov 的求解器(不记得到底是哪一个)。我不知道这是一般问题还是特定问题,但这就是我所看到的。
最后,我仍然发现基于四边形的 FEM 比较快,但是这个因子肯定小于 10,如果我没记错的话,大约是 3(这个数字当然取决于具体的实现和问题)。
基于四边形的 FEM 的另一点是,如果您想考虑高阶或“高”维 (>2) FEM,它更容易实现。
希望这是有用的!
其它你可能感兴趣的问题