DNS(直接数值模拟)基础
理论与物理
概述
老师,DNS 是直接解析湍流的所有尺度对吧?它的工作原理是怎样的?
DNS(直接数值模拟)是一种无需湍流模型、直接求解 Navier-Stokes 方程的方法。它从 Kolmogorov 最小尺度 $\eta$ 到积分尺度 $L$,解析所有涡旋。虽然能最忠实地再现湍流物理,但所需的计算资源是天文数字。
所需分辨率
DNS 需要多少网格数?
每个方向的网格数与 $L/\eta$ 成正比。Kolmogorov 尺度为 $\eta = (\nu^3/\varepsilon)^{1/4}$,其与积分尺度的比值由 Reynolds 数决定。
在三维中,每个方向都需要这么多网格点,因此总网格点数约为,
$Re = 10^4$ 时大概是多少?
$N \sim (10^4)^{9/4} \approx 10^9$。也就是说大约 10 亿个网格点。此外,时间步数与 $Re_L^{1/2}$ 成正比,因此总计算量与 $Re_L^{11/4}$ 成正比。对于工业级别的 $Re \sim 10^6$,$N \sim 10^{13.5}$,以目前的计算机能力完全不可能。
控制方程
DNS 求解的是什么方程?
对于不可压缩流体,就是通常的 Navier-Stokes 方程本身。
没有任何模型项。这是 DNS 最大的优势,其结果可被视为 N-S 方程的“精确解”。它是验证 RANS 模型或 LES 模型时最可靠的数据。
Kolmogorov 尺度律
请再详细讲讲 Kolmogorov 尺度。
它是湍流能量级串中的最小尺度。
| 尺度 | 公式 | 物理意义 |
|---|---|---|
| 长度尺度 $\eta$ | $(\nu^3/\varepsilon)^{1/4}$ | 粘性耗散占主导的最小涡旋尺寸 |
| 速度尺度 $u_\eta$ | $(\nu\varepsilon)^{1/4}$ | 最小涡旋的速度 |
| 时间尺度 $\tau_\eta$ | $(\nu/\varepsilon)^{1/2}$ | 最小涡旋的翻转时间 |
DNS 需要满足 $\Delta x \leq \pi\eta$(经验上 $\Delta x \approx 2\eta$)和 $\Delta t \leq \tau_\eta$。如果网格不满足此条件,小尺度涡旋会发生混叠,导致计算不稳定。
DNS 的“9/4 次方壁垒”——$Re$ 翻倍,计算量变为几倍?
DNS 所需的网格点数为了解析到 Kolmogorov 尺度,其数量级按 $N \sim Re^{9/4}$ 增长。例如,$Re$ 翻倍,计算量大约变为 $2^{9/4} \approx 4.76$ 倍。对于实用的机翼 DNS($Re \sim 10^7$),有估算认为即使用现在的超级计算机也需要数十年。DNS 被称为“研究者的理想与现实之壁”的象征,正是这个冷酷的指数关系说明了一切。
各项的物理意义
- 时间项 $\partial(\rho\phi)/\partial t$:想象一下拧开水龙头的瞬间。最初水流会不稳定地喷溅,过一会儿才变成稳定的水流,对吧?描述这个“变化过程中”的就是时间项。心脏搏动导致血流脉动,发动机阀门每次开闭引起流动变化,这些都是非定常现象。那么定常分析是什么?就是只看“经过足够时间流动稳定之后”——也就是令此项为零。计算成本大幅降低,因此先用定常求解是 CFD 的基本策略。
- 对流项 $\nabla \cdot (\rho \mathbf{u} \phi)$:把落叶扔进河里会怎样?会被水流带着往下游漂,对吧?这就是“对流”——流体运动搬运物质的效果。暖气的热风能到达房间另一端,也是因为空气这个“搬运工”通过对流输送热量。这里有趣的是——此项包含“速度×速度”,因此是非线性的。也就是说,流速越快,此项急剧增强,变得难以控制。这就是湍流的根本原因。常见的误解:“对流和传导差不多吧?”→ 完全不一样!对流是流动搬运,传导是分子传递。效率有天壤之别。
- 扩散项 $\nabla \cdot (\Gamma \nabla \phi)$:有过在咖啡里倒入牛奶后放置不管的经历吗?即使不搅拌,过一会儿也会自然混合。那就是分子扩散。那么下一个问题——蜂蜜和水,哪个更容易流动?当然是水。因为蜂蜜的粘性($\mu$)高,所以难流动。粘性越大,扩散项越强,流体的运动就变得“粘稠”。雷诺数小的流动(缓慢、粘稠)中扩散占主导。相反,Re 数大的流动中,对流占压倒性优势,扩散则成为配角。
- 压力项 $-\nabla p$:推注射器的活塞,液体就会从针头有力地射出,对吧?为什么?因为活塞侧压力高,针头侧压力低——这个压力差产生了推动流体的力。水坝放水也是同样原理。天气图上等压线密集的地方会怎样?没错,会刮强风。“有压力差的地方就会产生流动”——这就是 Navier-Stokes 方程压力项的物理意义。这里容易误解的点是:CFD 中的“压力”通常指表压而非绝对压力。切换到可压缩分析时结果突然出错,原因可能就是混淆了绝对压力/表压。
- 源项 $S_\phi$:被加热的空气会上升——为什么?因为比周围空气轻(密度低),所以被浮力推上去。这个浮力作为源项添加到方程中。此外,燃气灶火焰产生化学反应热、工厂电磁泵对金属熔液施加洛伦兹力……这些都是“从外部向流体注入能量或力”的作用,都用源项表示。忘记源项会怎样?自然对流分析中忘记加入浮力,流体就完全不动——就像冬天房间里开了暖气,热空气却不上浮,这种物理上不可能的结果。
假设条件与适用范围
- 连续介质假设:Knudsen 数 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$。直接关系到时间步长的稳定性 |
数值解法与实现
DNS 的数值方法
DNS 使用什么样的数值格式?
DNS 中,为了不让数值误差污染湍流物理,高精度格式是必须的。
| 方法 | 空间精度 | 适用 | 代表性代码 |
|---|---|---|---|
| 谱方法 | 指数级(谱精度) | 周期性简单形状 | Channelflow, SIMSON |
| 紧致有限差分(6阶) | 6阶 | 稍复杂的形状 | Incompact3d |
| 标准有限差分(2阶中心差分) | 2阶 | 一般形状 | OpenFOAM, Nek5000 |
| 谱元法 | 高阶(p阶) | 复杂形状 | Nek5000, Nektar++ |
谱方法精度最高吗?
是的。对于具有周期性边界条件的简单形状(槽道流、各向同性湍流方盒等),基于 FFT 的谱方法最有效。使用 3/2 法则或相移法消除高波数分量的混叠。但无法应用于复杂形状。
压力泊松方程
不可压缩 DNS 中压力怎么计算?
为了满足连续性方程,需要求解压力泊松方程。
在谱方法中,可以在波数空间直接求解,因此非常高效。有限差分法则使用迭代法(PCG、FFT-based direct solver 等)。
时间积分
时间方向的格式呢?
标准做法是:粘性项用隐式法(Crank-Nicolson),对流项用显式法(3阶 Adams-Bashforth 或低存储 Runge-Kutta)组合。
| 格式 | 精度 | 稳定性 | 典型用途 |
|---|---|---|---|
| AB3 + CN | 2〜3阶 | 条件稳定(CFL 约束) | 槽道流 DNS |
| RK3 + CN | 3阶 | 良好 | 高精度 DNS |
| RK4 | 4阶 | CFL 约束严格 | 谱方法 DNS |
DNS 的时间步长有多小?
需要同时满足 CFL 条件 $\Delta t \leq \Delta x / U_{\max}$ 和粘性稳定条件 $\Delta t \leq \Delta x^2 / (2\nu)$。对于槽道流 DNS($Re_\tau = 590$),$\Delta t^+ = \Delta t u_\tau^2/\nu \approx 0.02$ 左右。物理时间上需要数万到数十万步的计算。
DNS 选择谱方法的理由——“微分误差为零”的诱惑
DNS 数值方法中傅里叶谱方法备受青睐,是因为“微分精度在理论上无限高”。物理空间的差分法中,微分误差依赖于网格宽度,而傅里叶谱方法独立处理每个波数模态,因此能得到与解析微分等价的精度。但缺点也很明显:“只能处理周期边界条件”、“无法扩展到非均匀网格”。所以 DNS 处理的问题集中在槽道流、各向同性湍流等“形状简单的问题”——这是追求精度所做出的合理选择。
迎风格式(Upwind)
一阶迎风:数值扩散大但稳定。二阶迎风:精度提高但有振荡风险。高雷诺数流动中必不可少。
中心差分(Central Differencing)
二阶精度,但 Pe 数 > 2 时会产生数值振荡。适用于低雷诺数的扩散主导流动。
TVD 格式(MUSCL、QUICK 等)
通过限制器函数抑制数值振荡,同时保持高精度。对捕捉激波或陡峭梯度有效。
有限体积法 vs 有限元法
FVM:自然满足守恒律。CFD 的主流。FEM:对复杂形状、多物理场有利。SPH 等无网格法也在发展中。
CFL 条件(库朗数)
显式法:CFL ≤ 1 是稳定条件。隐式法:CFL > 1 也稳定,但影响精度和迭代次数。LES:推荐 CFL ≈ 1。物理意义:一个时间步内信息传播不超过一个网格。
残差监控
连续性方程、动量、能量的各项残差下降 3~4 个数量级可判断为收敛。质量守恒残差尤其重要。
松弛因子
压力:0.2~0.3,速度:0.5~0.7 是常见的初始值。发
相关主题
なった
詳しく
報告