湍流模型的曲率与旋转修正
湍流模型的曲率与旋转修正的理论基础
概述
老师!旋涡流的模拟结果和实验对不上,用那个曲率·旋转修正能修正吗?
很好的着眼点。标准的涡粘性模型(k-epsilon、k-omega SST、SA)假设了各向同性的涡粘性,所以无法正确捕捉流线曲率或系统旋转引起的湍流增减。曲率·旋转修正(Curvature Correction, CC)就是为了修正这个缺点的附加项。
具体在什么样的流动中会出现问题呢?
代表性的有这些流动。
- 旋风分离器或旋流燃烧器等旋涡流
- 涡轮叶栅间的二次流
- U型管内的弯曲流
- 旋转机械(风扇、压缩机)机壳内的流动
凹面侧由于离心力不稳定导致湍流增大,凸面侧则因稳定化而湍流受到抑制。标准模型无法预测这种非对称性。
控制方程
修正具体是怎么改变模型的方程呢?
Spalart-Shur旋转·曲率修正(用于SA-RC、SST-RC)中,引入了作用于生成项的乘数 $f_{rotation}$。
这里的 $r^*$ 和 $\tilde{r}$ 分别是根据应变率张量 $S_{ij}$ 和旋转率张量 $\Omega_{ij}$ 构成的无量纲参数。
常数 $c_{r1}=1.0$、$c_{r2}=12.0$、$c_{r3}=1.0$ 是标准值。最终 $f_{rotation}$ 会被截断。
只是对生成项做乘法吗?
是的。对于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)那样对各应力分量分别进行输运的方法在物理上更精确,但计算成本更高。
曲率修正湍流模型——“弯曲流动比直流动更不易紊乱”的原因
流线弯曲的流动(曲线管·旋涡流)中,壁面曲率会强烈调制湍流结构。凸面侧(因离心力稳定化)湍流被抑制,凹面侧(不稳定化)则被促进。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修正。无需额外的源文件。
只需一个设置就能启用,那很方便啊。
但是,必须验证结果是否合理。要确认旋涡数与实验数据是否一致,壁面摩擦系数分布如何变化。
曲率修正的数值实现——Spalart-Shur修正系数与β因子
Spalart-Shur(1997)的曲率修正,是通过对湍流生成项乘以“修正系数r*和r(系数)”来纳入曲率·旋转的影响。修正系数由流线曲率张量与涡量张量的比值计算得出,在凸面(稳定)降低生成率,在凹面(不稳定)提高生成率。该修正作为k-ω SST模型的应用(SSTcc)被实现在许多商用CFD中。但问题是,修正系数的调整系数(Cr1, Cr2)并非基于物理的普适常数,存在案例依赖性。使用机器学习(ML)进行曲率修正系数的“数据驱动型调参”是2020年代的研究方向。
湍流模型的曲率与旋转修正湍流模型的曲率与旋转修正实践指南
实践指南
请告诉我在实际项目中使用曲率修正时的工作流程。