非構造格子

分类: 流体解析(CFD) | 综合版 2026-04-06
CAE visualization for unstructured mesh theory - technical simulation diagram
非構造格子

理论与物理

概述

🧑‍🎓

老师,非结构网格到底方便在哪里呢?


🎓

非结构网格(unstructured mesh)是一种将单元的连接关系明确作为表格来保持的网格。四面体(tet)、六面体(hex)、三棱柱(prism/wedge)、金字塔等,不同的单元形状可以自由混合。最大的优点是,可以对复杂的三维形状自动生成网格。


🧑‍🎓

意思是把CAD模型放进去就能自动生成网格吗?


🎓

基本就是这样。Fluent Meshing、STAR-CCM+、snappyHexMesh等,现代的CFD网格生成器只需输入STL表面就能自动生成体网格。这就是非结构网格在工业界压倒性普及的原因。


Delaunay三角剖分

🧑‍🎓

自动网格生成的算法是怎样的呢?


🎓

最基础的是Delaunay三角剖分。对于给定的点集,构成三角形时,使得每个三角形的外接圆内不包含其他点。


🎓

Delaunay条件用公式表示的话,对于三角形 $T$ 的外接圆 $C(T)$ 有


$$ \forall p \notin T: \quad p \notin \text{interior}(C(T)) $$

满足这个条件,则三角形中的最小角被最大化。也就是说,能得到尽可能“接近正三角形”的网格。


🧑‍🎓

三维情况下会怎样呢?


🎓

三维情况下是Delaunay四面体剖分。外接圆被外接球取代。但在三维中,不像二维那样能保证质量,容易产生薄片四面体(扁平的四面体)。去除薄片是三维自动网格生成的重要课题。


前沿推进法

🎓

另一个主要算法是前沿推进法。从边界面向内部“挤出”单元。


1. 将边界面的表面网格初始化为“前沿”

2. 选择前沿上的一个面,生成新点并创建单元

3. 更新前沿(删除旧面,添加新面)

4. 重复直到前沿消失


🧑‍🎓

和Delaunay法有什么区别呢?


🎓

前沿推进法的边界贴合性高,边界附近的网格质量往往较好。另一方面,Delaunay法鲁棒性高,易于实现。实际工具中,多使用两者结合的混合算法。


与有限体积法的关系

🧑‍🎓

在非结构网格上如何离散Navier-Stokes方程呢?


🎓

使用有限体积法(FVM)。在每个单元上以积分形式应用守恒定律。


$$ \frac{\partial}{\partial t}\int_V \mathbf{Q}\,dV + \oint_S \mathbf{F} \cdot d\mathbf{S} = 0 $$

数值评估通过单元面的通量 $\mathbf{F} \cdot d\mathbf{S}$。与结构网格不同,由于网格不规则,需要使用Gauss-Green法或最小二乘法来重构单元中心间的梯度。


🧑‍🎓

精度方面怎么样呢?


🎓

非结构网格上的有限体积法,基本以二阶精度为标准。因为通过单元中心的值和梯度对面上的值进行线性插值。如果网格的非正交性较大,就需要非正交修正项,这会影响收敛性和精度两方面。


Coffee Break 闲谈

非结构网格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)44低〜中(数值扩散大)非常容易
六面体(Hex)66高(数值扩散小)困难(需要结构网格)
三棱柱(Prism)55中〜高边界层可自动生成
金字塔(Pyramid)55用于hex/tet连接
多面体多个多个中〜高由四面体转换而来
🧑‍🎓

四面体数值扩散大是什么意思?


🎓

四面体因为面数少,从单元中心到各面的方向向量多样性较低。这导致梯度近似精度下降,在评估斜方向通量时数值扩散增大。相同单元数下,六面体的精度通常要高2~3倍。


梯度重构方法

🧑‍🎓

非结构网格中梯度的计算比较特别对吧?


🎓

没错。主要有三种方法。


Green-Gauss法

$$ (\nabla \phi)_C \approx \frac{1}{V_C} \sum_f \phi_f \mathbf{S}_f $$

根据单元面上的值 $\phi_f$ 计算梯度。根据面值的评估方法,有基于单元的方法和基于节点的方法。

最小二乘法(Least-Squares)

$$ \min \sum_{nb} w_{nb} \left[ (\nabla \phi)_C \cdot \Delta \mathbf{r}_{nb} - (\phi_{nb} - \phi_C) \right]^2 $$

根据与相邻单元的差值,以最小二乘的意义求取最佳梯度。即使在扭曲的网格上也具有鲁棒性。

🧑‍🎓

在Fluent中应该用哪个呢?


🎓

对于Fluent Meshing生成的网格,推荐使用Green-Gauss Node-Based或Least-Squares。对于四面体网格,Least-Squares通常更稳定。


非正交修正

🧑‍🎓

非正交性对CFD有什么影响呢?


🎓

有限体积法在计算扩散项通量时,如果单元中心间的向量 $\mathbf{d}$ 与面法向量 $\mathbf{S}$ 平行(正交网格)则很简单,但在非正交情况下需要修正项。


$$ \nabla \phi \cdot \mathbf{S} = \nabla \phi \cdot \mathbf{S}_\perp + \nabla \phi \cdot \mathbf{S}_\parallel $$

第二项是非正交修正项,如果显式处理会导致收敛性变差,网格非正交度超过70度时发散风险增高。在OpenFOAM中,通过 nonOrthogonalCorrectors 参数设置此修正的迭代次数。


🧑‍🎓

70度是个参考标准呢。


🎓

是的。一般指南建议,非正交度应控制在70度以下,理想是40度以下。特别是像OpenFOAM这样的分离型求解器,对非正交性很敏感。


Coffee Break 闲谈

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

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

熱解析V&V・品質保証構造解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
关于作者