有限元方法三大分支的深度对比 —— 结构有限元 · 固体力学有限元 · 多物理场有限元

写在前面

本文针对一个困扰作者多年的问题:同样是有限元,为什么"结构有限元"(如 Abaqus、CalculiX)、"固体力学有限元"(连续介质有限元)、和"多物理场有限元"(如 MFEM、Kratos、deal.II)感觉像是三套不同的东西?它们的型函数(shape functions)是否相同?单元构造是否相同?如果不同,本质区别在哪里?

作者已有固体力学有限元、结构有限元、物质点法(MPM)、有限体积法(FVM)的开发经验。本文试图站在一个"写过代码"的工程师视角,用尽可能精确的语言回答上述问题。

本文参考了 Bathe (2014)、Zienkiewicz (2013)、Hughes (1987/2000)、Monk (2003)、Brenner & Scott (2008) 等经典著作,以及 MFEM、Kratos、CalculiX 的官方文档。

---

一、三个FEM分支的快速定义

在深入对比之前,先用一句话定义这三个东西:

① 结构有限元(Structural FEM)

以 Abaqus、CalculiX、ANSYS Mechanical 为代表。核心特征是**维度缩减**:用梁(1D)、板壳(2D)模型近似三维连续体。引入了**转动自由度**(rotational DOFs)。单元类型包括:杆(truss)、梁(beam)、板(plate)、壳(shell)、以及各种连接/接触单元。理论基于 Bernoulli-Euler 梁、Kirchhoff/Mindlin 板壳理论。

② 固体力学有限元(Solid Continuum FEM)

处理完整的三维连续体。单元类型为:六面体(hexahedron)、四面体(tetrahedron)、五面体等。每个节点仅三个平动自由度。理论基于连续介质力学(continuum mechanics),无维度缩减。这是最"纯粹"的有限元——你写第一行 FEM 代码时通常就是这种。

③ 多物理场有限元(Multiphysics FEM)

以 MFEM、deal.II、Kratos、MOOSE 为代表。这是一个**框架**而非单一物理场工具。核心特征包括:高阶单元(p-自适应)、矩阵无关求解(matrix-free)、混合有限元(mixed FEM)、H(div) 和 H(curl) 空间。对比前两者,它的"通用性"是量级的差异——它要处理的不只是力学方程,还有 Maxwell 方程组、Navier-Stokes、Darcy 流、甚至耦合问题。

---

二、型函数(Shape Functions)的深度对比

这是全文最核心的问题。答案是:并不相同,但有交叉。

2.1 一张表看清全部差异

</table>

2.2 Lagrange 型函数——唯一三者共享的型函数

Lagrange 型函数是 三者唯一共享 的型函数族。但即使都是用 Lagrange 型函数,在不同分支中的角色也不同:

  • 固体力学:完全的三维 Lagrange 插值。每个节点一个基函数,插值位移场。

  • 结构有限元(板壳):面内用 Lagrange 双线性/二次插值,但法向的**转动自由度**不是通过导数型函数实现的(不像 Hermite),而是通过引入额外的转动 DOF,在单元刚度矩阵中与平动耦合。

  • 多物理场有限元:Lagrange 仅用于 H¹ 空间(标量场和矢量场)。对于电磁场和流体,需要 Nédélec 和 RT 空间——这些在结构有限元和固体力学中根本不存在。

关键理解:

Lagrange 型函数只是"搭积木"中最基础的那一块。三个分支都用了这一块,但在其之上架构了完全不同的上层结构。

2.3 Hermite 型函数——结构有限元的独门武器

梁单元是理解结构有限元独特性的最佳窗口。

对于 Euler-Bernoulli 梁,控制方程是四阶微分方程:

EI · d⁴v/dx⁴ = q(x)

这要求挠度场 v(x) 在单元交界处同时保持 vdv/dx 的连续——即 C¹ 连续。Lagrange 型函数只能保证 C⁰ 连续,无法做到。

解决方案是 Hermite 插值:在每个节点上同时定义 **v**(挠度)和 **θ = dv/dx**(转角)两个自由度。三次 Hermite 型函数可以保证 C¹ 连续性。具体形式(归一化到 [0,1]):

H₁(ξ) = 1 − 3ξ² + 2ξ³ (对应节点1的挠度)
H₂(ξ) = ξ(1 − ξ)² (对应节点1的转角)
H₃(ξ) = 3ξ² − 2ξ³ (对应节点2的挠度)
H₄(ξ) = ξ²(ξ − 1) (对应节点2的转角)

要点:这里转角自由度是型函数自然定义的——型函数构造本身决定了"每个节点有两个自由度(v 和 θ)"。这与 Mindlin 板壳完全不同。

⚠️ 一个常见的误解

有人以为 Mindlin 板壳中的转动自由度和 Euler 梁中的转角是一回事。错。

  • Euler 梁(Hermite):转角 θ = dv/dx,是挠度的导数。C¹ 连续自然实现。
  • Mindlin 板壳:转角是独立的自由度 β(截面法线转角),与挠度无关。使用 C⁰ Lagrange 型函数即可。转角和平动通过剪切刚度耦合。

后果:Mindlin 板壳在薄板极限下出现剪切锁死,需要减缩积分或假定自然应变法(ANS)。Euler 梁没有这个问题(但只适用于细长梁)。

2.4 Hierarchical 型函数——多物理场独有的p-自适应能力

结构有限元和固体力学有限元通常使用**固定阶次**的型函数(线性或二次)。如果需要提高精度,靠的是**h-加密**(细化网格)。

多物理场有限元(MFEM、deal.II)支持 p-自适应——在不改变网格拓扑的前提下,提高单元内的多项式阶次。这需要**Hierarchical 型函数**:

  • Lagendre 多项式作为基函数

  • 低阶基是高阶基的"子集"——提高阶次时只需添加新的基函数,无需修改已有的

  • 典型阶次可达 p=15 甚至更高

p-自适应的工程意义

对于光滑解(如弹性力学中应力集中区域以外),p-自适应的收敛速度是指数级的,远快于 h-加密的代數收敛。这也是为什么多物理场框架在处理高精度问题时更有优势。

但在处理强不连续(如裂纹扩展)时,p-自适应效果有限——此时需要 XFEM/GFEM 或重划分。

---

三、单元构造的深度对比(等参 · 亚参 · 超参)

3.1 三种映射方式

型函数类型 多项式次数 连续性 用在哪个分支 典型单元
Lagrange 型 p=1,2,...(节点基) C⁰ 三者通用 杆单元、六面体、四面体、板壳
Hermite 型 p=3(三次) 仅结构有限元 欧拉梁、克希霍夫板
阶谱型(Hierarchical) p=1~15+(模态基) C⁰(谨慎可得 C¹) 多物理场有限元 p-FEM 单元
Nédélec 型 p=0,1,...(棱边基) H(curl) 切向连续 仅多物理场 电磁场棱边元
Raviart-Thomas 型 p=0,1,...(面基) H(div) 法向连续 仅多物理场 Darcy 流,电位移
NURBS(等几何分析) p=2,3,... C¹ 或更高 IGA 专用 光滑壳、CAD互联

</table>

3.2 为什么结构有限元的梁单元是超参的?

这是很多人忽略但极其关键的一点。

一个典型的 2D Euler 梁单元: - 几何:两个节点定义一条直线段(线性 Lagrange 插值) → 几何阶次 p=1 - :三次 Hermite 插值(含挠度和转角) → 场阶次 p=3

因此:几何阶次(1) < 场阶次(3) → 超参单元。

这带来的后果是:单元几何不能弯曲(只能由多个直梁分段近似曲线)。如果需要精确的曲线梁,必须引入第三个几何节点(二次几何)+ 三次 Hermite 场,但这已经不属于标准 2 节点梁单元了。

3.3 为什么多物理场 p-FEM 是亚参的?

多物理场框架的典型做法: - 几何:用一个较粗的网格描述几何,每个单元使用二次甚至三次 Lagrange 映射处理边界弯曲 - :单元内部使用 p=5~15 的高阶 Hierarchical 型函数

因此:几何阶次(2~3) > 场阶次(用 p 表示,但几何的高阶已足够精确边界)

这避免了"每个几何节点都携带高自由度场"的问题——几何节点的 DOF 数量是固定的(通常 3 个平动),而场自由度在单元内部独立管理。

核心洞察:映射方式的不同本质上是"谁控制精度"的设计哲学不同

  • 等参(固体力学):网格和精度绑定——加密网格同时提升几何和场精度。简单但效率有限。
  • 超参(结构梁):因为物理需要高次场(C¹),但几何不需要。两个节点定义直线就够了。
  • 亚参(p-FEM):几何用一个适中的网格描述,精度由场阶次控制。最优解耦策略。

---

四、自由度与连续性要求

4.1 每个节点的 DOF 数量

映射方式 几何插值阶次 场插值阶次 用在哪个分支 典型例子
等参(Isoparametric) = 场阶次 = 几何阶次 固体力学、结构有限元 8节点六面体、4节点四边形壳
亚参(Subparametric) 高于场阶次 低于几何阶次 多物理场p-FEM、部分壳单元 线性几何网格+高阶场插值
超参(Superparametric) 低于场阶次 高于几何阶次 结构有限元(梁) 直梁+三次 Hermite 场插值

</table>

4.2 连续性要求的层级

连续性要求是区分这三个分支最重要的数学维度。

De Rham 复形(De Rham Complex)

H¹ —∇→ H(curl) —∇×→ H(div) —∇·→ L²

Lagrange Nédélec Raviart-Thomas Discontinuous
(C⁰ 连续) (切向连续) (法向连续) (无连续要求)

数值方法只有填满这个复形才能保证无杂散模式的电磁场/流体求解。

结构有限元和固体力学有限元只覆盖了最左边的 H¹ 空间。多物理场有限元的本质特征就是覆盖了整个 De Rham 复形。

分支 单元类型 每个节点的DOF DOF内容
固体力学 六面体 / 四面体 3 uₓ, uᵧ, u_z
平面应力/应变 2 uₓ, uᵧ
结构有限元 Euler 梁 6 uₓ, uᵧ, u_z, θₓ, θᵧ, θ_z
Mindlin 壳 5 或 6 3平移 + 2或3转动(drilling 可选)
多物理场 标量场(温度/压力) 1 T 或 p
矢量场 H(curl) 棱边DOF 非节点自由度,每个棱边1个
混合格式 多种 如位移+压力 (uₓ, uᵧ, u_z, p)

</table>

核心结论:

固体力学有限元和结构有限元本质上只处理 H¹(C⁰)空间的问题。结构有限元中出现的 C¹ 连续(Euler 梁、Kirchhoff 板)是特殊情况的处理。

多物理场有限元的独特之处在于它覆盖了整个 De Rham 复形——这不仅是"量"的增加,更是"质"的不同。如果你不需要 Maxwell 方程、Darcy 流、或混合格式,那么大可不必上多物理场框架。

---

五、积分策略与数值问题

5.1 高斯积分阶次的选择

连续性 固体力学 结构有限元 多物理场
H¹(C⁰ 连续) ✅ 全部 ✅ 板壳+部分梁 ✅ 标量场
C¹ 连续 ❌ 不需要 ✅ Euler梁/Kirchhoff板 ⚠️ 特殊情况下
H(curl) 切向连续 ❌ 不存在 ❌ 不存在 ✅ Nédélec棱边元
H(div) 法向连续 ❌ 不存在 ❌ 不存在 ✅ Raviart-Thomas面元
L² 无连续 ⚠️ 不常用 ⚠️ DG方法 ✅ DG-FEM

</table>

5.2 锁死问题——结构有限元独有的烦恼

如果只写过固体力学有限元代码,你可能对"锁死"只有一个抽象的认识。但在结构有限元中,锁死是每天都要面对的实际问题。

剪切锁死(Shear Locking): - Mindlin 板壳在厚度趋近于零时,剪切刚度被高估 - 原因是剪切应变采用与弯曲应变相同的积分阶次 - 解决:减缩积分(reduced integration)、假定自然应变法(ANS)、增强假定应变法(EAS)

薄膜锁死(Membrane Locking): - 曲壳单元在纯弯曲时,薄膜应变被高估 - 表现:壳的弯曲刚度偏大 - 解决:同样需要特殊处理

体积锁死(Volumetric Locking): - 固体力学和结构有限元都会遇到 - 当材料接近不可压缩(ν → 0.5)时,体积应变被锁定 - 解决:B-bar 方法、u-p 混合格式、减缩积分

作者的开发经验:

如果你已经开发了固体力学有限元代码,再开发结构有限元(板壳单元)时,最大的变化不是型函数——而是需要处理各种锁死问题。80%的调试时间花在了"为什么这个单元在薄板极限下刚度偏大"上。

---

六、结构有限元 vs 固体力学有限元:到底差在哪?

这是用户最直接的问题。答案是:

从连续介质力学的角度看,二者本质上是一样的——都是求解平衡方程 + 本构关系 + 几何方程。

区别在于"假设"的介入位置不同:

6.1 固体力学有限元:无假设

直接从三维连续介质力学出发: - 平衡方程:σ_{ij,j} + f_i = 0 - 几何方程:ε_{ij} = (u_{i,j} + u_{j,i})/2 - 本构:σ = D:ε - 在三维空间离散,每个节点 3 个平动 DOF

优点:精确,无额外假设。适用于任何几何和加载条件。 代价:计算量大。对于薄壁结构,需要非常细的网格才能捕捉弯曲行为。

6.2 结构有限元:引入运动学假设

在从"三维问题"降为"一维/二维问题"时,引入了**运动学假设**:

  • Euler-Bernoulli 梁假设:平截面假设 + 截面法线保持法线(忽略剪切变形)

  • Timoshenko 梁假设:平截面假设 + 截面法线转为直线(考虑剪切变形)

  • Kirchhoff 板假设:中面法线保持法线(忽略剪切 → 四阶方程 → C¹ 要求)

  • Mindlin 板假设:中面法线转为直线(考虑剪切 → C⁰ 足够)

这些假设的后果:

单元 型函数 推荐积分阶次 特殊处理
线性六面体(8节点) 三线性 Lagrange 2×2×2 近不可压需B-bar或u-p格式
二次六面体(20节点) Serendipity Lagrange 3×3×3 减缩积分2×2×2可导致沙漏
三次 Hermite 梁 Hermite (p=3) 2点Gauss(1D) 非线性问题可能需要3点
线性四边形壳(Mindlin) 双线性 Lagrange 膜/弯2×2, 剪切1点 减缩积分解剪切锁死
高阶六面体(p=5) Hierarchical 6×6×6 可用 Gauss-Lobatto 适配矩阵无关
Nédélec 棱边元(最低阶) 棱边基 1点/方向 需调校积分规则避免角点奇点
假设带来的好处引入的问题
维度缩减(3D→1D/2D)DOF减少1~2个数量级丢失了厚度方向的三维应力细节
平截面假设弯曲问题闭式解不能处理截面翘曲
忽略剪切(Kirchhoff)DOF更少不适用于厚梁/板
保留剪切(Mindlin)适用于中厚板剪切锁死
一句话总结:

结构有限元 = 固体力学有限元 + 运动学假设 + 维度缩减 + 转动自由度 + 锁死处理。

从型函数的角度看,结构有限元比固体力学多了一类(Hermite),但少了许多(不需要处理 H(curl) 和 H(div) 空间)。

从单元构造的角度看,结构有限元引入了超参映射(梁),而固体力学几乎只用等参。

---

七、多物理场有限元的独特之处

7.1 不只是"多个物理场"

多物理场有限元框架(MFEM、deal.II、Kratos)和结构有限元软件(Abaqus)的区别**不是"一个是多物理场、一个只做力学"这么简单**。

本质区别在于**框架设计的抽象层级**:

维度Abaqus / CalculiXMFEM / deal.II / Kratos
单元库封闭的、预定义的开放的、用户可定义任意型函数空间
型函数Lagrange + HermiteLagrange + Hierarchical + Nédélec + RT + ...
多项式阶次固定(1或2次)可变(1~15+次)
线性代数全矩阵组装矩阵无关(matrix-free),支持 GPU
网格纯 h-自适应h- + p- + hp-自适应
混合格式有限支持(u-p ONLY)一等公民
非连续Galerkin不支持内置支持

7.2 矩阵无关(Matrix-Free)方法的革命性

传统有限元(Abaqus、CalculiX 和你写的代码): 1. 遍历所有单元,组装全局刚度矩阵 K 2. 求解 K·u = f 3. K 的规模是 DOF × DOF,对于 100 万 DOF 的问题,仅存储 K 就需要 8GB(如果稀疏)

矩阵无关方法(MFEM、deal.II): 1. 不组装 K 2. 每次需要 K·v 时,逐单元计算并累加(通过 sum-factorization 技术) 3. 存储需求仅为 O(DOF) 而非 O(DOF²) 4. 特别适合高阶单元(p≥3),因为高阶单元的全矩阵 K 填充率更高,不组装的收益更大

实践建议

如果你只做线弹性力学问题(DOF < 10⁶),传统全矩阵组装+直接稀疏求解器 的效率完全够用。不需要上矩阵无关。

但如果你做大规模(DOF > 10⁷)或高阶(p ≥ 3)问题,矩阵无关方法可以节省一个数量级的内存和计算时间。

---

八、一张表看懂全部区别

对比维度 固体力学有限元 结构有限元 多物理场有限元
代表软件 自研代码 Abaqus / CalculiX / ANSYS MFEM / deal.II / Kratos / MOOSE
控制方程 三维连续介质力学 维度缩减后(板/壳/梁理论) 任意PDE(力学/电磁/流体/耦合)
型函数类型 Lagrange(C⁰) Lagrange(板壳)+ Hermite(梁) Lagrange + Hierarchical + Nédélec + RT
单元构造 等参 等参(板壳)+ 超参(梁) 等参/亚参 + Piola 映射
每个节点 DOF 3(纯平动) 3~6(平动+转动) 1~多种(视场而定)
连续性要求 C⁰(H¹) C⁰ + C¹(梁) H¹ + H(curl) + H(div) + L² 全部
锁死问题 体积锁死 剪切锁死 + 薄膜锁死 + 体积锁死 取决于具体格式
多项式阶次 1~2(固定) 1~2(固定) 1~15+(可变)
自适应 h-加密 h-加密 h- + p- + hp-
矩阵组装 全矩阵 全矩阵 全矩阵 / 矩阵无关
开发门槛
适合的问题规模 中小规模 各种规模 大规模 + 高精度 + 多物理场

---

九、总结:给"写过代码的工程师"的结论

🎯 核心结论

  1. 型函数并不相同,但有交叉。 Lagrange 是三者唯一的交集。结构有限元独有 Hermite。多物理场覆盖整个 De Rham 复形(Lagrange + Nédélec + Raviart-Thomas + Hierarchical)。

  2. 单元构造不同。 固体力学几乎只用等参。结构有限元引入了超参(梁单元)。多物理场大量使用亚参(p-FEM)和 Piola 映射(H(div)/H(curl) 空间)。

  3. 结构有限元 = 固体力学 + 运动学假设 + 维度缩减 + 转动DOF + 锁死处理。 如果你已经会写固体力学 FEM 代码,结构有限元的核心新知识是:维度缩减理论(板壳/梁假设)、转动 DOF 的处理、和锁死的识别与修复。

  4. 多物理场不是"更高级的FEM",而是"不同抽象的框架"。 它不是为了替代 Abaqus 而存在的——它服务于高精度、大规模、多物理场耦合的场景。如果只做力学,Abaqus/CalculiX 可能更高效。

  5. 三个分支的底层数学是统一的(Galerkin 加权残值法),但上层的工程假设、型函数空间、和实现策略完全不同。 理解这些区别,比"学会另一个软件"有价值得多。

---

参考文献

  1. Bathe, K.-J. Finite Element Procedures, 2nd ed., 2014.

  2. Zienkiewicz, O.C., Taylor, R.L., Zhu, J.Z. The Finite Element Method: Its Basis and Fundamentals, 7th ed., 2013.

  3. Hughes, T.J.R. The Finite Element Method, 1987/2000.

  4. Monk, P. Finite Element Methods for Maxwell's Equations, 2003.

  5. Brenner, S.C., Scott, L.R. The Mathematical Theory of Finite Element Methods, 3rd ed., 2008.

  6. Bangerth, W., Rannacher, R. Adaptive Finite Element Methods for Differential Equations, 2003.

  7. 王勖成《有限单元法》, 2003.

  8. MFEM 官方文档: https://mfem.org

  9. Kratos Multiphysics 文档: https://kratosmultiphysics.github.io

  10. CalculiX 官方文档: http://www.calculix.de

本文生成日期:2026年5月30日