很多人在学习有限元时,最先接触到的往往是网格划分。于是,有限元很容易给人一种印象:它似乎是一门“划网格”的技术。再进一步,人们会接触材料模型、接触算法、边界条件以及求解器设置,于是又会觉得有限元的核心在于数值求解。
但真正深入有限元理论之后,会逐渐发现一个事实:
有限元最核心的东西,其实不是网格,也不是求解器,而是形函数(Shape Function)。
因为有限元最本质的问题,并不是“如何计算”,而是:
如何用有限个离散自由度,去近似一个原本无限自由度的连续世界。
而完成这一切的核心工具,就是形函数。
从某种意义上说,有限元的发展历史,本质上也是形函数不断发展的历史。很多有限元中的经典问题,例如单元精度、剪切锁死、体积锁死、Hourglass模式,甚至不同单元之间的性能差异,其根源都与形函数密切相关。
因此,如果不理解形函数,其实很难真正理解有限元。
要理解形函数,首先必须理解有限元为什么需要它。
真实结构本质上是连续体。例如一根梁,在受到载荷之后,其内部每一个位置都会发生位移。理论上,这个位移场可以写成:
这里的 表示空间位置。
问题在于,连续体意味着:
而计算机无法直接求解真正“无限维”的问题。因此,有限元必须先把连续结构离散化。
于是,一个连续结构会被切分成许多小单元。每个单元只保留少量节点自由度。例如,一个最简单的一维杆单元,可能只有两个节点位移:
但新的问题马上出现了。
现在我们只知道两个节点位移,那么单元内部任意位置的位移怎么办?
现实中的位移场显然是连续变化的,它不可能只在节点上存在。因此,有限元必须回答一个关键问题:
如何利用少量节点信息,去重建整个单元内部的连续位移场?
而形函数,就是用来完成这件事情的。
例如,一维杆单元中,位移场通常会写成:
这里:
它们的作用,是决定节点位移如何向单元内部传播。
因此,从数学角度来说,形函数是一种插值函数;但从物理角度来说,它其实是在描述:
单元内部将如何变形。
这也是“形函数”这个名字的真正含义。
很多初学者会认为,有限元精度主要取决于网格密度。这种理解并不完全错误,但它忽略了更本质的问题。
真正决定有限元精度的,其实是:
形函数对真实物理场的逼近能力。
因为有限元从来都不是在求“真实解”,而是在求“近似解”。
例如,一个最简单的一次单元,通常采用线性形函数。这意味着有限元默认认为:
也就是说,单元内部位移只能线性变化。
在拉伸问题中,这种假设通常还算合理。但一旦进入弯曲问题,真实位移场往往带有明显曲率,而线性形函数却无法表达曲率。
于是,有限元只能通过不断细化网格,去逼近真实变形。
这也是为什么低阶单元通常需要更密网格的原因。
而高阶单元则不同。例如二次单元允许位移场写成:
此时,单元内部已经允许出现曲率,因此它能够更加自然地描述真实弯曲行为。
所以,高阶单元之所以精度更高,本质上并不是因为它“更高级”,而是因为:
它拥有更强的形函数表达能力。
很多工程师每天都在看应力云图,于是会下意识认为:
有限元主要是在求应力。
但事实上,有限元真正首先求解的是位移。
有限元核心方程:
求解得到的是节点位移:
随后,有限元再通过位移求导得到应变:
再利用材料本构关系得到应力:
问题的关键在于:
位移场本身是由形函数构造出来的:
因此:
这意味着:
应变来自形函数导数。
进一步地:
应力本质上也来自形函数导数。
因此,应力计算质量实际上高度依赖形函数质量。
很多有限元中的经典数值问题,例如:
其根源其实都和形函数表达能力有关。
从这个角度来看,有限元中的很多“高级问题”,本质上都是形函数问题。
很多人第一次使用有限元软件时,会发现不同单元之间差异非常明显。
例如:
表面上看,这似乎是单元类型不同导致的。
但更本质地说:
不同单元之间最大的区别,其实是形函数不同。
因为单元真正定义的,并不仅仅是几何形状,而是:
单元内部允许出现怎样的位移场。
例如,一次单元只能表达线性位移变化,而二次单元则允许出现曲率。
因此,当工程师在选择单元类型时,本质上其实是在选择:
使用什么样的形函数去逼近真实世界。
这也是为什么真正理解有限元的人,往往会非常关注:
因为这些东西最终都会直接影响计算质量。
现代有限元中,一个非常重要的思想叫做:等参单元(Isoparametric Element)
它的核心思想是:
几何形状与位移场,使用同一套形函数。
例如:
几何坐标:
位移场:
这样做的意义极其巨大。
因为现实中的工业结构通常非常复杂:
如果没有等参思想,有限元几乎无法处理现代工程中的复杂结构。
因此,现代工业有限元软件几乎全部建立在等参单元基础之上。
而等参单元的核心,依然是形函数。
很多人学习有限元很久之后,都会逐渐形成一种新的认识:
有限元真正核心的能力,并不是“计算能力”,而是:
对连续物理场的逼近能力。
而这种逼近能力,本质上由形函数决定。
因为有限元整个流程,其实都是围绕形函数展开的:
首先,利用形函数构造位移场:
然后:
因此,整个有限元体系实际上是建立在形函数基础上的。
很多人会认为:
但真正决定有限元能力边界的,其实一直都是形函数。
它决定了:
从某种意义上说:
有限元并不是“划网格的艺术”,而是“构造形函数的艺术”。
形函数在很多教材中往往只是一个普通概念,但它的重要性其实远远超出大多数人的想象。
因为有限元最本质的事情,并不是“求解”,而是:
用有限个离散自由度,去逼近一个无限维连续世界。
而实现这一切的核心工具,就是形函数。
它不仅决定了:
更决定了:
因此,当一个人真正理解形函数之后,他对有限元的理解往往会发生一次根本性的变化。
他会逐渐意识到:
真正定义有限元本质的,其实一直都是形函数。