有限元方法三大分支的深度对比 —— 结构有限元 · 固体力学有限元 · 多物理场有限元¶
写在前面¶
本文针对一个困扰作者多年的问题:同样是有限元,为什么"结构有限元"(如 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 一张表看清全部差异
| 型函数类型 | 多项式次数 | 连续性 | 用在哪个分支 | 典型单元 |
|---|---|---|---|---|
| Lagrange 型 | p=1,2,...(节点基) | C⁰ | 三者通用 | 杆单元、六面体、四面体、板壳 |
| Hermite 型 | p=3(三次) | C¹ | 仅结构有限元 | 欧拉梁、克希霍夫板 |
| 阶谱型(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互联 |
| 映射方式 | 几何插值阶次 | 场插值阶次 | 用在哪个分支 | 典型例子 |
|---|---|---|---|---|
| 等参(Isoparametric) | = 场阶次 | = 几何阶次 | 固体力学、结构有限元 | 8节点六面体、4节点四边形壳 |
| 亚参(Subparametric) | 高于场阶次 | 低于几何阶次 | 多物理场p-FEM、部分壳单元 | 线性几何网格+高阶场插值 |
| 超参(Superparametric) | 低于场阶次 | 高于几何阶次 | 结构有限元(梁) | 直梁+三次 Hermite 场插值 |
| 分支 | 单元类型 | 每个节点的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) |
| 连续性 | 固体力学 | 结构有限元 | 多物理场 |
|---|---|---|---|
| H¹(C⁰ 连续) | ✅ 全部 | ✅ 板壳+部分梁 | ✅ 标量场 |
| C¹ 连续 | ❌ 不需要 | ✅ Euler梁/Kirchhoff板 | ⚠️ 特殊情况下 |
| H(curl) 切向连续 | ❌ 不存在 | ❌ 不存在 | ✅ Nédélec棱边元 |
| H(div) 法向连续 | ❌ 不存在 | ❌ 不存在 | ✅ Raviart-Thomas面元 |
| L² 无连续 | ⚠️ 不常用 | ⚠️ DG方法 | ✅ DG-FEM |
| 单元 | 型函数 | 推荐积分阶次 | 特殊处理 |
|---|---|---|---|
| 线性六面体(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 / CalculiX | MFEM / deal.II / Kratos |
|---|---|---|
| 单元库 | 封闭的、预定义的 | 开放的、用户可定义任意型函数空间 |
| 型函数 | Lagrange + Hermite | Lagrange + 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- |
| 矩阵组装 | 全矩阵 | 全矩阵 | 全矩阵 / 矩阵无关 |
| 开发门槛 | 低 | 中 | 高 |
| 适合的问题规模 | 中小规模 | 各种规模 | 大规模 + 高精度 + 多物理场 |
---
九、总结:给"写过代码的工程师"的结论
🎯 核心结论
- 型函数并不相同,但有交叉。 Lagrange 是三者唯一的交集。结构有限元独有 Hermite。多物理场覆盖整个 De Rham 复形(Lagrange + Nédélec + Raviart-Thomas + Hierarchical)。
- 单元构造不同。 固体力学几乎只用等参。结构有限元引入了超参(梁单元)。多物理场大量使用亚参(p-FEM)和 Piola 映射(H(div)/H(curl) 空间)。
- 结构有限元 = 固体力学 + 运动学假设 + 维度缩减 + 转动DOF + 锁死处理。 如果你已经会写固体力学 FEM 代码,结构有限元的核心新知识是:维度缩减理论(板壳/梁假设)、转动 DOF 的处理、和锁死的识别与修复。
- 多物理场不是"更高级的FEM",而是"不同抽象的框架"。 它不是为了替代 Abaqus 而存在的——它服务于高精度、大规模、多物理场耦合的场景。如果只做力学,Abaqus/CalculiX 可能更高效。
- 三个分支的底层数学是统一的(Galerkin 加权残值法),但上层的工程假设、型函数空间、和实现策略完全不同。 理解这些区别,比"学会另一个软件"有价值得多。
---
参考文献
Bathe, K.-J. Finite Element Procedures, 2nd ed., 2014.
Zienkiewicz, O.C., Taylor, R.L., Zhu, J.Z. The Finite Element Method: Its Basis and Fundamentals, 7th ed., 2013.
Hughes, T.J.R. The Finite Element Method, 1987/2000.
Monk, P. Finite Element Methods for Maxwell's Equations, 2003.
Brenner, S.C., Scott, L.R. The Mathematical Theory of Finite Element Methods, 3rd ed., 2008.
Bangerth, W., Rannacher, R. Adaptive Finite Element Methods for Differential Equations, 2003.
王勖成《有限单元法》, 2003.
MFEM 官方文档: https://mfem.org
Kratos Multiphysics 文档: https://kratosmultiphysics.github.io
CalculiX 官方文档: http://www.calculix.de
本文生成日期:2026年5月30日