構造格子

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

理论与物理

概述

🧑‍🎓

老师,结构网格到底是什么东西?它和非结构网格的区别我总是不太明白。


🎓

结构网格(structured mesh)指的是用规则排列的六面体(3D)或四边形(2D)单元填满计算域的网格。每个单元的索引可以用 $(i,j,k)$ 唯一表示。也就是说,网格点的邻接关系是隐含确定的,所以不需要特意存储连接信息。


🧑‍🎓

不需要保持邻接信息,是不是意味着内存效率更高?


🎓

没错。在结构网格中,相邻单元总是 $(i\pm1, j\pm1, k\pm1)$,所以数据访问是连续的,缓存命中率高。相同单元数下,内存消耗比非结构网格少约一半,计算速度快2~3倍也不少见。


物体适合坐标系与度量

🧑‍🎓

但是现实的形状是弯曲或扭曲的吧?用规则的网格怎么应对呢?


🎓

这时就要用到物体拟合曲线坐标系(body-fitted curvilinear coordinates)。它将物理空间 $(x,y,z)$ 映射到计算空间 $(\xi,\eta,\zeta)$。在计算空间中,网格是均匀的长方体,因此差分格式可以简单地书写。


🎓

坐标变换的雅可比矩阵很重要,定义如下。


$$ J = \frac{\partial(x,y,z)}{\partial(\xi,\eta,\zeta)} $$

这个雅可比矩阵的行列式 $|J|$ 如果为零或负值,就证明网格发生了畸变或翻转,计算会失败。


🧑‍🎓

雅可比矩阵为负是什么情况?


🎓

典型情况是锐角拐角周围,或者网格线发生交叉的情况。网格生成时,在所有单元中确认 $|J| > 0$ 是铁则。


结构网格上的Navier-Stokes方程

🧑‍🎓

控制方程在结构网格上形式会改变吗?


🎓

将物理空间中的Navier-Stokes方程变换到计算空间。写成守恒形式如下。


$$ \frac{\partial}{\partial t}\left(\frac{\mathbf{Q}}{J}\right) + \frac{\partial \hat{\mathbf{E}}}{\partial \xi} + \frac{\partial \hat{\mathbf{F}}}{\partial \eta} + \frac{\partial \hat{\mathbf{G}}}{\partial \zeta} = 0 $$

这里 $\mathbf{Q}$ 是守恒变量向量,$\hat{\mathbf{E}}, \hat{\mathbf{F}}, \hat{\mathbf{G}}$ 是包含度量项的变换后通量。


🧑‍🎓

度量项具体是什么?


🎓

例如 $\hat{\mathbf{E}} = \frac{1}{J}(\xi_x \mathbf{E} + \xi_y \mathbf{F} + \xi_z \mathbf{G})$ 这样,坐标变换的偏微分系数 $\xi_x, \xi_y$ 等会乘以通量。如果这些度量项不能精确离散化,自由流守恒(freestream preservation)就会被破坏,产生虚假的数值误差。


网格间隔的等比配置

🧑‍🎓

壁面附近需要加密网格吧?怎么控制呢?


🎓

基本方法是使用等比数列(geometric progression)。


$$ \Delta s_i = \Delta s_1 \cdot r^{i-1} $$

这里 $\Delta s_1$ 是第一层的厚度,$r$ 是增长比(growth ratio)。$r = 1.2$ 意味着每一层都比前一层厚1.2倍。壁面侧的 $\Delta s_1$ 根据 $y^+$ 要求确定,增长比 $r$ 推荐在1.1~1.3之间。


🧑‍🎓

增长比太大结果会怎样?


🎓

相邻单元间的尺寸比变得过大,截断误差会增加,数值扩散会恶化。特别是对于二阶精度格式,建议将相邻单元的体积比控制在1.2以下。


Coffee Break 闲谈

结构网格的历史——1974年Thompson-Thames-Mastin变换与BFM(边界拟合网格)的诞生

为复杂物体形状建立“边界拟合网格(Body-Fitted Mesh)”的系统化方法,是由Joe Thompson、Frank Thames和C. Wayne Mastin于1974年发表的“基于椭圆型偏微分方程的网格生成法(TTM法)”确立的。该方法通过“共形映射(Conformal Mapping)”将物理空间的复杂计算域映射到由ξ-η-ζ均匀正交网格描述的“计算空间”,在计算空间求解方程后再转换回物理空间。这使得针对任意形状(如飞机翼型、船体、发动机内流道)的结构网格生成首次变得实用,为1980年代CFD的爆炸性发展提供了可能。基于TTM法的网格生成代码GRID2D在50年后的今天仍被用于教育和研究。

各项的物理意义
  • 时间项 $\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$。直接关系到时间步长的稳定性

数值解法与实现

结构网格的生成方法

🧑‍🎓

结构网格实际上是怎么生成的?


🎓

介绍三种代表性的方法。


代数方法(Transfinite Interpolation: TFI)

🎓

给定边界上的网格点分布,通过插值决定内部网格点。计算速度快,但对于复杂形状,网格质量的控制较难。


椭圆型网格生成(Elliptic Grid Generation)

🎓

求解泊松方程来配置网格点。


$$ \nabla^2 \xi = P(\xi,\eta,\zeta), \quad \nabla^2 \eta = Q(\xi,\eta,\zeta), \quad \nabla^2 \zeta = R(\xi,\eta,\zeta) $$

通过调整控制函数 $P, Q, R$,可以控制壁面附近的网格集中度和正交性。网格质量最高,但需要迭代计算,生成耗时。


双曲型网格生成

🎓

从壁面沿法线方向“生长”网格的方法。特别适用于边界层网格生成,能自然地保证壁面正交性。


🧑‍🎓

该选择哪种方法呢?


🎓

实际工作中,常用混合方法:先用TFI生成初始网格,再用椭圆型求解器进行平滑。ICEM或Pointwise中这是标准工作流。


多块结构网格

🧑‍🎓

复杂形状用一个块似乎不行吧…


🎓

这种情况就使用多块结构网格。将计算域分割成多个块,每个块内是结构网格,块之间通过连接面(interface)传递信息。


🎓

块之间的连接主要有两种类型。

  • Conformal(匹配): 连接面上网格点一致。无插值误差
  • Non-conformal(非匹配): 网格点不一致。需要插值

🧑‍🎓

匹配的肯定更好吧?


🎓

精度方面确实如此,但对于复杂形状,为了保持匹配性,拓扑设计会变得极其困难。实际工作中,像ICEM CFD Hexa这样的块拓扑编辑器非常有用。然而,这种拓扑设计正是结构网格最大的瓶颈,即使是熟练者,生成一辆汽车规模的网格也可能需要数天到数周。


差分格式的亲和性

🧑‍🎓

听说结构网格上差分法更好用,具体是怎么回事?


🎓

结构网格中网格点规则排列,因此可以自然地构建高阶精度的差分格式。例如五阶精度的WENO格式,或紧致差分法(Pade型),在结构网格上才能发挥真正价值。


🎓

在非结构网格上实现同等的高阶精度,就需要基于最小二乘法的梯度重构以及应对不等间距,计算成本会急剧上升。


🧑‍🎓

所以DNS(直接数值模拟)或LES中更倾向于使用结构网格啊。


🎓

没错。学术上的高精度计算中,结构网格依然是主流。特别是对于通道流、管道流等相对简单形状的DNS,可以说结构网格是唯一选择。


Coffee Break 闲谈

O型·C型·H型网格的选用——翼型周围结构网格设计的判断基准

翼型(Airfoil)周围的结构网格中,网格拓扑的选择直接关系到精度。O型网格(围绕翼型的同心椭圆状)能均匀且高质量地解析翼型全周,可以自然地从前缘到后缘铺设连续网格。但在翼型后缘的锐角(Sharp Trailing Edge)处网格线会折叠,可能导致薄后缘的形状精度下降。C型网格(从翼前方向C字形环绕)更容易捕捉后缘的分离区域,适用于失速(Stall)分析。H型网格(矩形正交网格的变形)最简单,但翼型周围的网格质量不及O型网格。实际工作中,“以O型或C型为拓扑基础生成,远场用H型结构网格覆盖外侧”的OC-H型复合网格是翼型高精度RANS/LES的标准选择。

関連シミュレーター

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

シミュレーター一覧

関連する分野

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