FEM 中的所有这些功能是什么?形状函数 vs 基函数 vs 试验函数 vs 测试函数 vs 插值函数

计算科学 有限元
2021-12-01 10:07:49

我是有限元法的新手。我对 FDM 有一些经验,这非常简单。由于我对许多概念感到困惑,因此我将尝试通过写下我所理解的内容以及混淆的内容来分解它们。对不起,如果问题太长。

首先,所有的有限元教科书都以它是一种用于求解偏微分方程等的方法开始,然后直接继续使用线性弹簧作为元素并推导刚度矩阵,而没有提及任何关于所述偏微分方程的内容。这真的很令人困惑。

  1. 如果我理解正确的话,给定问题的解决方案要么是在一个元素内,要么是在整个计算域中的解决方案(实际解决方案)。Shape 函数在元素中起作用。它近似于该元素内解决方案的“形状”。它在整个元素的节点点处插入解值,它是定义元素的内容。

    • 形状函数和插值函数是一回事吗?

    • 每个节点点是否有一个形状函数?

    • 特定节点点的形状函数值是统一的,而其他节点点的形状函数值是否为零?(我问是因为形状函数和基函数存在混淆,一些解释说明基函数在节点点处具有统一值。参考:https ://www.comsol.com/multiphysics/finite-element-method )

  2. 当我们将整个计算域中的解决方案描述为基函数的线性组合时,基函数就会发挥作用。这说明了全局级别(整个计算域)的解决方案。它是如何从全局层面降到元素层面的?即基本功能和形状功能如何相关?(因为一旦开始解释基函数,就没有提到形函数,这让我怀疑加权残差法中在全局级别使用的基函数与有限元法中单元级别的形函数相同。 )

    • 基函数和试验函数是一回事吗?

    • 试用功能和测试功能是一回事吗?

    • 基函数和形函数有什么区别?

  3. 只是为了弄清 FDM 和 FEM:在 FDM 中,我们用有限差分方程代替导数,即,我们逼近给定的微分方程本身,但在 FEM 中,我们试图逼近微分方程的解。我的理解正确吗?

1个回答

当我第一次学习 FEM 时,这也让我很困惑。它们通常可以互换使用,但不一定完全相同。

试验功能与测试功能

我认为它好像有两个空间我们正在做插值。首先是“输入空间”,即解 u 所在的空间。其次是“输出空间”,即使用 PDE 将解映射到的空间,可以抽象形式写为Au=f, 在哪里A是微分算子。

您可能会问为什么做出这种区分很重要。事实证明,试用和测试功能有两个不同的目的。在 FEM 中,我们使用输入空间中函数的线性组合来构造近似解。这些被称为试验功能。这种线性组合的系数是我们要使用 FEM 解决的问题。

但是为了确定系数,我们需要在输出空间中施加正交条件。将 PDE 的“精确”解视为无限维空间中的单个点。想想近似解的映射(通过A) 作为输出空间中的有限维平面。最终,我们在有限维输出空间中寻求的解是最接近无限维空间中精确解的解。这就像在平面上找到最接近 3D 空间中的点的点。最接近的解决方案是沿垂直于平面的线的解决方案。因此,我们通过对平面强制正交性来确定系数,这与对定义平面的每个基函数强制正交性相同。

没有一种方法可以定义构成输出空间的一组基函数。在标准有限元方法(Bubnov-Galerkin 方法)中,您使用完全相同的函数来定义输入空间和输出空间。

但这不是唯一的方法。您可以使用不同的基函数来定义输入和输出空间(Petrov-Galerkin 方法)。在某些情况下,Petrov-Galerkin 方法提供了比标准方法更好的近似值。我经历过的唯一情况是一阶波动方程,但我认为它也适用于任何具有奇数阶导数的 PDE。

要解决您的其他问题:

基函数是用于定义函数空间的函数的统称。我听说它应用于试验(输入)或测试(输出)空间,但我也听说它应用于参考元素上使用的插值函数,所以混淆是可以理解的。

一般来说,基函数(即在输入空间中)可以在整个域内插值解。在实践中,这不是一个好的策略,因为它会产生一个密集的矩阵方程组。除了小区域之外,几乎所有地方都最好将基函数限制为零。因此,即使函数可以全局插值,最好将每个函数限制为局部插值。通常,为了方便起见,我们希望全局和参考元素函数在节点处都等于 1(但这不是唯一的方法)。

具体来说,我们可以选择在每个元素上进行线性、二次等插值的全局基函数。在每个元素中,我们可以选择具有相同基本形状的函数。这样做时,我们可以对参考元素执行集成并将结果映射到每个特定元素。这也使我们能够自动组装方程组。

我通常使用形状函数来指代用于在参考元素内插值的函数,而不是用于在问题域中进行全局插值的函数。

您对有限差分法是正确的,但不是有限元法。FEM 使用不同的正交概念将解投影到有限维函数空间上,该概念专门适用于函数空间。有关此主题的更多信息,请参阅我关于galerkin 方法背后动机的其他答案。

网格中的每个节点是否只有一个基函数?如果您使用的是节点基函数(例如使用拉格朗日插值),那么可以。但是,每个函数都是以分段方式定义的,因此每个元素中都有一个唯一的表达式。从参考元素的角度来看,似乎参考元素中的每个节点只有一个函数。

然而,节点基函数并不是唯一可能的选择。模态基函数也可用于 FEM(有关详细信息,请参见谱元方法)。