需要一本关于谱元法的书摘来澄清!

计算科学 有限元 pde 并行计算 谱法 密集矩阵
2021-12-15 02:34:29

我正在阅读 William Gropp 的“使用 MPI(第 3 版) ”,在第 4 章应用程序第 4.13 节中,它介绍了 MPI 应用程序 Nek5000/NekCEM,它基于光谱元素法 (SEM) 与高阶时间步长相结合来解决管理 IVM/BVM 问题。

有一个关于 SEM 的声明我不太了解(是的,它与 MPI 无关):

“SEM 的中心思想是永远不要形成局部元素矩阵,这通常具有(ñ+1)6每个元素的非零值,而是使用预处理迭代求解器,该求解器仅要求应用于函数的运算符的动作。”

我在 FEM 和 SEM 方面的背景有限,而且我知道由于多项式阶数较高,SEM 元素矩阵通常比 FEM 大得多,但我仍然无法理解作者试图用这个陈述传达的内容。

有人可以用更具体的描述来解释吗?任何帮助将不胜感激!

1个回答

在 SEM 中,局部矩阵对局部向量的作用通常有一个明确的公式。局部矩阵可以被认为是数值预先计算的算子,用于评估:插值、微分和积分。人们将它们以表格形式预先计算为矩阵,因为这是生成稀疏矩阵的唯一方法,这是直接求解器(如 LU、Cholesky、... 等)的格式。对于 SEM,尽管这些局部矩阵需要大量内存,而迭代求解器不需要稀疏矩阵输入,因此我们可以避免预先计算这些运算符。

避免预先计算这些的一种方法是通过基础正交多项式基础的三项递归来计算插值、积分和导数。在 SEM 中,大多数基础都有这样的递归关系,或者是基础的轻微修改版本。

在许多情况下,您还只需要通过在参考元素上预先计算这些运算符来存储“参考”矩阵,然后仅通过几何变换计算这些所需的操作。您可以为网格的每个元素存储几何变换因子,甚至在需要时重新计算该信息以节省更多内存。

但这仅执行本地操作。正确获取元素间细节仍然取决于您。您将需要为您的网格存储某种连接图,并使用该信息将所有局部矩阵向量产品拼凑成操作员的完整操作。

完整的算子评估可以作为黑盒函数输入 Krylov 求解器,这足以让它尝试求解您的结果系统。