可压缩湍流建模
可压缩湍流建模的理论基础
可压缩湍流的基础理论
老师,可压缩湍流与不可压缩湍流有什么区别?k-epsilon模型这样的模型能直接使用吗?
这是个很好的问题。在可压缩湍流中,密度变动变得不可忽视。在不可压缩流中,Reynolds分解 $u_i = \bar{u}_i + u_i'$ 可以直接使用,但在可压缩流中,需要引入Favre平均(密度加权平均)。
Favre平均的定义如下。
使用这个方法,质量守恒方程的形式与不可压缩的情况相同,这样更容易处理。
我明白了,密度的变动被并入到平均中。但具体会出现什么样的附加项呢?
通过Favre平均的RANS方程
Favre平均化后的动量方程具有以下形式。
其中 $u_i'' = u_i - \tilde{u}_i$ 是Favre变动分量。最后一项对应于Reynolds应力张量。
Reynolds应力的部分看起来和不可压缩情况相同。那么湍流能量方程怎么样呢?
Favre平均的湍流动能 $\tilde{k} = \widetilde{u_i''u_i''}/2$ 的输运方程包含不可压缩情况下没有的可压缩性特有项。
这里重要的是压力膨胀相关性 $\Pi_d = \overline{p'\frac{\partial u_k''}{\partial x_k}}$ 和可压缩性耗散 $\varepsilon_c$(膨胀耗散)。
$\Pi_d$ 和 $\varepsilon_c$ 是可压缩性特有的项。这些项在什么情况下会变得很重要?
可压缩性修正模型
当湍流马赫数 $M_t = \sqrt{2k}/a$($a$ 是音速)变大时,这些项开始发挥重要作用。具体来说,当 $M_t > 0.3$ 时,影响就变得明显了。让我介绍一些代表性的可压缩性修正模型。
| 模型 | 可压缩性耗散 | 适用范围 |
|---|---|---|
| Sarkar (1992) | $\varepsilon_c = \alpha_1 \bar{\rho} \varepsilon M_t^2$ | 自由剪切流、混合层 |
| Zeman (1990) | $\varepsilon_c = \alpha_2 \bar{\rho} \varepsilon f(M_t)$ | 包含激波的流动 |
| Wilcox (1992) | $k$-$\omega$ 的可压缩性修正 | 一般可压缩流动 |
| SST可压缩性修正 | $F(M_t)$ 函数修正 | Menter SST模型的扩展 |
在Sarkar模型中,$\alpha_1 \approx 1.0$,能够很好地再现高马赫数混合层的扩散率降低。实验表明,对流马赫数 $M_c$ 增加时混合层成长速率显著降低,要准确捕捉这一点,可压缩性修正是必不可少的。
湍流马赫数超过0.3就要注意。老师,这与超音速射流的噪声预测有关吗?
完全正确。在超音速射流噪声预测中,可压缩湍流的准确建模直接影响声源强度的估计精度。NASA等研究机构在这个领域也在积极进行研究。
可压缩湍流的"密度脉动"——实际上在消耗湍流能量
在亚音速湍流中,密度几乎保持恒定,所以"只需要关注流速的波动"。但当马赫数超过0.3时,密度脉动就不能忽视了。根据Morkovin假说,在低到中等马赫数时,密度脉动的影响很小,但在极超音速领域(马赫5以上),情况就不同了。1990年代,Sarkar等人表明,除了速度耗散外,还存在"压力与膨胀相互作用"导致的能量耗散途径。忽视这一项会导致湍流能量被过度评估,热流量预测会出现较大偏差——这对高速飞行器的热设计来说可能是致命的错误。
可压缩湍流建模的数值计算方法
数值方法的详细说明
用CFD求解可压缩湍流时,数值格式与不可压缩情况是否不同?
差别很大。在可压缩流中,会出现激波这样的不连续面,所以对流项的离散化必须采用迎风格式(upwind scheme)。让我整理一下代表性的格式。
| 格式 | 特点 | 精度 | 可压缩湍流中的注意事项 |
|---|---|---|---|
| Roe | 近似Riemann求解器 | 2阶(配合MUSCL) | 低马赫数过度耗散 |
| AUSM+ | 质量流量分裂型 | 2阶以上 | 低/高马赫数都适用 |
| HLLC | 3波近似Riemann求解器 | 2阶 | 接触不连续解析度良好 |
| 中心差分+人工粘性 | Jameson型 | 2阶 | 适合LES,耗散控制是关键 |
用LES求解可压缩湍流时怎么样?格式的选择会改变吗?
LES/DES中的可压缩湍流
在LES(大涡模拟)中,格子过滤用密度加权的Favre过滤形式进行,称为Favre过滤Navier-Stokes方程。SGS(子网格尺度)模型也需要适应可压缩性。
作为SGS模型,常用Smagorinsky模型的可压缩性扩展或WALE(墙面适应局部涡粘性)模型。另外,DES(分离涡模拟)在壁面附近使用带可压缩性修正的SST模型进行RANS计算,在分离域使用SGS模型进行LES计算。
数值耗散与物理耗散的平衡看起来很重要。网格分辨率有什么建议标准吗?
壁面附近理想情况下 $y^+ < 1$,但在可压缩流中,激波附近的网格密度也很关键。激波厚度不需要达到几个平均自由程的水平,但在激波前后至少要保证5到10个单元。Courant数的管理也很重要,对于显式格式,必须严格遵守 $\text{CFL} < 1$ 的条件。
时间推进法
可压缩流的时间积分方法有专门的吗?
对于需要定常解的RANS,局部时间步进法或隐式LU-SGS方法很有效。对于瞬态的LES/DES,则使用双时间步进法或显式Runge-Kutta法(3阶或4阶)是标准方法。
这是双时间步进的方程,其中 $\tau$ 是伪时间,$\mathbf{R}$ 是空间残差。在保持物理时间二阶精度的同时,用伪时间隐式收敛。
明白了,定常和瞬态需要区别对待。实现中有什么陷阱吗?
最常见的失误是忘记启用可压缩性修正。比如Fluent的k-epsilon模型中,"Compressibility Effects"复选框默认是关闭的。高马赫数混合层的计算中忘记这一点,会大幅过度预测扩散率。
Morkovin假说——为什么湍流模型在音速附近会"变化"
1962年,Mark Morkovin提出了一个大胆的假说:"如果可压缩湍流中密度变动较小,不可压缩湍流模型可以直接使用"。这就是Morkovin假说。实际上,在马赫5以下时这个假说还算有效,但超过马赫5时,密度变动变得不可忽视,假说就崩溃了。业界经常听到"不知为什么SST模型就收敛了"的说法,但这可能只是因为计算恰好在Morkovin假说成立的速度范围内。
可压缩湍流建模的实务应用
可压缩湍流建模的实际应用指南
老师,开始进行可压缩湍流分析时,能从头到尾教我流程吗?
好的,我以超音速射流混合层分析为例,具体进行说明。
分析流程(超音速射流混合示例)
1. 问题定义:射流马赫数 $M_j = 1.5$,全温 $T_0 = 600$ K,喷嘴出口直径 $D = 50$ mm
2. 计算区域:上游 $5D$,下游 $30D$,径向 $10D$
3. 网格:在喷嘴唇部附近,分辨率应小于剪切层厚度的1/10。主要采用六面体,使用O-H型拓扑
4. 湍流模型选择:RANS→SST+可压缩性修正,非定常→DES/DDES
5. 边界条件:入口采用pressure-inlet(全压、全温指定),出口采用pressure-outlet
湍流模型的选择有什么标准吗?RANS和LES的区别在哪里?
湍流模型选择指南
按用途分类是这样的。
| 用途 | 推荐模型 | 理由 |
|---|---|---|
| 设计阶段的概略评价 | SST k-omega + 可压缩性修正 | 计算成本低,精度足够 |
| 射流噪声预测 | DDES或IDDES | 需要涡旋的非定常行为 |
| 激波/湍流干涉 | WMLES或ZDES | 壁面附近精度至关重要 |
| 含燃烧的流动 | Flamelet + LES | 湍流-化学反应相互作用 |
网格 $y^+$ 值设置多少比较好?马赫数会影响吗?
分辨壁面时 $y^+ \approx 1$ 是基本要求,但在可压缩流中,壁面摩擦速度 $u_\tau$ 的估计与不可压缩情况不同。高温壁面粘性变大,所以按不可压缩公式估算的 $y^+$ 值往往会偏大。使用Van Driest变换的壁面律时,$y^+ < 50$ 左右也可以。
初始条件和收敛技巧
听说高马赫数计算很难收敛,有什么诀窍吗?
重要的几点我列出来。
- CFL数逐步增加:初期从CFL=1开始,等残差开始下降后逐步增加到CFL=10~100
- 初始场设置:用等熵关系根据主流条件设置初始场,比全区域均匀流初始化的收敛速度要快
- under-relaxation:密度基求解器中谨慎设置Courant数,压力基求解器中设置under-relaxation因子
- FMG(完全多重网格)初始化:Fluent提供此功能。从粗网格逐级补插得到初始场
实际工作中最容易踩坑的地方在哪?
从经验来看,最常见的是远场边界条件的反射问题。在可压缩流中,边界处激波反射导致非物理解出现。使用非反射边界条件(NRBC)或海绵层很重要。
超音速发动机的湍流建模,现场怎么应对
在可压缩湍流的实务中,最麻烦的是"湍流模型的标定在不同速度下不能通用"。马赫数上升时,可压缩性修正项(如Sarkar修正)变得重要,但系数怎么设置是case-by-case的问题。做火箭发动机燃烧室分析的工程师讲,有个案例中不加修正计算的湍流能量接近实验值的2倍。"先不加修正跑一遍,与实验值对比后再启用修正"已成为现场的标准流程。
可压缩湍流建模的软件比较
商用工具的可压缩湍流支持
能处理可压缩湍流的CFD软件各有什么特点?
比较一下主流CFD求解器的可压缩湍流相关功能。
| 功能 | ANSYS Fluent | STAR-CCM+ | OpenFOAM | CFD++ |
|---|---|---|---|---|
| Sarkar可压缩性修正 | 支持 | 支持 | 需要UDF | 支持 |
| SST可压缩性修正 | 支持 | 支持 | 支持 | 支持 |
| DDES/IDDES | 支持 | 支持 | 支持 | 支持 |
| WMLES | 支持(v2024+) | 支持 | 支持 | 有限支持 |
| 密度基求解器 | 支持 | 耦合求解器 | rhoCentralFoam等 | 标准配置 |
| AMR(自适应网格细化) | 支持 | 支持 | 有限支持 | 支持 |
Fluent和STAR-CCM+哪个更适合可压缩湍流?
Ansys Fluent的设置
Fluent中可压缩流的基础是选择密度基求解器(density-based solver)。设置的要点如下。
- Solver:Density-Based, Implicit
- Flux Type:Roe-FDS或AUSM
- Gradient:Green-Gauss Node Based(提高精度)
- Turbulence:SST k-omega → 将Compressibility Effects设置为ON
- 使用DDES时:基于SST启用DES选项,Shield Function = yes
OpenFOAM中可压缩湍流应该用哪个求解器?
OpenFOAM的实现
OpenFOAM为可压缩流提供了多个求解器。
- rhoCentralFoam:中心差分基础,采用KNP(Kurganov-Noelle-Petrova)格式。适合激波捕捉
- rhoSimpleFoam:定常可压缩RANS。采用SIMPLE算法族
- rhoPimpleFoam:非定常可压缩。采用PIMPLE(PISO+SIMPLE)算法。用于DES/LES
- sonicFoam:跨音速到超音速求解器,显式格式
可压缩性修正在turbulenceProperties字典文件中设置。例如使用Sarkar修正时,需要在kEpsilon模型的coeffs子字典中添加 alphaK1 1.0; 这样的系数,或创建自定义的turbulence model类。
NASA等研究机构用什么代码?
NASA主要使用FUN3D(非结构网格)和OVERFLOW(重叠网格)。JAXA开发了FaSTAR(非结构网格可压缩求解器)。这些代码的优势在于高马赫数精度经过充分验证。
商用工具和研究代码怎么选择?
设计工作中,商用工具的图形界面和技术支持直接关系到生产效率。而需要研究级精度或新湍流模型的实现、验证时,研究代码或OpenFOAM的灵活性更占优势。理想情况是两种都能使用。
商用工具的"可压缩湍流选项"并不都一样
用Fluent、CFD++和OpenFOAM做"用k-ω SST加可压缩性修正"计算,结果并不会相同。这是因为各求解器采用的修正项实现方式不同(Wilcox修正、Sarkar修正还是Zeman修正)。特别是在马赫数超过1.5的超音速射流分析中,求解器间的差异在激波后的湍流强度中可能达到10~20%。选择工具时养成"仔细查规格书,看采用的是哪种修正模型"的习惯,能避免后期大坑。
可压缩湍流建模的先进研究
先进话题
可压缩湍流研究现在朝什么方向发展?
大体分三个方向。一是DNS(直接数值模拟)来深化物理认识,二是机器学习改进湍流模型,三是壁面模型LES(WMLES)的精度提升。
DNS对可压缩湍流的理解
随着超算发展,现在可以进行可压缩湍流通道流的DNS计算,雷诺数 $Re_\tau \sim 1000$,马赫数 $M_{bulk} \sim 4$ 的情况已经可行。这使Morkovin假说(密度波动不影响湍流结构)的适用限制变得清晰。
DNS结果表明,$M > 3$ 时该假说开始失效。也就是说,高马赫数壁面湍流中,仅凭传统的可压缩性变换(Van Driest变换)是不够的。
这样的话,壁面律也需要修正吗?
没错。最近提出的Trettel-Larsson变换考虑了温度和密度波动,据说对 $M \sim 5$ 有效。
通过机器学习改进湍流模型
最近什么都用AI,湍流模型也能用吗?
可以。用Physics-Informed Neural Network(PINN)或Neural ODE学习RANS模型的可压缩性修正项的研究很活跃。还有从DNS数据直接学习Reynolds应力张量异方性的方法(张量基神经网络,TBNN)。
但也有难点。学习数据范围外的泛化性能,以及物理实现条件(Schumann三角形约束)的保证都困难。目前最实用的还是"模型系数调优支持"这个水平。
壁面模型LES(WMLES)
在高雷诺数可压缩壁面湍流中,LES的网格成本按 $Re^{13/7}$ 增长。这对工业界 $Re \sim 10^7$ 的情况来说现实不可行。所以WMLES变得很重要。
WMLES是在壁面附近用模型,外部用LES对吧?
对。壁面附近($y^+ < 50$ 左右)用代数壁模或ODE壁模替代,仅外层用LES求解。可压缩WMLES需要同时考虑壁面摩擦的温度依赖性和压力梯度效应。最近的iWMLES(集成WMLES)方法从RANS方程的薄层近似而不是壁律来求壁面应力,前景看好。
这个领域还在不断进展。5年后会不会更容易用?
GPU计算进步和模型改进,预计2030年左右WMLES就能成为设计工具。NASA的"CFD Vision 2030"中也把WMLES实用化列为重要目标。
可压缩湍流的"Favre平均"——为什么要加密度权重
通常RANS用Reynolds平均(简单时间平均),但可压缩流中密度变动,只对速度做时间平均的话方程会充满可怕的相关项。所以1965年法国研究者Flavio Favre提出了"用密度加权平均",即Favre平均。这样方程就简洁得多了。物理上可理解为"以质量流量为基准的平均"。在超音速极超音速CFD代码中Favre平均是标准配置,但后处理可视化速度场时会发现与Reynolds平均有微妙差异,容易让工程师困惑。
可压缩湍流建模的故障排除
可压缩湍流建模的故障排除
老师,可压缩湍流计算常见的陷阱有哪些?
把实务中经常遇到的问题和对策整理给你。
1. 混合层的增长率过大
表现:超音速混合层的扩散角比实验值大2~3倍
原因:未启用可压缩性修正。标准k-epsilon和k-omega是按不可压缩流标定的,无法预测可压缩效应(成长率抑制)。
对策:
- 启用Sarkar或Zeman可压缩性修正
- Fluent中:Viscous Model → Options → Compressibility Effects打上勾
- 确认对流马赫数 $M_c = (U_1 - U_2)/(a_1 + a_2)$。$M_c > 0.3$ 时修正必须启用
只要勾个复选框,结果就能大幅改善啊。
2. 激波附近湍流量的非物理性增加
表现:垂直激波正后方,湍流动能 $k$ 出现数倍的尖峰
原因:激波引起的压力梯度被湍流生成项 $P_k$ 过度评估。生成项限制器未设置。
对策:
- 启用SST k-omega的Production Limiter:$P_k = \min(P_k, C_{lim} \cdot \bar{\rho} \beta^* k \omega)$,$C_{lim} = 10$
- Fluent中使用"Production Limiter"或"Kato-Launder modification"
- 细化激波附近网格,减小数值激波厚度
3. 密度基求解器的发散
计算开始不久就NaN了,经常遇到…
表现:计算开始后数十步,残差发散,出现NaN
原因和对策:
- 初始场不恰当:全区域用M=0静止场初始化,超音速入口处会产生不匹配,初期产生激波导致发散→用等熵关系设置恰当的初始场
- CFL数太大:初期从CFL = 0.5~1.0开始,逐步增加
- 边界条件不匹配:超音速出口用pressure outlet,背压可能与流场矛盾→超音速出口用外推(extrapolation)边界条件
4. DES计算中出现GID(网格诱导分离)
表现:边界层在没有物理根据的地方分离。特别在附着流区域出现。
原因:DES中RANS→LES切换在边界层内发生,应该用RANS求解的区域因为LES网格分辨率不足而分离。
对策:
改用DDES就保险吗?
多数情况下可以,但网格过渡区(RANS→LES)的设计依然重要。Log-layer mismatch(对数层不匹配)问题还没完全解决,一定要验证壁面摩擦系数和速度剖面。
可压缩湍流陷阱真的多。我编个检查清单吧。
好主意。最少要检查这四点:湍流马赫数确认、可压缩性修正启用、生成项限制器设置、边界条件一致性检验。每次都养成这个习惯。
可压缩湍流收敛缓慢的真实原因
可压缩流湍流计算不收敛时,首先要检查"湍流强度初值是否恰当"。初值设太高,湍流粘性过剩,一直不稳定。太低的话,激波附近湍流能量会瞬间爆炸导致发散。实务中从"自由流湍流强度0.1~1%、涡粘性比1~10"开始试,边观察边调是经验法则。还有个常见原因是壁面Y+设置错误。用低雷诺数模型却在Y+=30以上的网格上计算,壁面附近湍流生成项计算不对,残差就一直降不下来。
相关话题
更详细
错误