非構造格子
理论与物理
概述
老师,非结构网格到底方便在哪里呢?
非结构网格(unstructured mesh)是一种将单元的连接关系明确作为表格来保持的网格。四面体(tet)、六面体(hex)、三棱柱(prism/wedge)、金字塔等,不同的单元形状可以自由混合。最大的优点是,可以对复杂的三维形状自动生成网格。
意思是把CAD模型放进去就能自动生成网格吗?
基本就是这样。Fluent Meshing、STAR-CCM+、snappyHexMesh等,现代的CFD网格生成器只需输入STL表面就能自动生成体网格。这就是非结构网格在工业界压倒性普及的原因。
Delaunay三角剖分
自动网格生成的算法是怎样的呢?
最基础的是Delaunay三角剖分。对于给定的点集,构成三角形时,使得每个三角形的外接圆内不包含其他点。
Delaunay条件用公式表示的话,对于三角形 $T$ 的外接圆 $C(T)$ 有
满足这个条件,则三角形中的最小角被最大化。也就是说,能得到尽可能“接近正三角形”的网格。
三维情况下会怎样呢?
三维情况下是Delaunay四面体剖分。外接圆被外接球取代。但在三维中,不像二维那样能保证质量,容易产生薄片四面体(扁平的四面体)。去除薄片是三维自动网格生成的重要课题。
前沿推进法
另一个主要算法是前沿推进法。从边界面向内部“挤出”单元。
1. 将边界面的表面网格初始化为“前沿”
2. 选择前沿上的一个面,生成新点并创建单元
3. 更新前沿(删除旧面,添加新面)
4. 重复直到前沿消失
和Delaunay法有什么区别呢?
前沿推进法的边界贴合性高,边界附近的网格质量往往较好。另一方面,Delaunay法鲁棒性高,易于实现。实际工具中,多使用两者结合的混合算法。
与有限体积法的关系
在非结构网格上如何离散Navier-Stokes方程呢?
使用有限体积法(FVM)。在每个单元上以积分形式应用守恒定律。
数值评估通过单元面的通量 $\mathbf{F} \cdot d\mathbf{S}$。与结构网格不同,由于网格不规则,需要使用Gauss-Green法或最小二乘法来重构单元中心间的梯度。
精度方面怎么样呢?
非结构网格上的有限体积法,基本以二阶精度为标准。因为通过单元中心的值和梯度对面上的值进行线性插值。如果网格的非正交性较大,就需要非正交修正项,这会影响收敛性和精度两方面。
非结构网格CFD的历史——1987年Jameson-Baker论文开启的时代
使用非结构网格(Unstructured Mesh)的CFD实用化,因Antony Jameson及其合作者在1987年发表“Euler方程的非结构三角形网格有限体积法”而加速。此前航空CFD以结构网格(Structured Mesh)为主流,复杂形状的网格生成需要专家花费数月时间。Jameson等人的方法使得网格生成不受形状复杂度影响,成为推动“CFD民主化”的技术转折点。结合1990年代计算机的高速化,非结构网格CFD迅速普及,现代主要CFD求解器(Fluent、OpenFOAM、SU2等)都采用非结构网格作为基本架构。
各项的物理意义
- 时间项 $\partial(\rho\phi)/\partial t$:想象一下拧开水龙头的瞬间。最初水流会不稳定地喷溅,过一会儿才会变成稳定的水流,对吧?描述这个“变化过程中”的就是时间项。心脏搏动导致血流脉动,发动机阀门开闭导致流动变化,这些都是非定常现象。那么定常分析是什么?就是“只看经过足够长时间后流动稳定下来的状态”——也就是令此项为零。计算成本会大幅下降,所以先用定常求解是CFD的基本策略。
- 对流项 $\nabla \cdot (\rho \mathbf{u} \phi)$:把落叶丢进河里会怎样?会被水流带着往下游漂,对吧?这就是“对流”——流体运动搬运物体的效果。暖风的暖气能到达房间角落,也是因为空气这个“搬运工”通过对流输送热量。这里有趣的是——这项包含“速度×速度”,因此是非线性的。也就是说,流速变快这项会急剧增强,变得难以控制。这就是湍流的根本原因。常见的误解:“对流和传导差不多吧?”→ 完全不一样!对流是流动搬运,传导是分子传递。效率有天壤之别。
- 扩散项 $\nabla \cdot (\Gamma \nabla \phi)$:有过在咖啡里倒入牛奶后放置的经历吗?即使不搅拌,过一会儿也会自然混合。那就是分子扩散。那么下一个问题——蜂蜜和水,哪个更容易流动?当然是水,对吧?因为蜂蜜的粘度($\mu$)高,所以不易流动。粘度越大扩散项越强,流体的运动就变得“粘稠”。雷诺数小的流动(缓慢、粘稠)中扩散占主导。相反,Re数大的流动中对流占压倒性优势,扩散则成为配角。
- 压力项 $-\nabla p$:推注射器的活塞,液体会从针尖有力地射出,对吧?为什么?因为活塞侧压力高,针尖压力低——这个压力差产生了推动流体的力。水坝放水也是同样原理。天气图上等压线密集的地方会怎样?没错,会刮强风。“有压力差的地方就会产生流动”——这就是纳维-斯托克斯方程压力项的物理意义。这里的误解点:CFD的“压力”多为表压而非绝对压力。切换到可压缩分析时结果突然出错,原因可能就是混淆了绝对压力/表压。
- 源项 $S_\phi$:被加热的空气会上升——为什么?因为比周围轻(密度低),被浮力推上去了。这个浮力作为源项添加到方程中。还有,燃气灶的火焰产生化学反应热,工厂的电磁泵对金属熔液施加洛伦兹力…这些都是“从外部向流体注入能量或力”的作用,都用源项表示。忘记源项会怎样?自然对流分析中忘记加入浮力,流体就完全不动——冬天房间里开了暖气但暖空气不上升,这种物理上不可能的结果就会出现。
假设条件与适用范围
- 连续介质假设:克努森数 Kn < 0.01(分子平均自由程 ≪ 特征长度)时成立
- 牛顿流体假设:剪切应力与应变速率呈线性关系(非牛顿流体需要粘度模型)
- 不可压缩假设(Ma < 0.3时):将密度视为常数。马赫数0.3以上需考虑可压缩性效应
- Boussinesq近似(自然对流):仅在浮力项中考虑密度变化,其他项使用恒定密度
- 不适用的情形:稀薄气体(Kn > 0.1)、超音速/高超音速流动(需要捕捉激波)、自由表面流动(需要VOF/Level Set等)
量纲分析与单位制
| 变量 | SI单位 | 注意事项·换算备忘 |
|---|---|---|
| 速度 $u$ | m/s | 入口条件中从体积流量换算时,注意截面积单位 |
| 压力 $p$ | Pa | 区分表压与绝对压力。可压缩分析中使用绝对压力 |
| 密度 $\rho$ | kg/m³ | 空气: 约1.225 kg/m³@20°C,水: 约998 kg/m³@20°C |
| 粘性系数 $\mu$ | Pa·s | 注意与运动粘性系数 $\nu = \mu/\rho$ [m²/s] 混淆 |
| 雷诺数 $Re$ | 无量纲 | $Re = \rho u L / \mu$。层流/湍流转捩的判断指标 |
| CFL数 | 无量纲 | $CFL = u \Delta t / \Delta x$。直接关系到时间步长的稳定性 |
数值解法与实现
单元形状比较
四面体、六面体、三棱柱…种类很多,它们各自有什么不同呢?
我们来比较一下CFD中使用的主要单元形状。
| 单元形状 | 面数 | 相邻单元数 | 精度 | 自动生成难易度 |
|---|---|---|---|---|
| 四面体(Tet) | 4 | 4 | 低〜中(数值扩散大) | 非常容易 |
| 六面体(Hex) | 6 | 6 | 高(数值扩散小) | 困难(需要结构网格) |
| 三棱柱(Prism) | 5 | 5 | 中〜高 | 边界层可自动生成 |
| 金字塔(Pyramid) | 5 | 5 | 中 | 用于hex/tet连接 |
| 多面体 | 多个 | 多个 | 中〜高 | 由四面体转换而来 |
四面体数值扩散大是什么意思?
四面体因为面数少,从单元中心到各面的方向向量多样性较低。这导致梯度近似精度下降,在评估斜方向通量时数值扩散增大。相同单元数下,六面体的精度通常要高2~3倍。
梯度重构方法
非结构网格中梯度的计算比较特别对吧?
没错。主要有三种方法。
Green-Gauss法
根据单元面上的值 $\phi_f$ 计算梯度。根据面值的评估方法,有基于单元的方法和基于节点的方法。
最小二乘法(Least-Squares)
根据与相邻单元的差值,以最小二乘的意义求取最佳梯度。即使在扭曲的网格上也具有鲁棒性。
在Fluent中应该用哪个呢?
对于Fluent Meshing生成的网格,推荐使用Green-Gauss Node-Based或Least-Squares。对于四面体网格,Least-Squares通常更稳定。
非正交修正
非正交性对CFD有什么影响呢?
有限体积法在计算扩散项通量时,如果单元中心间的向量 $\mathbf{d}$ 与面法向量 $\mathbf{S}$ 平行(正交网格)则很简单,但在非正交情况下需要修正项。
第二项是非正交修正项,如果显式处理会导致收敛性变差,网格非正交度超过70度时发散风险增高。在OpenFOAM中,通过 nonOrthogonalCorrectors 参数设置此修正的迭代次数。
70度是个参考标准呢。
是的。一般指南建议,非正交度应控制在70度以下,理想是40度以下。特别是像OpenFOAM这样的分离型求解器,对非正交性很敏感。
Delaunay三角剖分——非结构网格生成的数学基础与质量控制
非结构三角形/四面体网格自动生成的基础“Delaunay三角剖分”,是一种满足“外接圆内部不包含其他点”这一最优性条件的三角剖分。这一性质使得生成的三角形最小角最大化,自动抑制了CFD中容易出现的长薄单元(大歪斜度)。Boris Delaunay于1934年提出的数学概念,在50年后的计算机时代作为网格生成算法被重新发现,成为现代非结构网格生成软件的核心。结合控制边界上单元尺寸的“约束Delaunay法”以及用于改善网格质量的点插入技术,构成了现代TetGen、netgen、TetMeshGC等软件的核心算法。
迎风格式(Upwind)
一阶迎风:数值扩散大但稳定。二阶迎风:精度提高但有振荡风险。高雷诺数流动中必须使用。
中心差分(Central Differencing)
二阶精度,但Pe数 > 2时会产生数值振荡。适用于低雷诺数的扩散主导流动。
TVD格式(MUSCL、QUICK等)
通过限制器函数抑制数值振荡同时保持高精度。对捕捉激波或陡峭梯度有效。
有限体积法 vs 有限元法
FVM:自然地满足守恒定律。CFD的主流。FEM:对复杂形状/多物理场有利。SPH等无网格法也在发展中。
C
相关主题
なった
詳しく
報告