本文译自作者的韩语原文。 阅读原文(한국어)
FDM vs FEM vs FVM:三种离散化技术的本质区别
离散的对象不同:差分算子、函数空间,或是界面通量。守恒不会自动跟着前两者走。
同一 PDE,三条路径#
把 PDE 放进计算机,先决定未知数坐在哪里。方程可以相同。点值、基函数系数、单元平均,三条路就分开了。
这里只留一条一维平流-扩散。
下拉菜单在 FDM、FEM、FVM 之间切换,同一张网格上的自由度就在节点、基系数和单元中心之间搬家。
같은 격자 위에 세 방법이 어떤 자유도(노드/셀/요소)를 가지는지 비교 — 보존성과 정확도 차이의 출발점.
FDM 把点排成一串,FVM 在每个单元中央放一个值。FEM 的系数在节点上,基函数穿过单元。
1. 有限差分法 (Finite Difference Method, FDM)#
核心思想
将微分直接近似为 差分 (difference)。
这是最直观的方法。通过对网格点 (node) 处的函数值进行泰勒级数展开来近似导数。
数学起点:泰勒展开
点 处的泰勒展开:
由此导出差分近似:
前向差分 (Forward):
中心差分 (Central):
二阶导数:
应用于平流-扩散方程#
使用中心差分:
这变成了关于网格点未知数 的联立常微分方程 (ODE) 系统。
优缺点
优点:
- 概念简单,实现容易
- 在结构化网格 (structured grid) 中非常高效
- 易于实现高阶精度 (紧致格式、类谱格式)
- 正交网格下矩阵结构清晰 (带状矩阵)
缺点:
- 难以应用于非结构化网格 (unstructured grid) —— 这是致命弱点
- 对于复杂几何形状的网格生成非常困难
- 不会自动满足守恒定律
代表性应用领域
- DNS/LES (基于正交网格的湍流模拟)
- 气象/海洋模型 (结构化网格)
- 地震波传播模拟
- 基于紧致格式的高精度计算
2. 有限要素法 (Finite Element Method, FEM)#
核心思想
将解近似为 基函数 (basis function) 的线性组合, 并最小化 加权残差 (weighted residual)。
FEM 不直接求解微分方程。相反,它将其转换为称为 弱形式 (weak formulation) 的积分形式。
数学起点:弱形式 (Weak Form)#
在原始 PDE (强形式,strong form) 上乘以测试函数 并积分:
对扩散项应用分部积分 (integration by parts):
这就是 弱形式。请注意核心变化:
- 原本需要二阶导数,分部积分后 仅需一阶导数
- 放宽了对解的连续性要求 ()
- 边界条件自然地包含在内 (Neumann BC = 右侧项)
伽辽金近似 (Galerkin Approximation)#
将解表示为基函数 的线性组合:
在伽辽金方法中,测试函数和基函数取自同一空间 ():
矩阵形式:
- : 质量矩阵 (mass matrix)
- : 刚度矩阵 (stiffness matrix)
- : 边界/源项向量
基函数的选择
最常用的是基于 拉格朗日多项式 (Lagrange polynomial) 的单元:
| 单元 | 阶数 | 节点数 (2D 三角形) | 特点 |
|---|---|---|---|
| P1 (Linear) | 1阶 | 3 | 最基础,成本低 |
| P2 (Quadratic) | 2阶 | 6 | 可表示曲面形状 |
| P3 (Cubic) | 3阶 | 10 | 高精度,成本增加 |
优缺点
优点:
- 天然适合非结构化网格 —— 使用三角形/四面体网格处理复杂形状
- 可以进行数学上严密的误差估计 (先验/后验误差估计)
- 与自适应网格加密 (adaptive mesh refinement) 结合良好
- 可以灵活选择 p-refinement (提高多项式阶数) 和 h-refinement (细化网格)
缺点:
- 不会直接满足守恒定律 (标准伽辽金法)
- 在平流主导问题中不稳定 (震荡) —— 需要 SUPG、GLS 等稳定化技术
- 需要求质量矩阵的逆 (或使用质量集中 mass lumping)
- 实现复杂度高于 FDM/FVM
代表性应用领域
- 固体力学 / 结构分析 (FEM 的原始领地)
- 电磁场分析
- 热传递
- 生物力学
- 岩土/地质力学
3. 有限体积法 (Finite Volume Method, FVM)#
核心思想
对 控制体 (control volume) 积分守恒定律, 并平衡通过体积边界的 通量 (flux)。
FVM 最直接地反映了物理守恒定律。
数学起点:积分型守恒定律
将平流-扩散方程写成积分形式:
对于控制体 :
其中 是单元平均值, 是单元边界处的 数值通量。
数值通量的确定
FVM 的核心在于如何计算单元边界通量:
平流项 —— 基于黎曼求解器 (Riemann solver) 或上风格式:
扩散项 —— 中心差分:
重构 (Reconstruction)#
仅靠单元平均值只有一阶精度。为了获得高阶精度, 必须对单元内部的分布进行 重构 (reconstruction):
MUSCL (2阶):
其中 是斜率限制器 (slope limiter), 是连续梯度的比例。
WENO (5阶):
通过对三个二阶多项式候选者进行非线性加权平均来实现五阶精度:
根据光滑度指示器 确定权重 ,在不连续附近自动给光滑的模板分配权重。
界面扩散是用正交间距去除的 。法向顺着网格线时,这个差才是法向导数。面一歪,单靠相邻平均值的差对不上方向。这个缺口由 非正交扩散修正 补上。去掉修正,写成守恒型,扩散仍然会偏。
前面的前差是 ,中心差分和二阶导数模板是 。前差留下泰勒展开里的 。中心差分用 减 ,把该项消掉。间距减半,前差误差大约减半, 大约降到四分之一。只有单元平均、不做重构,就停在一阶。高阶是在抬到界面时加上的。
MUSCL 里的 是把单元平均线性抬到界面的系数。 时斜率全留, 时界面值回到 ,又是一阶。WENO 只加 三个候选。每个 是二次多项式, 削减 大的模板。光滑区间里三者合成五阶,说的是这个加权和的阶。 掉到 0,五阶公式还在,那个面已经掉回一阶。三角形上 P1 是 3 个节点,P2 是 6 个,P3 是 10 个。阶数从 1 提到 3,单元未知数从 3 越过 10。弱形式里 是 , 把 和 捆在一起。 为正,扩散块接近对称。对流速度 留下非对称。
优缺点
优点:
- 在离散水平上精确满足守恒定律 —— CFD 中的决定性优点
- 擅长捕捉激波和不连续面
- 可应用于非结构化网格
- 基于通量的思维直接对应物理直觉
缺点:
- 实现高阶精度比 FEM 困难 (重构变得复杂)
- 在扩散方程中可能比 FEM 效率低
- 在非结构化网格上实现高阶重构非常棘手
代表性应用领域
- 整个 CFD 领域 (OpenFOAM, ANSYS Fluent, SU2)
- 可压缩/不可压缩流动
- 多相流、燃烧、反应流
- 气象/气候模型动力框架的一部分
核心对比
数学起点
| 技术 | 起点 | 核心工具 |
|---|---|---|
| FDM | 强形式 (Strong form) PDE | 泰勒展开 |
| FEM | 弱形式 (Weak form) | 基函数 + 加权残差 |
| FVM | 积分型守恒定律 | 控制体 + 数值通量 |
离散化“什么”
这是最本质的区别:
- FDM: 离散化微分算子 ()
- FEM: 离散化解空间 (solution space)
- FVM: 离散化积分方程中的通量
未知数的位置
- FDM: 网格点 (node) 处的点值 (point value)
- FEM: 节点 (node) 处的点值 (基函数的系数)
- FVM: 单元 (cell) 的平均值 (cell average)
综合对比
| 项目 | FDM | FEM | FVM |
|---|---|---|---|
| 实现难度 | 低 | 高 | 中 |
| 非结构化网格 | 困难 | 天然适合 | 可能 |
| 守恒性 | X | X (标准) | O |
| 复杂几何 | 困难 | 优秀 | 可能 |
| 高阶精度 | 容易 | 容易 (p-ref) | 可能 (WENO) |
| 激波捕捉 | 可能 | 困难 | 优秀 |
| 数学理论 | 一般 | 优秀 | 一般 |
| 平流主导问题 | 一般 | 需要稳定化 | 优秀 |
边界模糊的现代技术
近年来,结合三种技术优点的混合方法正受到活跃研究:
不连续伽辽金法 (Discontinuous Galerkin, DG)#
结合了 FEM 的基函数 + FVM 的通量概念。 在每个单元内部用多项式近似解 (FEM), 在单元边界用黎曼求解器计算通量 (FVM)。
同时满足 守恒性 + 高阶精度 + 非结构化网格。 但计算成本高,且在激波附近需要限制器 (limiter)。
谱差分 (Spectral Difference) / 通量重构 (Flux Reconstruction)#
与 DG 类似,但以微分形式求解而不进行积分,从而提高了效率。 与 GPU 加速结合良好,在下一代 CFD 求解器中备受关注。
无网格方法 (SPH 等)#
彻底取消网格的方法。基于粒子 (particle) 进行近似。 在自由表面流动、大变形问题上有优势,但存在精度/一致性问题。
要守恒就把差分模板放下
盒子里的 DNS、网格又正交,中心差分的 就够。三点做出二阶导数,矩阵保持带状。几何一折、网格变成非结构,这套模板就找不到邻居。弱形式这时把几何吃进去。标准伽辽金的 和 仍然不保证每个单元的通量互相抵消。
激波过去之后积分值必须原样回来,那就用 FVM。界面通量 是左单元的损失、右单元的收益,内部面在总和里消失。高阶和守恒要放在同一个格式里,就走 间断伽辽金离散:单元内多项式,单元面黎曼通量。拿掉限制器,这种混合在激波前一样会振荡。
相关文章
如果对您有帮助,请分享。