湍流模型的曲率与旋转修正

分类: 流体解析(CFD) | 综合版 2026-04-06
CAE visualization for curvature correction theory - technical simulation diagram
乱流モデルの曲率・回転補正

理论与物理

概述

🧑‍🎓

老师!旋涡流的模拟结果和实验对不上,用那个曲率·旋转修正能修正吗?


🎓

很好的着眼点。标准的涡粘性模型(k-epsilon、k-omega SST、SA)假设了各向同性的涡粘性,所以无法正确捕捉流线曲率或系统旋转引起的湍流增减。曲率·旋转修正(Curvature Correction, CC)就是为了修正这个缺点的附加项。


🧑‍🎓

具体在什么样的流动中会出现问题呢?


🎓

代表性的有这些流动。

  • 旋风分离器或旋流燃烧器等旋涡流
  • 涡轮叶栅间的二次流
  • U型管内的弯曲流
  • 旋转机械(风扇、压缩机)机壳内的流动

凹面侧由于离心力不稳定导致湍流增大,凸面侧则因稳定化而湍流受到抑制。标准模型无法预测这种非对称性。


控制方程

🧑‍🎓

修正具体是怎么改变模型的方程呢?


🎓

Spalart-Shur旋转·曲率修正(用于SA-RC、SST-RC)中,引入了作用于生成项的乘数 $f_{rotation}$。


$$ f_{rotation} = (1 + c_{r1}) \frac{2 r^*}{1 + r^*} \left[1 - c_{r3} \tan^{-1}(c_{r2} \tilde{r})\right] - c_{r1} $$

这里的 $r^*$ 和 $\tilde{r}$ 分别是根据应变率张量 $S_{ij}$ 和旋转率张量 $\Omega_{ij}$ 构成的无量纲参数。


$$ r^* = \frac{S}{\Omega}, \quad \tilde{r} = 2\Omega_{ik}S_{jk}\frac{D S_{ij}}{D t}\frac{1}{\Omega D^2} $$

常数 $c_{r1}=1.0$、$c_{r2}=12.0$、$c_{r3}=1.0$ 是标准值。最终 $f_{rotation}$ 会被截断。


$$ f_{rot} = \max\left(\min(f_{rotation},\; 1.25),\; 0\right) $$

🧑‍🎓

只是对生成项做乘法吗?


🎓

是的。对于SST-RC,将k方程的生成项 $P_k$ 替换为 $\tilde{P}_k = P_k \cdot f_{rot}$。在凸面壁处 $f_{rot}<1$ 从而抑制湍流生成,在凹面壁处 $f_{rot}>1$ 则增强生成。Spalart-Allmaras模型也同样修正SA方程的生成项。


🧑‍🎓

这样旋涡流的预测就能变好了吧。


🎓

会改善,但并非万能。因为修正是仅基于局部量计算的,对于旋转效应非局部累积的情况(例如:长涡管)存在局限。像RSM(Reynolds Stress Model)那样对各应力分量分别进行输运的方法在物理上更精确,但计算成本更高。


Coffee Break 闲谈

曲率修正湍流模型——“弯曲流动比直流动更不易紊乱”的原因

流线弯曲的流动(曲线管·旋涡流)中,壁面曲率会强烈调制湍流结构。凸面侧(因离心力稳定化)湍流被抑制,凹面侧(不稳定化)则被促进。Taylor-Görtler涡(纵向涡)在凹面侧产生也是这种不稳定性的表现。标准k-ε或k-ω SST在标量输运方程中没有显式考虑这种曲率效应,因此对旋涡流、弯曲管、旋风的预测精度较低。Speziale(1987)和Rothe/Spalart(1997)提出了曲率修正,将曲率理查森数纳入湍流模型的修正成为当前主流。

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

数值解法与实现

数值实现的细节

🧑‍🎓

在求解器中实现曲率修正时,数值上有什么需要注意的吗?


🎓

有几个要点。首先,计算 $f_{rot}$ 时包含 $DS_{ij}/Dt$ 这个应变率的物质导数,所以需要评估非定常项和对流项。即使是定常计算,也可以从伪时间步长的信息近似得到,但会影响精度。


$f_{rotation}$ 的计算步骤

🧑‍🎓

请告诉我具体的步骤。


🎓

在每个单元中计算以下内容。


1. 从速度梯度张量 $\partial u_i / \partial x_j$ 计算出应变率 $S_{ij}$ 和旋转率 $\Omega_{ij}$

2. 计算 $S = \sqrt{2S_{ij}S_{ij}}$、$\Omega = \sqrt{2\Omega_{ij}\Omega_{ij}}$

3. 用与前一时间步的差分近似应变率的物质导数 $DS_{ij}/Dt$

4. 计算出无量纲参数 $r^*$ 和 $\tilde{r}$

5. 计算 $f_{rotation}$,并截断到 $[0, 1.25]$


🧑‍🎓

为什么需要截断呢?


🎓

$f_{rot}$ 为负会导致生成项为负(非物理的湍流消失),超过1.25则会引起过度的湍流生成导致数值不稳定。截断是安全装置。


与离散格式的兼容性

🧑‍🎓

对流格式用什么好呢?


🎓

曲率修正本身是对湍流模型生成项的修正,因此独立于动量方程或湍流方程的离散格式。但是,旋涡流中数值耗散会引起旋涡衰减,因此应使用二阶精度以上的格式(Bounded Central Difference、LUST等)。一阶迎风格式会过度衰减旋涡。


参数推荐设置备注
动量的离散Bounded Central 或 LUST抑制旋涡衰减
湍流量的离散二阶迎风格式稳定性与精度的平衡
时间离散二阶向后差分非定常计算时
$f_{rot}$ 的截断$[0, 1.25]$数值稳定性

OpenFOAM中的实现示例

🧑‍🎓

在OpenFOAM中怎么设置呢?


🎓

constant/turbulenceProperties 中启用 curvatureCorrection 标志。


```

RAS

{

RASModel kOmegaSST;

turbulence on;

curvatureCorrection yes;

printCoeffs on;

}

```


OpenFOAM的kOmegaSST模型已内置Spalart-Shur修正。无需额外的源文件。


🧑‍🎓

只需一个设置就能启用,那很方便啊。


🎓

但是,必须验证结果是否合理。要确认旋涡数与实验数据是否一致,壁面摩擦系数分布如何变化。


Coffee Break 闲谈

曲率修正的数值实现——Spalart-Shur修正系数与β因子

Spalart-Shur(1997)的曲率修正,是通过对湍流生成项乘以“修正系数r*和r(系数)”来纳入曲率·旋转的影响。修正系数由流线曲率张量与涡量张量的比值计算得出,在凸面(稳定)降低生成率,在凹面(不稳定)提高生成率。该修正作为k-ω SST模型的应用(SSTcc)被实现在许多商用CFD中。但问题是,修正系数的调整系数(Cr1, Cr2)并非基于物理的普适常数,存在案例依赖性。使用机器学习(ML)进行曲率修正系数的“数据驱动型调参”是2020年代的研究方向。

迎风格式(Upwind)

1阶迎风:数值扩散大但稳定。2阶迎风:精度提高但有振荡风险。高雷诺数流动中必备。

中心差分(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是一般的初始值。发散时降低松弛因子。收敛后可提高以加速。

非定常计算的内部迭代

在每个时间步内迭代直至收敛到定常解。内部迭代次数:5~20次为参考值。若残差在时间步间波动,则需重新审视时间步长。

SIMPLE法的比喻

SIMPLE法是“交替调整”的方法。先假设求出速度(预测步),然后根据该速度修正压力以满足质量守恒(修正步),再用修正后的压力修正速度——重复这种接球游戏逐步逼近正确答案。类似于两人调整架子水平的作业:一人调整高度,另一人调整平衡,如此反复交替。

迎风格式的比喻

迎风格式是“站在河流中重视上游信息”的方法。站在河里的人看下游也无法知道水的来源——这反映了上游信息决定下游的物理规律。精度虽为一阶,但能正确捕捉流动方向,因此稳定性高。

实践指南

实践指南

🧑‍🎓

请告诉我在实际项目中使用曲率修正时的工作流程。


🎓
関連シミュレーター

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

シミュレーター一覧
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ