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

分类: 流体分析(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)提出了曲率修正,将曲率理查森数纳入湍流模型的修正成为当前主流。

数值解法与实现

数值实现的细节

🧑🎓

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


🎓

有几个要点。首先,计算 $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年代的研究方向。

湍流模型的曲率与旋转修正湍流模型的曲率与旋转修正实践指南

实践指南

🧑🎓

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


🎓