自适应有限元法使用哪些新颖的数据结构?


9

许多自适应FEM库使用更高级的网格数据结构来处理添加/删除节点,边,三角形,四面体等。例如,p4est库使用八叉树数据结构进行自适应网格细化。您很少会在静态网格物体上找到用于计算的八叉树。

自适应有限元法在线性代数方面有什么变化?

我能想到的最直截了当的方法是,每当细化或粗化网格时,就完全重建所有系统矩阵。如果网格自适应操作很少发生,那么最终将在其余计算中分摊这样做的费用。通过这种方法,可以轻松利用现有的稀疏线性代数软件(PETSc,Trilinos等)。

这个钝器方法是最常用的方法,还是在精炼过程中可以重用或修改旧矩阵的库?毕竟,在网格自适应过程中,大多数网格和相应的矩阵都是不变的。

Answers:


6

是的,最常见的方法是重建。一旦建立,就地可修改的数据结构往往效率较低,与重新组装相比,重新分配实际上是非常便宜的(例如,由于非线性),因此这确实是一个很好的解决方案。除了具有非常简单的解决方法的相对罕有的利基之外,尝试在求解器中使用动态数据结构只会使您的应用程序变慢。然而,这是那些忘记衡量或建模绩效的人的普遍看法。


3

就像Je​​d所说的那样,线性代数成分(例如矩阵和向量)的重用并不常见。也没有必要:相对于解决线性系统的成本,设置这些组件的成本相当便宜。

如果您寻找从静态网格物体到自适应精细网格物体时会发生变化的事物,那么最大的障碍就是处理悬挂节点。在deal.II中,这由ConstraintMatrix类处理,该类需要几千行代码。您可以在本人和Oliver Kayser-Herold的论文中找到有关该类功能的一些描述(链接到我的出版物页面)。从固定网格变为自适应网格时,没有其他组件(当然,除了处理网格)不需要太多的调整。

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.