DNS(直接数值模拟)的基础

分类:流体分析(CFD) | 综合版 2026-04-06
CAE visualization for dns fundamentals theory - technical simulation diagram
DNS(直接数值模拟)的基础

DNS(直接数值模拟)基础的理论基础

概述

🧑‍🎓

老师,DNS是直接解析湍流的所有尺度吧?原理是什么?


🎓

DNS(Direct Numerical Simulation)是直接求解Navier-Stokes方程而不使用湍流模型的手法。从Kolmogorov最小尺度 $\eta$ 到积分尺度 $L$,用网格解析所有涡旋。最忠实地再现湍流物理,但所需计算资源是天文数字。


所需的解像度

🧑‍🎓

DNS需要多少网格点?


🎓

各方向的网格数与 $L/\eta$ 成正比。Kolmogorov尺度为 $\eta = (\nu^3/\varepsilon)^{1/4}$,积分尺度与之的比由Reynolds数决定。


$$ \frac{L}{\eta} \sim Re_L^{3/4} $$

在三维中,各方向需要这么多格点,所以总格点数为:


$$ N_{\text{total}} \sim Re_L^{9/4} $$

🧑‍🎓

如果 $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方程。


$$ \frac{\partial u_i}{\partial t} + u_j\frac{\partial u_i}{\partial x_j} = -\frac{1}{\rho}\frac{\partial p}{\partial x_i} + \nu\frac{\partial^2 u_i}{\partial x_j^2} $$
$$ \frac{\partial u_i}{\partial x_i} = 0 $$

🎓

没有模型项。这是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$。如果网格不满足这个条件,小尺度涡旋会产生反走样并导致计算不稳定。

Coffee Break 闲话

DNS的"9/4乘幂之墙"——如果将 $Re$ 翻倍,计算量会翻多少倍?

由于DNS需要解析到Kolmogorov尺度,所需格点数以 $N \sim Re^{9/4}$ 的阶数增长。例如,如果 $Re$ 翻倍,计算量就会增加 $2^{9/4} \approx 4.76$ 倍。据说实际的航空机翼DNS($Re \sim 10^7$)用当今超级计算机需要数十年。DNS被称为"研究理想与现实之间的壁垒"象征,完全就是因为这个无情的指数关系。

DNS(直接数值模拟)基础的数值计算方法

DNS的数值手法

🧑‍🎓

DNS使用什么样的数值格式?


🎓

DNS需要高精度格式,防止数值误差污染湍流物理。


方法空间精度应用代表性代码
谱方法指数级(spectral accuracy)周期性简单形状Channelflow, SIMSON
紧凑有限差分(6阶)6阶稍复杂的形状Incompact3d
标准有限差分(2阶中心差分)2阶一般形状OpenFOAM, Nek5000
谱元法高阶(p阶)复杂形状Nek5000, Nektar++
🧑‍🎓

谱方法精度最高吗?


🎓

是的。对于具有周期边界条件的简单形状(通道流、等向湍流盒等),基于FFT的谱方法最有效率。用3/2法则或Phase Shift去除高波数的反走样。但缺点是只能处理周期边界条件。


压力泊松方程

🧑‍🎓

在非压缩DNS中,压力怎么计算?


🎓

为满足连续方程,需要求解压力泊松方程。


$$ \nabla^2 p = -\rho \frac{\partial u_i}{\partial x_j}\frac{\partial u_j}{\partial x_i} $$

谱方法可在波数空间直接求解,效率极高。有限差分法使用迭代法(PCG、FFT-based direct solver等)。


时间积分

🧑‍🎓

时间方向的格式呢?


🎓

粘性项通常用隐方法(Crank-Nicolson),对流项用显方法(3阶Adams-Bashforth或低存储Runge-Kutta)组合,这是标准做法。


格式精度稳定性典型应用
AB3 + CN2~3阶条件稳定(CFL约束)通道流DNS
RK3 + CN3阶良好高精度DNS
RK44阶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$。计算需要数万至数十万个时间步。

Coffee Break 闲话

为什么DNS选谱方法——"微分误差为零"的诱惑

DNS倾向选择傅里叶谱方法的原因是"理论上微分精度无限高"。物理空间差分法的微分误差取决于网格宽度,但傅里叶谱方法独立处理各波数模式,因此达到解析微分的等价精度。但缺点也很明显:"只能处理周期边界条件""无法扩展到非均匀网格"。因此DNS往往处理通道流和等向湍流等"简单形状问题"——这其实是追求精度之后的合理选择。

DNS(直接数值模拟)基础的实务应用

DNS的典型应用例

🧑‍🎓

DNS实际用在什么研究上?


🎓
应用例代表性 $Re$格点数目的
通道流($Re_\tau = 5200$)$Re_\tau = 5200$约100亿获取壁面湍流统计数据
等向湍流衰减$Re_\lambda = 100$~$600$约1亿~80亿能量谱、级联
平板边界层$Re_\theta = 1000$~$6500$约10亿转迁·湍流边界层的详细数据
圆柱周围($Re = 3900$)$Re_D = 3900$约2亿涡脱落Strouhal数
🧑‍🎓

DNS数据怎么用?


🎓

主要有三个用途。


1. 湍流模型验证:评估RANS模型(k-epsilon、RSM等)和LES SGS模型的精度

2. 物理现象解明:详细分析壁面近处的涡结构、能量级联、转迁机制

3. 机器学习教学数据:为数据驱动湍流模型提供训练数据


DNS数据库

🧑‍🎓

有公开的DNS数据库吗?


🎓
数据库机构主要数据
Johns Hopkins Turbulence Databases (JHTDB)Johns Hopkins大学等向湍流、通道流、MHD
KTH DNS DatabaseKTH(瑞典皇家工学院)通道流、边界层
DNS Database (Moser group)德克萨斯大学通道流 $Re_\tau = 180$~$5200$
Turbulence and Heat Transfer Database东京大学加热通道流
🧑‍🎓

用这些数据可以验证RANS模型而不用自己跑DNS吧。


🎓

完全同意。尤其是Moser的通道流DNS数据($Re_\tau = 180, 395, 590, 2003, 5200$)是湍流模型验证的世界标准。速度分布、Reynolds应力、湍流能量收支都公开了。

Coffee Break 闲话

DNS数据库如何成为"湍流研究的公共财产"

自1987年Kim、Moin、Moser进行通道流DNS并公开数据以来,DNS结果被整个湍流研究社区用作"正确答案"参考。现在JHU湍流数据库、美国VT国家实验室的Petaflops DNS数据库等,都有PB级的DNS数据免费公开。这导致了"与DNS对比验证模型精度"这种验证文化的确立——DNS成为"比实验更诚实的基准",是湍流研究的基础。

DNS(直接数值模拟)基础的软件对比

适合DNS的软件

🧑‍🎓

商用CFD软件能做DNS吗?


🎓

技术上可以,但商用求解器(Fluent、STAR-CCM+等)采用FVM基础,空间精度约2阶,不适合DNS的高精度要求。DNS通常用专门代码。


代码方法许可证特点
Nek5000/NekRS谱元法开源 (BSD)GPU支持、支持复杂形状
Incompact3d/Xcompact3d6阶紧凑差分开源 (BSD)2DECOMP&FFT支持大规模并行
SIMSON谱方法学术许可证通道流·边界层的标准工具
Channelflow谱方法开源 (GPL)通道流专用
OpenFOAMFVM (2阶)开源 (GPL)低Re DNS可用
🧑‍🎓

OpenFOAM能做DNS吗?


🎓

OpenFOAM是2阶精度FVM,数值耗散对高Re DNS太大。但对足够低的流($Re < 1000$),可关闭湍流模型来做DNS式求解。用pimpleFoam 设置turbulence off就可以。


GPU支持的动向

🧑‍🎓

用GPU加速DNS的研究进展怎样?


🎓

进展很快。NekRS(Nek5000的GPU版)在AMD/NVIDIA GPU上展现出优异的可扩展性,Frontier(AMD MI250X)和Summit(NVIDIA V100)上都可以跑兆级格点DNS。


🎓

2022年Gordon Bell奖,报告了用NekRS在Frontier上做飞机周围Wall-Resolved LES(实际上是DNS级别解像度)的计算,达到数百亿格点规模。


🧑‍🎓

DNS是研究最高精度,但Reynolds数的墙立在面前。与LES、DDES的取舍很重要呢。

Coffee Break 闲话

商用求解器为什么不用DNS——"精度保证"之墙

要说为什么Fluent或StarCCM+不用于DNS,原因很技术性。这些商用求解器采用2阶或最多4阶的空间离散,要达到DNS质量(无误差解析到Kolmogorov尺度)需要超大网格。而谱法基础的代码(Nek5000、Dedalus、spectralDNS等)在研究机构开发并公开,在精度保证上有理论优势。"商用求解器用于工业、DNS特化代码用于研究"这种分工就这样自然生成了。

DNS(直接数值模拟)基础的先端研究

Exascale DNS的时代

🧑‍🎓

最先端的DNS规模有多大?


🎓

截至2024年,全球最大规模的DNS如下。


研究格点数$Re$计算机
通道流 ($Re_\tau = 10,000$)约1000亿$Re_\tau = 10,000$富岳 (RIKEN)
等向湍流 ($Re_\lambda \sim 1300$)约2兆$Re_\lambda \sim 1300$Frontier (ORNL)
翼型DNS ($Re_c = 400,000$)约100亿$Re_c = 400,000$富岳
🎓

Exascale计算机(超$10^{18}$ FLOPS)出现,曾经不可能的高Reynolds数DNS逐渐成为现实。但工业级 $Re \sim 10^7$ 仍差数个数量级。


DNS与AI的融合

🧑‍🎓

DNS数据用于AI的研究怎样?


🎓

在积极推进。主要方向如下。


方向概要代表研究
湍流模型改进用DNS统计量校正RANS模型Duraisamy et al. (2019)
超分辨率粗LES→推断DNS级解像度Fukami et al. (2019)
流场预测形状→流场的端到端预测Thuerey et al. (2020)
代理模型用NN快速近似DNSGeneva-Zabaras (2020)

可压缩性DNS

🧑‍🎓

可压缩流的DNS与非压缩性有什么不同?


🎓

可压缩DNS还要解析声波,格子要求更严格。音声CFL条件 $\Delta t < \Delta x / c$($c$:音速)约束时间步。高马赫数流需要冲击捕捉,对数值格式要求更高。


🧑‍🎓

DNS是"揭示湍流真理"的工具,是RANS和LES模型验证的必需武器。随着计算机发展,适用范围会继续扩大,令人期待。

Coffee Break 闲话

富岳的DNS——$Re_\tau = 10000$ 到达意味着什么

2022年,理化学研究所的富岳超级计算机做通道流DNS达到摩擦Reynolds数 $Re_\tau = 10000$,规模约100亿格点。从这份数据首次得到"真实对数律的精密验证"和"超高Re统计"。值得注意的是,即使这个规模的DNS也未能触及工业应用的Re量级——这说明DNS持续处于"先端研究最前线"的地位。

DNS(直接数值模拟)基础的故障排除

常见问题和对策

🧑‍🎓

DNS计算不顺利时,应该检查什么?


1. 计算发散

🎓

症状:速度场发散、NaN出现


原因:CFL条件违反(时间步太大)、解像度不足(未解析Kolmogorov尺度)、反走样误差


对策

  • 将CFL降至 < 0.5
  • 检查能量谱,看高波数是否有堆积(反走样)
  • 谱方法应用3/2法则de-aliasing
  • 细化网格使得 $k_{\max}\eta > 1.5$($k_{\max}$ 为最大解析波数)

2. 能量谱不满足 $-5/3$ 乘幂律

🧑‍🎓

检查能量谱很重要吗?


🎓

非常重要。 惯性子范围内应再现Kolmogorov的 $-5/3$ 乘幂律 $E(k) \sim k^{-5/3}$,这是DNS品质保证的基本。


常见问题

  • 高波数谱上升(反走样)→ 使用de-aliasing
  • 惯性子范围太窄 → Reynolds数太低、尺度分离不足
  • 谱陡峭下降 → 数值耗散过大(格式精度不足)

3. 统计量与DNS数据库不符

🎓

对策

  • 统计收集时间至少 $20 T_E$($T_E$:大涡翻转时间)
  • 利用空间均质性(通道流用流向+展向空间平均)
  • 确认初期瞬态已排除
  • 边界条件(周期性、无滑移等)正确性再确认

4. 并行计算可扩展性

🧑‍🎓

DNS并行计算要注意什么?


🎓

DNS需要大规模并行,但压力泊松方程求解往往成为瓶颈。谱方法中FFT的全对全通信削弱并行效率。对策是用2D域分割(pencil decomposition)或multigrid法。


🧑‍🎓

DNS的品质管理很关键,能量谱检验是必须的。$k_{\max}\eta$ 或 $-5/3$ 乘幂律核实不能少。

Coffee Break 闲话

DNS的"初始条件地狱"——生成湍流场才是首关

DNS开始遇到的第一个难关往往是初始条件设置。"随便加点噪声到速度场"根本行不通,计算要么发散要么永远是层流。要生成物理意义上的湍流场需要用Isotropic Turbulence Generator(随机模式的傅里叶合成)或Rescaling-Recycling法,这本身就是个小研究课题。DNS研究者之间有个笑话:"DNS难的不是计算本身而是初始化,计算前就卡住的人多着呢"。

相关模拟器

用本领域的交互模拟器来体验理论

模拟器一览

相关领域

热分析V&V·品质保证结构分析
本文的评价
感谢您的回答!
有帮助
想要
更详细
报告
错误
有帮助
0
想要更详细
0
报告错误
0
撰写:NovaSolver Contributors
匿名工程师与AI —— 网站地图
查看个人资料