有限元方法三大分支的深度对比 —— 结构有限元 · 固体力学有限元 · 多物理场有限元 =================================================================================== .. 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(三次) 仅结构有限元 欧拉梁、克希霍夫板
阶谱型(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 梁中的转角是一回事。错。

后果: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
核心洞察:映射方式的不同本质上是"谁控制精度"的设计哲学不同

--- .. 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 / 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不支持内置支持
.. 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

🎯 核心结论

  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日*