有限单元方法
约 3060 字大约 10 分钟
2026-06-23
有限单元方法(Finite Element Method, FEM)把复杂计算区域划分为有限个互不重叠、通过节点连接的单元,在每个单元内用低阶基函数近似未知场,再把所有单元方程组装成总体代数方程。与规则网格上的有限差分方法相比,有限元对复杂几何、非均匀网格和自然边界条件具有更强的适应性。
有限单元法的基本思想
有限元计算通常包括以下步骤:
- 把偏微分方程写成适合离散的弱形式;
- 将计算区域剖分为一维线段、二维三角形或四边形等单元;
- 在每个单元中选取节点和形函数;
- 用节点未知量的线性组合近似单元内部的场;
- 计算单元矩阵和单元载荷向量;
- 按局部节点与总体节点的对应关系进行组装;
- 施加边界条件并求解总体线性方程组;
- 根据节点解计算单元内部的场、梯度、应力等派生量。
有限元近似并不要求控制方程在每个点严格成立,而是要求残差对选定的权函数在积分意义下为零。
加权残差法
考虑边值问题
Lu=fin Ω,
以及边界条件。用有限项展开
uh(x)=j=1∑NUjNj(x)
近似精确解,其中 Nj 是基函数或形函数,Uj 是待求节点值。代入原方程产生残差
R=Luh−f.
加权残差法要求
∫ΩwiRdΩ=0,i=1,2,…,N.
若取 wi=Ni,便得到 Galerkin 有限元方法。
强形式与弱形式
一维 Poisson 问题
以一维方程为例:
−dxd(kdxdu)=f,x∈(0,L).
在边界 ΓD 上给定 u=uˉ,在边界 ΓN 上给定通量
kdxdun=qˉ.
强形式要求 u 具有足够高的光滑性,使二阶导数在区域内有定义。将方程乘以检验函数 w 并积分:
−∫0Lwdxd(kdxdu)dx=∫0Lwfdx.
分部积分得
∫0Lkdxdwdxdudx−[wkdxdu]0L=∫0Lwfdx.
结合 Neumann 边界条件,可以写成弱形式:寻找满足 Dirichlet 边界条件的 u,使对所有在 ΓD 上为零的检验函数 w,都有
∫Ωk∇w⋅∇udΩ=∫ΩwfdΩ+∫ΓNwqˉdΓ.
分部积分把 u 的最高导数由二阶降为一阶,因此弱形式对近似函数光滑性的要求更低,也使分片多项式基函数成为可能。
本质边界与自然边界
- Dirichlet 边界条件直接规定未知量 u,称为本质边界条件,需要在试探空间或总体方程中显式施加;
- Neumann 边界条件规定通量或牵引,经过分部积分自然出现在边界积分中,称为自然边界条件。
这一区别是有限元边界处理的核心。
单元、节点与形函数
将区域划分为 Ne 个单元:
Ω=e=1⋃NeΩe,Ωe∩Ωr=∅(e=r)
其中相邻单元只在公共边界或节点处相交。
在单元 e 内,近似解写为
uhe(x)=a=1∑neNae(x)Uae=NeUe.
形函数应满足节点插值性质
Nae(xb)=δab,
以及单位分解
a=1∑neNae(x)=1.
单位分解保证常数场能够被精确表示。相邻单元的公共节点共享同一个总体未知量,从而保证 uh 在单元之间连续。
一维线性单元
物理坐标中的形函数
设单元 e 的两个节点为 x1e,x2e,长度
he=x2e−x1e.
一维线性形函数为
N1(x)=hex2e−x,N2(x)=hex−x1e.
单元近似解为
uhe(x)=N1(x)U1e+N2(x)U2e.
其导数为常数:
dxduhe=[−1/he1/he][U1eU2e].
单元刚度矩阵
对于 Poisson 型方程,单元刚度矩阵为
Kabe=∫x1ex2ekdxdNadxdNbdx.
若单元内 k 为常数,则
Ke=hek[1−1−11].
单元载荷向量为
Fae=∫x1ex2eNafdx.
若 f 在单元内为常数,则
Fe=2fhe[11].
一维二次单元
三节点二次单元在自然坐标 ξ∈[−1,1] 上取节点 −1,0,1,形函数为
N1(ξ)=21ξ(ξ−1),
N2(ξ)=1−ξ2,
N3(ξ)=21ξ(ξ+1).
二次单元可以精确表示二次变化的场,通常比相同单元数的线性单元精度更高,但每个单元自由度更多,数值积分和组装也更复杂。
自然坐标与等参变换
在标准单元中定义形函数,再把标准单元映射到物理单元:
x(ξ)=a=1∑neNa(ξ)xae.
若几何映射和场变量插值使用同一组形函数,称为等参单元。Jacobian 为
J=dξdx.
积分和导数按
dx=Jdξ,
dxdNa=dξdNadxdξ=J−1dξdNa
进行转换。二维问题中 Jacobian 是矩阵,其行列式控制面积变换;若 detJ≤0,说明单元节点顺序错误或单元发生翻转。
单元组装
设单元 e 的局部节点编号对应总体节点
Ie=(I1e,I2e,…,Inee).
单元矩阵元素按映射累加到总体矩阵:
KIaeIbe+=Kabe,
FIae+=Fae.
组装后得到
KU=F.
每个单元只连接少数相邻节点,因此总体矩阵通常是大型稀疏矩阵。有限元程序不应按一般稠密矩阵存储和求解,而应使用稀疏矩阵格式和相应线性求解器。
边界条件的施加
Dirichlet 条件
若总体自由度 r 满足 Ur=Uˉr,常见处理方式包括:
- 消元:把已知值对应的项移到右端,并删除相应行列;
- 行列修正:把第 r 行和列清零、对角元置 1,右端置为 Uˉr,同时修正其他方程右端;
- 罚函数法:在对应对角元加入很大的罚参数。
直接消元或一致的行列修正能够保留矩阵的对称性;只修改一行而不处理相应列可能破坏对称结构。
Neumann 条件
通量或牵引通过边界积分进入载荷向量:
FaΓ=∫ΓNNaqˉdΓ.
若给定零通量,则该边界积分为零,不需要额外修改总体矩阵。
数值积分
单元矩阵通常需要在标准单元上积分。Gauss 求积写为
∫−11g(ξ)dξ≈q=1∑nqwqg(ξq).
nq 点 Gauss-Legendre 求积可以精确积分不超过 2nq−1 次的多项式。二维四边形单元常使用一维 Gauss 点的张量积;三角形单元使用相应的三角形积分公式。
积分点过少会产生欠积分,可能引起零能模式;积分点过多虽然准确,但增加计算成本。应根据形函数阶次、材料参数变化和积分项次数选择求积阶数。
二维三角形线性单元
三节点三角形单元内采用线性插值:
uh(x,y)=N1U1+N2U2+N3U3.
面积坐标形函数可以写为
Ni(x,y)=2Aai+bix+ciy,
其中 A 是三角形面积,系数由三个节点坐标确定。形函数梯度在单元内为常数:
∇Ni=2A1[bici].
对标量 Poisson 方程,若 k 在单元内为常数,则
Kije=∫Ωek∇Ni⋅∇NjdΩ=4Ak(bibj+cicj).
线性三角形能够灵活逼近复杂边界,但单元内梯度为常数。要提高精度,可以加密网格或使用高阶三角形单元。
二维四边形单元
四节点双线性单元在自然坐标 (ξ,η)∈[−1,1]2 上的形函数为
N1=41(1−ξ)(1−η),
N2=41(1+ξ)(1−η),
N3=41(1+ξ)(1+η),
N4=41(1−ξ)(1+η).
几何映射为
x(ξ,η)=a=1∑4Naxa,y(ξ,η)=a=1∑4Naya.
Jacobian 矩阵为
J=[∂x/∂ξ∂x/∂η∂y/∂ξ∂y/∂η].
形函数对物理坐标的梯度由
[∂Na/∂x∂Na/∂y]=J−1[∂Na/∂ξ∂Na/∂η]
求得,面积元为
dΩ=∣detJ∣dξdη.
四边形单元适合结构化或半结构化网格,但严重扭曲会降低插值精度和矩阵条件。
含时问题的有限元离散
以波动方程
ρ∂t2∂2u−∇⋅(c∇u)=s
为例,对空间作 Galerkin 离散得到
MU¨+KU=F(t),
其中质量矩阵和刚度矩阵分别为
Mij=∫ΩρNiNjdΩ,
Kij=∫Ωc∇Ni⋅∇NjdΩ.
若考虑阻尼,则得到
MU¨+CU˙+KU=F(t).
一致质量矩阵与集中质量矩阵
按形函数积分得到的 M 称为一致质量矩阵,一般不是对角矩阵。将每行质量适当集中到对角线上,可得到集中质量矩阵(lumped mass matrix)。对角质量矩阵使显式时间推进无需每步求解线性方程组,因此在大规模波动模拟中非常重要。
采用中心差分时,
U¨n≈Δt2Un+1−2Un+Un−1,
从而
Un+1=2Un−Un−1+Δt2M−1(Fn−KUn).
若 M 已集中为对角矩阵,M−1 只对应逐节点除法。
稳定时间步长受离散系统最高固有频率限制:
Δt≤ωmax2,
其中 ωmax2 是广义特征值问题
Kϕ=ω2Mϕ
的最大特征值。
一维算例:Poisson 方程
考虑
−u′′(x)=f(x),x∈(0,1),
u(0)=u(1)=0.
使用均匀线性单元,单元刚度矩阵为
Ke=h1[1−1−11].
组装后内部节点方程为
h1(−Ui−1+2Ui−Ui+1)=Fi.
它在形式上与有限差分离散非常相似,但右端 Fi 是源函数与形函数的积分,而不是简单的点值。两种方法在均匀一维线性问题中可能得到相同或相近的代数结构,但它们的出发点不同:有限差分直接近似微分算子,有限元则离散弱形式。
有限元与有限差分的比较
| 特征 | 有限差分法 | 有限单元法 |
|---|---|---|
| 基本出发点 | 用差商近似导数 | 对弱形式作分片基函数近似 |
| 网格 | 规则网格最方便 | 非结构网格和复杂几何更灵活 |
| 边界 | 复杂边界处理较困难 | 自然适应曲折边界和 Neumann 条件 |
| 系数矩阵 | 规则、模板固定 | 稀疏但需单元积分和组装 |
| 局部加密 | 实现相对困难 | 可通过单元尺寸和阶次灵活控制 |
| 编程工作 | 简单问题较直接 | 网格、映射、积分和组装更复杂 |
| 波动模拟 | 显式格式高效 | 质量集中后也可高效显式推进 |
有限元并非在所有情况下都优于有限差分。规则矩形区域中的大规模波传播问题,有限差分往往更简单高效;复杂地形、曲线界面或局部网格加密问题,有限元通常更有优势。