divergence-free 散度为零
CFD 中的 “divergence-free” 的意义
在计算流体力学(CFD)中,“divergence-free”(也写作 “divergence free”、“无散度”、“散度为零”)通常指速度场满足 $\nabla \cdot \mathbf{u} = 0$。它在物理与数值上都至关重要,尤其针对不可压缩流动。
1. 物理意义:质量守恒的强形式
- 不可压缩流动条件:对恒定密度流体(或密度变化可忽略),连续方程化为 $\nabla \cdot \mathbf{u} = 0$,表示局部体积不膨胀或收缩,流体“既不在本地产生也不在本地消失”。
- 可压缩流动对比:可压缩情况下,连续方程为 $\partial_t \rho + \nabla \cdot (\rho \mathbf{u}) = 0$。即使 $\nabla \cdot \mathbf{u} \neq 0$,质量仍可守恒,因为密度随时空变化。不可压缩的“无散度”是更强的约束。
2. 数值意义:压力–速度耦合与稳定性
压力作为约束的拉格朗日乘子
在不可压缩 NS 方程中,压力不是通过状态方程确定,而是通过强制 $\nabla \cdot \mathbf{u} = 0$ 的约束来求得。数值上通常通过解压力泊松方程或采用投影/分裂法,调整速度场以满足无散度。投影法(Projection)/压力校正法(SIMPLE, PISO)
- 先计算“预测速度” $\mathbf{u}^*$(通常不满足无散度)。
- 解压力(或压力校正)泊松方程:$\nabla^2 p = \frac{\rho}{\Delta t},\nabla \cdot \mathbf{u}^*.$
- 用压力梯度修正速度:$\mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho},\nabla p,$ 使得$\nabla \cdot \mathbf{u}^{n+1} = 0$。
数值稳定性与准确性
速度场的散度误差会引入非物理源汇,导致体积“漏失/生成”,表现为压力振荡、密度漂移、非物理加速或误差累积。良好的离散和求解策略应将散度误差控制在截断误差量级。
3. 网格与离散层面的 “离散无散度”(discrete divergence-free)
离散一致性(discrete compatibility)
期望离散的梯度、散度、旋度算子满足离散向量微积分恒等式(例如离散地实现$\nabla \cdot (\nabla \times \cdot) \equiv 0)$,以实现数值上的“无散度”。结构化(交错)网格(staggered/MAC)
在 MAC 网格上,速度分量定义在面中心、压力在单元中心,几何配合使离散的散度与梯度天然兼容,更易实现严格的离散无散度。共点(collocated)网格
需要压力–速度耦合技巧(如 Rhie–Chow 插值)抑制压力棋盘格,减少伪散度与奇异模式。有限体积法(FVM)
将无散度条件体积积分后得到“净通量为零”:每个控制体的入流通量等于出流通量,这是离散局部质量守恒的体现。
4. 在湍流建模与数值滤波中的作用
湍流分解
在不可压缩情形下,RANS/LES 仍须保证瞬时或滤波后的速度场尽可能满足 $\nabla \cdot \mathbf{u} = 0$。亚格子模型(如 Smagorinsky)通常在投影步骤后施加无散度约束。数值扩散与滤波
过大的数值扩散可能降低局部散度误差,但也会抹平物理结构。高阶、无振荡格式更有利于兼顾“离散无散度”和解析度。
5. 典型判断与诊断
监控指标
- 域内散度的 $L_2$ 范数或最大范数:$|\nabla \cdot \mathbf{u}|2, |\nabla \cdot \mathbf{u}|\infty$
- 每步质量不平衡(global mass imbalance)
- 控制体(或网格块)通量闭合误差
可视化
在后处理(如 ParaView)中计算并显示div(U)的等值面或直方图。理想不可压缩解应接近零,误差常集中在边界层、几何拐角或网格/多物理耦合界面附近。
6. 与 “solenoidal/螺线性” 的联系
- “divergence-free” 速度场也称为 solenoidal 场(螺线性场)。在向量分析中,满足 $\nabla \cdot \mathbf{u} = 0$的向量场在适当条件下可表示为某个矢势的旋度:
$\mathbf{u} = \nabla \times \mathbf{A}.$ 在磁流体力学(MHD)中同理,磁感应方程要求$\nabla \cdot \mathbf{B} = 0$。
7. 何时不要求严格 divergence-free?
弱可压缩/显式可压缩求解
若求解可压缩 NS 方程(有状态方程闭合),则不强加 $\nabla \cdot \mathbf{u} = 0$,而由质量方程演化密度。在低马赫数但可压缩框架下,速度散度通常接近而非严格为零。多相与体积分数模型
总体仍需质量守恒,但由于相间通量耦合、相变源项等,单相视角下的“散度零”可被源项打破。应在离散上保证整体守恒。
8. 小结
- “divergence-free” 在不可压缩 CFD 中等价于局部质量守恒,是确定压力场、维持数值稳定与物理可信度的关键约束。
- 实现依赖:合适的网格布局(交错/共点)、离散一致性(通量守恒)、以及压力–速度耦合算法(投影/SIMPLE/PISO)。
- 诊断应监控散度范数与通量闭合误差,力求误差维持在截断误差量级并避免累积。
如果你正在使用特定求解器(如 OpenFOAM、Fluent、COMSOL 或自研 FVM/FEM 代码),告诉我你的设置与网格类型,我可以给出对应的参数建议与检查清单。
