形状函数、插值函数和自由度之间的关系是什么?

计算科学 有限元 计算物理学 插值
2021-12-03 22:43:55

我是 FEM 的新手。我想弄清楚这篇文章中关于形状函数的一些问题(请使用尽可能简单的语言)。

  1. 形状函数与任何元素的自由度之间有什么关系?形状函数是根据元素的自由度选择的吗?

  2. 为了定义形状函数,我们应该知道系统的所有参数吗?

  3. 形状函数与近似函数或插值函数不同吗?

  4. 形状函数是否定义了元素的形状?

1个回答

形状函数不能确定元素的形状。相反,形状函数(至少部分地)由元素的形状决定。

形状函数集最终由覆盖元素内以及元素边界上的所有点的给定多项式阶的插值所需的自由度确定。

例如,考虑一阶多项式空间(线性函数空间)。在 1d 中,一个线性函数空间由 2 个函数跨越(例如 1 和 x,但拉格朗日函数更有用)。因此有 2 个自由度,对应于分配给跨越该空间的两个函数的系数。

在一维空间中,所有“元素”都具有相同的形状:一条直线。这使得插值覆盖整个元素变得非常容易。如果我们选择与边界点的节点值相对应的自由度(即使用拉格朗日函数),那么这两个点之间的插值将覆盖整个元素。

但在 2d 中,情况发生了很大变化。一个线性空间现在由 3 个函数(即 1、x 和 y)跨越。因此,由 3 个函数跨越的空间需要 3 个自由度。在二维三角形上,我们需要选择这些自由度,以便在整个元素上进行插值,特别是在元素的所有边界上。如果我们将自由度选择为拐角之间中点处的节点值而不是拐角点,这将行不通。自由度之间的插值只会覆盖元素的中间,而不是角落。必须在元素的 3 个角点处选择自由度。这将在元素内建立线性插值,以及元素的边界。

但三角形并不是二维中唯一可能的元素形状。现在将三角形元素与四边形元素进行对比。从技术上讲,一个线性函数空间仍然由 3 个函数跨越。但是无论你选择元素的哪 3 个角,都不可能建立线性插值来覆盖剩下的角。为了克服这个问题,我们修改了函数空间以包含一个额外的基函数,同时仍然保留多项式阶数。对于四边形,我们使用所谓的“双线性插值”。它是一个由四个函数(例如 1、x、y 和 x*y)跨越的空间,它们的自由度可以在元素的拐角处选择,以便插值可以跨越元素内和沿边界边界的所有点元素。请注意,在任一空间维度(x 或 y)中,

我们当然可以选择更高阶的多项式空间来进行插值,这需要更多的函数,因此需要更多的自由度。自由度不一定都必须对应于边界上的点值。但是形状函数的数量取决于空间维度的大小,以及用于插值的多项式函数。这些多项式函数的选择方式应覆盖整个元素形状的插值顺序。

其他形状(例如五边形、六边形等)和 3 维(例如四面体、六面体等)的插值是可能的,但需要类似的考虑:需要选择多项式插值函数(和自由度)以保留多项式元素内和沿其边界的顺序插值。

那么究竟什么是形函数呢?它们是一组函数,它们一起完成整个元素形状(内部和边界点)的给定顺序的插值。

至于“近似”函数、“插值”函数和“形状”函数之间的区别,你的混淆是有道理的。我已经看到这些术语中的每一个都作为同义词使用。尽管数学保持不变,但不同的作者强调不同上下文的不同标签。我相信大多数(不一定全部)将“形状”函数称为参考元素的基函数,而不是全局坐标系上的基函数。