有限元方法三大分支的深度对比 —— 结构有限元 · 固体力学有限元 · 多物理场有限元
===================================================================================
.. raw:: html
.. contents:: 目录
:depth: 3
:local:
写在前面
--------
本文针对一个困扰作者多年的问题:同样是有限元,为什么"结构有限元"(如 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 的官方文档。
---
.. raw:: html
一、三个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 流、甚至耦合问题。
---
.. raw:: html
二、型函数(Shape Functions)的深度对比
**这是全文最核心的问题。答案是:并不相同,但有交叉。**
.. raw:: html
2.1 一张表看清全部差异
.. raw:: html
| 型函数类型 |
多项式次数 |
连续性 |
用在哪个分支 |
典型单元 |
| 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互联 |
.. raw:: html
2.2 Lagrange 型函数——唯一三者共享的型函数
Lagrange 型函数是 **三者唯一共享** 的型函数族。但即使都是用 Lagrange 型函数,在不同分支中的角色也不同:
- **固体力学**:完全的三维 Lagrange 插值。每个节点一个基函数,插值位移场。
- **结构有限元(板壳)**:面内用 Lagrange 双线性/二次插值,但法向的**转动自由度**不是通过导数型函数实现的(不像 Hermite),而是通过引入额外的转动 DOF,在单元刚度矩阵中与平动耦合。
- **多物理场有限元**:Lagrange 仅用于 H¹ 空间(标量场和矢量场)。对于电磁场和流体,需要 Nédélec 和 RT 空间——这些在结构有限元和固体力学中根本不存在。
.. raw:: html
关键理解:
Lagrange 型函数只是"搭积木"中最基础的那一块。三个分支都用了这一块,但在其之上架构了完全不同的上层结构。
.. raw:: html
2.3 Hermite 型函数——结构有限元的独门武器
梁单元是理解结构有限元独特性的最佳窗口。
对于 Euler-Bernoulli 梁,控制方程是四阶微分方程:
.. raw:: html
EI · d⁴v/dx⁴ = q(x)
这要求挠度场 **v(x)** 在单元交界处同时保持 **v** 和 **dv/dx** 的连续——即 **C¹ 连续**。Lagrange 型函数只能保证 C⁰ 连续,无法做到。
解决方案是 **Hermite 插值**:在每个节点上同时定义 **v**(挠度)和 **θ = dv/dx**(转角)两个自由度。三次 Hermite 型函数可以保证 C¹ 连续性。具体形式(归一化到 [0,1]):
.. raw:: html
H₁(ξ) = 1 − 3ξ² + 2ξ³ (对应节点1的挠度)
H₂(ξ) = ξ(1 − ξ)² (对应节点1的转角)
H₃(ξ) = 3ξ² − 2ξ³ (对应节点2的挠度)
H₄(ξ) = ξ²(ξ − 1) (对应节点2的转角)
**要点**:这里转角自由度是型函数自然定义的——型函数构造本身决定了"每个节点有两个自由度(v 和 θ)"。这与 Mindlin 板壳完全不同。
.. raw:: html
⚠️ 一个常见的误解
有人以为 Mindlin 板壳中的转动自由度和 Euler 梁中的转角是一回事。错。
- Euler 梁(Hermite):转角 θ = dv/dx,是挠度的导数。C¹ 连续自然实现。
- Mindlin 板壳:转角是独立的自由度 β(截面法线转角),与挠度无关。使用 C⁰ Lagrange 型函数即可。转角和平动通过剪切刚度耦合。
后果:Mindlin 板壳在薄板极限下出现剪切锁死,需要减缩积分或假定自然应变法(ANS)。Euler 梁没有这个问题(但只适用于细长梁)。
.. raw:: html
2.4 Hierarchical 型函数——多物理场独有的p-自适应能力
结构有限元和固体力学有限元通常使用**固定阶次**的型函数(线性或二次)。如果需要提高精度,靠的是**h-加密**(细化网格)。
多物理场有限元(MFEM、deal.II)支持 **p-自适应**——在不改变网格拓扑的前提下,提高单元内的多项式阶次。这需要**Hierarchical 型函数**:
- Lagendre 多项式作为基函数
- 低阶基是高阶基的"子集"——提高阶次时只需添加新的基函数,无需修改已有的
- 典型阶次可达 p=15 甚至更高
.. raw:: html
p-自适应的工程意义
对于光滑解(如弹性力学中应力集中区域以外),p-自适应的收敛速度是指数级的,远快于 h-加密的代數收敛。这也是为什么多物理场框架在处理高精度问题时更有优势。
但在处理强不连续(如裂纹扩展)时,p-自适应效果有限——此时需要 XFEM/GFEM 或重划分。
---
.. raw:: html
三、单元构造的深度对比(等参 · 亚参 · 超参)
.. raw:: html
3.1 三种映射方式
.. raw:: html
| 映射方式 |
几何插值阶次 |
场插值阶次 |
用在哪个分支 |
典型例子 |
| 等参(Isoparametric) |
= 场阶次 |
= 几何阶次 |
固体力学、结构有限元 |
8节点六面体、4节点四边形壳 |
| 亚参(Subparametric) |
高于场阶次 |
低于几何阶次 |
多物理场p-FEM、部分壳单元 |
线性几何网格+高阶场插值 |
| 超参(Superparametric) |
低于场阶次 |
高于几何阶次 |
结构有限元(梁) |
直梁+三次 Hermite 场插值 |
.. raw:: html
3.2 为什么结构有限元的梁单元是超参的?
这是很多人忽略但极其关键的一点。
一个典型的 2D Euler 梁单元:
- **几何**:两个节点定义一条直线段(线性 Lagrange 插值) → 几何阶次 p=1
- **场**:三次 Hermite 插值(含挠度和转角) → 场阶次 p=3
因此:**几何阶次(1) < 场阶次(3)** → 超参单元。
这带来的后果是:单元几何不能弯曲(只能由多个直梁分段近似曲线)。如果需要精确的曲线梁,必须引入第三个几何节点(二次几何)+ 三次 Hermite 场,但这已经不属于标准 2 节点梁单元了。
.. raw:: html
3.3 为什么多物理场 p-FEM 是亚参的?
多物理场框架的典型做法:
- **几何**:用一个较粗的网格描述几何,每个单元使用二次甚至三次 Lagrange 映射处理边界弯曲
- **场**:单元内部使用 p=5~15 的高阶 Hierarchical 型函数
因此:**几何阶次(2~3) > 场阶次(用 p 表示,但几何的高阶已足够精确边界)**
这避免了"每个几何节点都携带高自由度场"的问题——几何节点的 DOF 数量是固定的(通常 3 个平动),而场自由度在单元内部独立管理。
.. raw:: html
核心洞察:映射方式的不同本质上是"谁控制精度"的设计哲学不同
- 等参(固体力学):网格和精度绑定——加密网格同时提升几何和场精度。简单但效率有限。
- 超参(结构梁):因为物理需要高次场(C¹),但几何不需要。两个节点定义直线就够了。
- 亚参(p-FEM):几何用一个适中的网格描述,精度由场阶次控制。最优解耦策略。
---
.. raw:: html
四、自由度与连续性要求
.. raw:: html
4.1 每个节点的 DOF 数量
.. raw:: html
| 分支 |
单元类型 |
每个节点的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) |
.. raw:: html
4.2 连续性要求的层级
连续性要求是区分这三个分支最重要的数学维度。
.. raw:: html
De Rham 复形(De Rham Complex)
H¹ —∇→ H(curl) —∇×→ H(div) —∇·→ L²
Lagrange Nédélec Raviart-Thomas Discontinuous
(C⁰ 连续) (切向连续) (法向连续) (无连续要求)
数值方法只有填满这个复形才能保证无杂散模式的电磁场/流体求解。
结构有限元和固体力学有限元只覆盖了最左边的 H¹ 空间。多物理场有限元的本质特征就是覆盖了整个 De Rham 复形。
.. raw:: html
| 连续性 |
固体力学 |
结构有限元 |
多物理场 |
| H¹(C⁰ 连续) |
✅ 全部 |
✅ 板壳+部分梁 |
✅ 标量场 |
| C¹ 连续 |
❌ 不需要 |
✅ Euler梁/Kirchhoff板 |
⚠️ 特殊情况下 |
| H(curl) 切向连续 |
❌ 不存在 |
❌ 不存在 |
✅ Nédélec棱边元 |
| H(div) 法向连续 |
❌ 不存在 |
❌ 不存在 |
✅ Raviart-Thomas面元 |
| L² 无连续 |
⚠️ 不常用 |
⚠️ DG方法 |
✅ DG-FEM |
.. raw:: html
核心结论:
固体力学有限元和结构有限元本质上只处理 H¹(C⁰)空间的问题。结构有限元中出现的 C¹ 连续(Euler 梁、Kirchhoff 板)是特殊情况的处理。
多物理场有限元的独特之处在于它覆盖了整个 De Rham 复形——这不仅是"量"的增加,更是"质"的不同。如果你不需要 Maxwell 方程、Darcy 流、或混合格式,那么大可不必上多物理场框架。
---
.. raw:: html
五、积分策略与数值问题
.. raw:: html
5.1 高斯积分阶次的选择
.. raw:: html
| 单元 |
型函数 |
推荐积分阶次 |
特殊处理 |
| 线性六面体(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点/方向 |
需调校积分规则避免角点奇点 |
.. raw:: html
5.2 锁死问题——结构有限元独有的烦恼
如果只写过固体力学有限元代码,你可能对"锁死"只有一个抽象的认识。但在结构有限元中,锁死是每天都要面对的实际问题。
**剪切锁死(Shear Locking)**:
- Mindlin 板壳在厚度趋近于零时,剪切刚度被高估
- 原因是剪切应变采用与弯曲应变相同的积分阶次
- 解决:减缩积分(reduced integration)、假定自然应变法(ANS)、增强假定应变法(EAS)
**薄膜锁死(Membrane Locking)**:
- 曲壳单元在纯弯曲时,薄膜应变被高估
- 表现:壳的弯曲刚度偏大
- 解决:同样需要特殊处理
**体积锁死(Volumetric Locking)**:
- 固体力学和结构有限元都会遇到
- 当材料接近不可压缩(ν → 0.5)时,体积应变被锁定
- 解决:B-bar 方法、u-p 混合格式、减缩积分
.. raw:: html
作者的开发经验:
如果你已经开发了固体力学有限元代码,再开发结构有限元(板壳单元)时,最大的变化不是型函数——而是需要处理各种锁死问题。80%的调试时间花在了"为什么这个单元在薄板极限下刚度偏大"上。
---
.. raw:: html
六、结构有限元 vs 固体力学有限元:到底差在哪?
这是用户最直接的问题。答案是:
.. raw:: html
从连续介质力学的角度看,二者本质上是一样的——都是求解平衡方程 + 本构关系 + 几何方程。
区别在于"假设"的介入位置不同:
.. raw:: html
6.1 固体力学有限元:无假设
直接从三维连续介质力学出发:
- 平衡方程:σ_{ij,j} + f_i = 0
- 几何方程:ε_{ij} = (u_{i,j} + u_{j,i})/2
- 本构:σ = D:ε
- 在三维空间离散,每个节点 3 个平动 DOF
**优点**:精确,无额外假设。适用于任何几何和加载条件。
**代价**:计算量大。对于薄壁结构,需要非常细的网格才能捕捉弯曲行为。
.. raw:: html
6.2 结构有限元:引入运动学假设
在从"三维问题"降为"一维/二维问题"时,引入了**运动学假设**:
- **Euler-Bernoulli 梁假设**:平截面假设 + 截面法线保持法线(忽略剪切变形)
- **Timoshenko 梁假设**:平截面假设 + 截面法线转为直线(考虑剪切变形)
- **Kirchhoff 板假设**:中面法线保持法线(忽略剪切 → 四阶方程 → C¹ 要求)
- **Mindlin 板假设**:中面法线转为直线(考虑剪切 → C⁰ 足够)
这些假设的后果:
.. raw:: html
| 假设 | 带来的好处 | 引入的问题 |
| 维度缩减(3D→1D/2D) | DOF减少1~2个数量级 | 丢失了厚度方向的三维应力细节 |
| 平截面假设 | 弯曲问题闭式解 | 不能处理截面翘曲 |
| 忽略剪切(Kirchhoff) | DOF更少 | 不适用于厚梁/板 |
| 保留剪切(Mindlin) | 适用于中厚板 | 剪切锁死 |
.. raw:: html
一句话总结:
结构有限元 = 固体力学有限元 + 运动学假设 + 维度缩减 + 转动自由度 + 锁死处理。
从型函数的角度看,结构有限元比固体力学多了一类(Hermite),但少了许多(不需要处理 H(curl) 和 H(div) 空间)。
从单元构造的角度看,结构有限元引入了超参映射(梁),而固体力学几乎只用等参。
---
.. raw:: html
七、多物理场有限元的独特之处
.. raw:: html
7.1 不只是"多个物理场"
多物理场有限元框架(MFEM、deal.II、Kratos)和结构有限元软件(Abaqus)的区别**不是"一个是多物理场、一个只做力学"这么简单**。
本质区别在于**框架设计的抽象层级**:
.. raw:: html
| 维度 | 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 | 不支持 | 内置支持 |
.. raw:: html
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 填充率更高,不组装的收益更大
.. raw:: html
实践建议
如果你只做线弹性力学问题(DOF < 10⁶),传统全矩阵组装+直接稀疏求解器 的效率完全够用。不需要上矩阵无关。
但如果你做大规模(DOF > 10⁷)或高阶(p ≥ 3)问题,矩阵无关方法可以节省一个数量级的内存和计算时间。
---
.. raw:: html
八、一张表看懂全部区别
.. raw:: html
| 对比维度 |
固体力学有限元 |
结构有限元 |
多物理场有限元 |
| 代表软件 |
自研代码 |
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- |
| 矩阵组装 |
全矩阵 |
全矩阵 |
全矩阵 / 矩阵无关 |
| 开发门槛 |
低 |
中 |
高 |
| 适合的问题规模 |
中小规模 |
各种规模 |
大规模 + 高精度 + 多物理场 |
---
.. raw:: html
九、总结:给"写过代码的工程师"的结论
.. raw:: html
🎯 核心结论
- 型函数并不相同,但有交叉。 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 加权残值法),但上层的工程假设、型函数空间、和实现策略完全不同。 理解这些区别,比"学会另一个软件"有价值得多。
---
**参考文献**
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日*