形函数与有限元

很多人在学习有限元时,最先接触到的往往是网格划分。于是,有限元很容易给人一种印象:它似乎是一门“划网格”的技术。再进一步,人们会接触材料模型、接触算法、边界条件以及求解器设置,于是又会觉得有限元的核心在于数值求解。

但真正深入有限元理论之后,会逐渐发现一个事实:

有限元最核心的东西,其实不是网格,也不是求解器,而是形函数(Shape Function)。

因为有限元最本质的问题,并不是“如何计算”,而是:

如何用有限个离散自由度,去近似一个原本无限自由度的连续世界。

而完成这一切的核心工具,就是形函数。从某种意义上说,有限元的发展历史,本质上也是形函数不断发展的历史。很多有限元中的经典问题,例如单元精度、剪切锁死、体积锁死、Hourglass 模式,甚至不同单元之间的性能差异,其根源都与形函数密切相关。如果不理解形函数,其实很难真正理解有限元。

一、什么是形函数?

要理解形函数,首先必须理解有限元为什么需要它。真实结构本质上是连续体。例如一根梁,在受到载荷之后,其内部每一个位置都会发生位移。理论上,这个位移场可以写成:

u = f(x,y,z)

这里的 (x,y,z) 表示空间位置。问题在于,连续体意味着无限多个空间点和无限多个自由度,而计算机无法直接求解真正“无限维”的问题。因此,有限元必须先把连续结构离散化。

于是,一个连续结构会被切分成许多小单元。每个单元只保留少量节点自由度。例如,一个最简单的一维杆单元,可能只有两个节点位移:

左端位移:u_1
右端位移:u_2

但新的问题马上出现了。现在我们只知道两个节点位移,那么单元内部任意位置的位移怎么办?现实中的位移场显然是连续变化的,它不可能只在节点上存在。因此,有限元必须回答一个关键问题:

如何利用少量节点信息,去重建整个单元内部的连续位移场?

而形函数,就是用来完成这件事情的。例如,一维杆单元中,位移场通常会写成:

u(x) = \sum N_i(x) u_i

这里:
u_i 是节点位移
N_i 是形函数

它们的作用,是决定节点位移如何向单元内部传播。因此,从数学角度来说,形函数是一种插值函数;但从物理角度来说,它其实是在描述:

单元内部将如何变形。

这也是“形函数”这个名字的真正含义。

二、形函数为什么如此重要?

很多初学者会认为,有限元精度主要取决于网格密度。这种理解并不完全错误,但它忽略了更本质的问题。真正决定有限元精度的,其实是:

形函数对真实物理场的逼近能力。

因为有限元从来都不是在求“真实解”,而是在求“近似解”。例如,一个最简单的一次单元,通常采用线性形函数。这意味着有限元默认认为:

u(x) = ax + b

也就是说,单元内部位移只能线性变化。在拉伸问题中,这种假设通常还算合理。但一旦进入弯曲问题,真实位移场往往带有明显曲率,而线性形函数却无法表达曲率。

于是,有限元只能通过不断细化网格,去逼近真实变形。这也是为什么低阶单元通常需要更密网格的原因。而高阶单元则不同。例如二次单元允许位移场写成:

u(x) = ax^2 + bx + c

此时,单元内部已经允许出现曲率,因此它能够更加自然地描述真实弯曲行为。所以,高阶单元之所以精度更高,本质上并不是因为它“更高级”,而是因为:

它拥有更强的形函数表达能力

三、形函数如何影响应力计算?

很多工程师每天都在看应力云图,于是会下意识认为有限元主要是在求应力。但事实上,有限元真正首先求解的是位移。有限元核心方程:

[K]\{U\} = \{F\}

求解得到的是节点位移 \{U\} 。随后,有限元再通过位移求导得到应变:

\epsilon = \frac{du}{dx}

再利用材料本构关系得到应力:

\sigma = E \cdot \epsilon

问题的关键在于:位移场本身是由形函数构造出来的:

u = \sum N_i u_i

因此:

\epsilon = \sum \frac{dN_i}{dx} u_i

这意味着:

应变来自形函数导数

进一步地:

应力本质上也来自形函数导数

因此,应力计算质量实际上高度依赖形函数质量。很多有限元中的经典数值问题,例如剪切锁死、体积锁死、Hourglass 模式、单元畸变敏感,其根源其实都和形函数表达能力有关。从这个角度来看,有限元中的很多“高级问题”,本质上都是形函数问题。

四、为什么不同单元之间差异巨大?

很多人第一次使用有限元软件时,会发现不同单元之间差异非常明显。例如:

  • 一次四面体通常偏硬
  • 二次六面体精度更高
  • 某些单元容易锁死
  • 某些单元对网格畸变非常敏感

表面上看,这似乎是单元类型不同导致的。但更本质地说:

不同单元之间最大的区别,其实是形函数不同。

因为单元真正定义的,并不仅仅是几何形状,而是:

单元内部允许出现怎样的位移场

例如,一次单元只能表达线性位移变化,而二次单元则允许出现曲率。因此,当工程师在选择单元类型时,本质上其实是在选择:

使用什么样的形函数去逼近真实世界

这也是为什么真正理解有限元的人,往往会非常关注单元插值阶次、形函数连续性、单元自由度类型,因为这些东西最终都会直接影响计算质量。

五、现代有限元为什么离不开等参单元?

现代有限元中,一个非常重要的思想叫做:等参单元(Isoparametric Element)。它的核心思想是:

几何形状与位移场,使用同一套形函数。

例如:

几何坐标:

x = \sum N_i x_i

位移场:

u = \sum N_i u_i

这样做的意义极其巨大。因为现实中的工业结构通常非常复杂(曲面、畸形结构、不规则几何),如果没有等参思想,有限元几乎无法处理现代工程中的复杂结构。因此,现代工业有限元软件几乎全部建立在等参单元基础之上。而等参单元的核心,依然是形函数。

六、为什么说形函数是有限元的“灵魂”?

很多人学习有限元很久之后,都会逐渐形成一种新的认识:有限元真正核心的能力,并不是“计算能力”,而是:

对连续物理场的逼近能力

而这种逼近能力,本质上由形函数决定。因为有限元整个流程,其实都是围绕形函数展开的:

首先,利用形函数构造位移场:

u = \sum N_i u_i

然后:

  • 对位移求导得到应变
  • 对应变施加材料关系得到应力
  • 最后通过虚功原理形成刚度矩阵

因此,整个有限元体系实际上是建立在形函数基础上的。很多人会认为网格是核心、求解器是核心、软件功能是核心,但真正决定有限元能力边界的,其实一直都是形函数。它决定了单元如何变形、结构如何传递位移、应力如何分布、数值误差如何出现、收敛如何实现。

从某种意义上说:

有限元并不是“划网格的艺术”,而是“构造形函数的艺术”。

形函数在很多教材中往往只是一个普通概念,但它的重要性其实远远超出大多数人的想象。因为有限元最本质的事情,并不是“求解”,而是:

用有限个离散自由度,去逼近一个无限维连续世界

而实现这一切的核心工具,就是形函数。它不仅决定了位移场如何构造、应变如何产生、应力如何计算,更决定了单元性能、数值精度、收敛能力、工程可靠性。

因此,当一个人真正理解形函数之后,他对有限元的理解往往会发生一次根本性的变化。他会逐渐意识到:

网格只是载体,求解器只是工具,软件只是实现形式。真正定义有限元本质的,其实一直都是形函数

3 个赞