Smagorinsky模型 -- 理论与控制方程
Smagorinsky模型 -- 理论与控制方程的理论基础
Smagorinsky模型概述
先生,Smagorinsky模型是最基本的SGS模型吧?
没错。这是1963年由Joseph Smagorinsky为大气环流模型提出的,可以说是LES中SGS模型的始祖。思想很简单,就是从局部应变速率大小和滤波宽度来计算SGS涡粘性。
基本式推导
具体的数学公式是怎样的?
在Smagorinsky模型中,SGS涡粘性 $\nu_{sgs}$ 定义如下。
其中 $C_s$ 是Smagorinsky常数,$\Delta$ 是滤波宽度,$|\bar{S}|$ 是滤波后应变速率张量的大小。
从量纲分析来看也说得通。$\nu_{sgs}$ 是 $[长度^2/时间]$,$(C_s \Delta)^2$ 是 $[长度^2]$,$|\bar{S}|$ 是 $[1/时间]$。
你观察得很仔细。实际上这个模型也可以理解为混合长理论的LES版本。在RANS的Prandtl混合长理论中 $\nu_t = l_m^2 |S|$,而这里只是把混合长 $l_m$ 替换成滤波宽度 $C_s \Delta$,结构完全相同。
Smagorinsky常数 $C_s$ 的值
$C_s$ 的值怎么确定?
根据Lilly的理论分析(1967年),假设等向性湍流,与Kolmogorov能量谱 $E(k) = C_K \varepsilon^{2/3} k^{-5/3}$ 相匹配,可得
(其中 $C_K \approx 1.6$)。但实际应用中 $C_s = 0.1$ 到 $0.2$ 这个范围比较常见。
流动性质不同时最优值会改变?
正是这样。等向性湍流中 $C_s \approx 0.17$ 比较合适,但在剪切流中,如果不把 $C_s$ 降到 $0.1$ 左右就会产生过度散逸。壁面附近需要更小的值,通常采用Van Driest衰减函数让 $C_s \to 0$。
这里 $A^+ \approx 25$。这种「必须根据流动来调整 $C_s$」的缺点,正是后来开发动态Smagorinsky模型的动机。
Smagorinsky模型的优缺点
能总结一下优缺点吗?
| 优点 | 缺点 |
|---|---|
| 实现极其简单 | $C_s$ 是问题相关参数 |
| 计算成本低 | 壁面附近散逸过度(需要Van Driest衰减) |
| 数值稳定(总是 $\nu_{sgs} \geq 0$) | 在层流/过渡区域也产生散逸(只要 $|\bar{S}| \neq 0$ 就 $\nu_{sgs} > 0$) |
| 历史悠久,验证案例丰富 | 无法表现逆能量级联(backscatter) |
Smagorinsky模型诞生的原由——气象预报计算成本问题
1963年Joseph Smagorinsky发表的论文,本来是针对数值天气预报研究。当时,用大气大环流模型的网格分辨率根本无法计算比网格更细的湍流尺度。因此「用局部涡粘性来代表小尺度效应」的想法应运而生。Smagorinsky常数 $C_s \approx 0.17$ 是根据大气边界层数据标定的,直接套用到引擎或建筑物绕流分析,在某种意义上是有些草率的。
Smagorinsky模型 -- 理论与控制方程的数值计算方法
实现的细节
把Smagorinsky模型编程实现时,具体步骤是什么?
每个时间步、每个单元要执行以下步骤。
1. 计算滤波速度梯度 $\partial \bar{u}_i / \partial x_j$
2. 计算应变速率张量 $\bar{S}_{ij}$
3. 计算 $|\bar{S}| = \sqrt{2\bar{S}_{ij}\bar{S}_{ij}}$
4. 计算滤波宽度 $\Delta$(如单元体积立方根)
5. 计算SGS涡粘性 $\nu_{sgs} = (C_s \Delta)^2 |\bar{S}|$
6. 作为有效粘性 $\nu_{eff} = \nu + \nu_{sgs}$ 代入动量方程的扩散项
完全不需要额外的传输方程,实现非常简洁。
滤波宽度的计算方法
滤波宽度 $\Delta$ 的计算方法有多种吧?
是的。主要的滤波宽度定义如下。
| 定义 | 公式 | 特征 |
|---|---|---|
| 体积基 | $\Delta = V_{cell}^{1/3}$ | 最通用,适合非结构网格 |
| 最大边长 | $\Delta = \max(\Delta x, \Delta y, \Delta z)$ | 保守,高纵横比时易过大 |
| 几何平均 | $\Delta = (\Delta x \cdot \Delta y \cdot \Delta z)^{1/3}$ | 结构网格常用 |
纵横比大的单元(如壁面附近的棱柱层)中,滤波宽度的定义对结果影响很大。
OpenFOAM中的实现
用OpenFOAM如何设置Smagorinsky模型?
在 constant/turbulenceProperties 中这样写。
```
simulationType LES;
LES
{
LESModel Smagorinsky;
turbulence on;
printCoeffs on;
delta cubeRootVol;
SmagorinskyCoeffs
{
Ck 0.094;
Ce 1.048;
}
}
```
OpenFOAM中采用 $C_k$ 和 $C_e$ 而非 $C_s$,关系是 $C_s = C_k^{3/4}/\pi$。
ANSYS Fluent中的设置
Fluent中呢?
在Fluent的Viscous Model对话框中选择LES,然后在SGS模型中选择Smagorinsky-Lilly Model。Smagorinsky常数缺省值是 $C_s = 0.1$,可根据需要修改。壁面附近的Van Driest衰减会自动应用,无需特别设置。
数值稳定性考虑
用Smagorinsky模型时有什么数值稳定性的注意事项?
Smagorinsky模型因为总是 $\nu_{sgs} \geq 0$ 成立,数值上极其稳定。这是一大优点,对初学者特别友好——可以放心地直接用。反过来说,永远无法表现能量的逆级联(小尺度向大尺度的能量传递),这是模型本身的物理限制。
稳定性和物理准确度之间是有取舍的。
完全正确。只要正确选择 $C_s$ 的值并恰当设置壁面衰减,Smagorinsky模型对多数工程问题就能给出充分准确的结果。
"仅需5行"的SGS模型实现
Smagorinsky模型的实现惊人地简洁。只要计算应变速率张量 $\bar{S}_{ij}$,求其第二不变量 $|\bar{S}|$,然后把 $(C_s \Delta)^2 |\bar{S}|$ 作为涡粘性加到扩散项——完成。OpenFOAM源代码看起来不过数十行。即便如此,它还能在60多年里保持实用性,这正是因为计算成本低廉和实现简单的绝对优势。简洁即是力量。
Smagorinsky模型 -- 理论与控制方程的实务应用
应用场景判断
Smagorinsky模型适合哪些场景应用?
以下场景比较有效。
- 完全湍流的自由剪切流:混合层、喷射流、尾流等。$C_s \approx 0.1$ 到 $0.17$
- 粗网格试算:先用Smagorinsky验证流程,再考虑高级模型
- 数值稳定性优先:复杂外形等易发散场合,需要稳定求解时
相反,这些场景应考虑其他模型。
- 过渡流:层流向湍流转变,Smagorinsky散逸过度会延迟过渡
- 壁面附近流动很重要:不加Van Driest衰减,壁面粘性过度
- 旋转、曲率强的流:即使纯剪切也会产生散逸,不太合适
$C_s$ 的敏感性分析
改变 $C_s$ 值对结果影响多大?
有研究把 $C_s$ 从0.065改到0.20做了管道流LES,报告如下趋势。
| $C_s$ | 平均速度分布 | 湍流强度 | 壁面摩擦 |
|---|---|---|---|
| 0.065 | 接近DNS/实验 | 略大 | 略大 |
| 0.10 | 良好 | 良好 | 良好 |
| 0.15 | 对数层偏大 | 偏小 | 偏小 |
| 0.20 | 明显偏离 | 大幅偏小 | 大幅偏小 |
$C_s$ 越大,SGS粘性越强,湍流波动被抑制,流动趋向层流。
基准问题的验证
有什么基准问题可以验证Smagorinsky模型?
有几个经典基准问题。
- 管道流($Re_\tau = 180, 395, 590$):与Kim, Moin & Moser的DNS数据比对
- 等向湍流衰减:与CBC数据集比对
- 后向台阶流:验证再附着点位置
- 圆柱绕流($Re = 3900$):阻力系数、Strouhal数、尾流分布
通过这些问题系统验证,能确认代码设置和网格的合理性。
应该先在管道流这样有充足数据的问题上做验证,再上真正应用。
正确。尤其是LES初学者,强烈建议在 $Re_\tau = 180$ 的管道流上练习。网格分辨率的影响、$C_s$ 的敏感性、统计采样方法等基本技能都在这里积累。掌握之后再做复杂应用。
"$C_s = 0.1$ 还是 $0.17$"的常数争议
Smagorinsky模型最先遇到的坎儿就是「到底用多少」这个问题。教科书说「大气边界层取0.17,管道流用0.1」,但自己的问题呢?实务中燃烧室常用0.1,建筑风环境用0.12,但这些都只是经验。"定数经过调参就精度高了"——这其实不是在验证模型,而是在拟合定数。这正是后来开发动态模型的背景。
Smagorinsky模型 -- 理论与控制方程的软件比较
各求解器中Smagorinsky模型的实现差异
Smagorinsky模型在各求解器中是不是都一样运作?
基本方程相同,但实现细节有差异。
| 项目 | ANSYS Fluent | STAR-CCM+ | OpenFOAM |
|---|---|---|---|
| 缺省 $C_s$ | 0.1 | 0.1 | 0.094 ($C_k$ 基) |
| Van Driest衰减 | 自动应用 | 自动应用 | 有时需手动设置 |
| 滤波宽度定义 | 单元体积立方根 | 单元体积立方根 | 可选cubeRootVol等 |
| 壁面处理 | Wall-Adapting可用 | Wall-Adapting可用 | nutkWallFunction等 |
缺省 $C_s$ 值在求解器间不完全一样。
OpenFOAM用 $C_k$ 和 $C_e$ 体系,缺省 $C_k = 0.094$, $C_e = 1.048$,换算成Smagorinsky定数约 $C_s \approx 0.167$。Fluent和STAR-CCM+的 $C_s = 0.1$ 是不同的,跨求解器比对结果时要注意这点。
求解器选择的要点
Smagorinsky模型做LES时,求解器怎么选?
Smagorinsky本身所有求解器都有,模型以外的因素更关键。
- Fluent:GUI易用,NIT A等加速功能吸引人
- STAR-CCM+:多面体网格与优化算法搭配,自动网格功能齐全
- OpenFOAM:$C_s$ 和 $\Delta$ 定义可自由定制,大规模并行成本低
结论是,Smagorinsky模型就是「LES的入门」型位置?
完全同意。基础学习、快速试算都很合适。但一旦认识到它的局限性,需要更高准确度的场景,就该考虑升级到动态Smagorinsky或WALE模型。
为什么商业求解器不把Smagorinsky作默认选项
ANSYS、Simcenter等主流商用求解器的LES缺省配置中,往往选的是动态Smagorinsky或WALE,而非古典Smagorinsky。理由很现实:定数需要手动调参,如果用户就这样跑出怪结果,供应商对错负责不清。商用工具的设计考量包括"出了问题好支持",这是纯学术工具不需要顾虑的。
Smagorinsky模型 -- 理论与控制方程的前沿研究
Smagorinsky模型改进的历史
Smagorinsky模型的缺点如何克服的?有什么改进历史?
Smagorinsky的发展史就是SGS模型本身的进化史。主要里程碑如下。
| 年份 | 进展 | 研究者 |
|---|---|---|
| 1963 | 原版Smagorinsky模型 | Smagorinsky |
| 1967 | Lilly理论导出 $C_s$ | Lilly |
| 1975 | Van Driest壁面衰减函数 | Moin & Kim |
| 1991 | 动态Smagorinsky(Germano手续) | Germano et al. |
| 1992 | Lilly改进动态模型 | Lilly |
| 1999 | 拉格朗日动态模型 | Meneveau et al. |
| 2000 | WALE模型 | Nicoud & Ducros |
结构模型的比较
涡粘型以外还有别的SGS模型吗?
有。结构模型(structural model)是对SGS应力张量结构本身建模的类型。代表性的是Bardina的尺度相似模型(scale-similarity model):
用测试滤波 $\hat{\cdot}$ 来逼近SGS应力。这类模型能很好地捕捉SGS应力的结构,但单独使用会因散逸不足而数值不稳定。通常混合型(把它和Smagorinsky结合)比较实用。
最新研究动向
Smagorinsky模型相关最近有什么新研究?
2020年代的研究热点是机器学习来优化Smagorinsky定数。从DNS数据学习最优的局部 $C_s(\mathbf{x}, t)$,精度比传统动态模型还高。另外,把 $C_s$ 看成随机变量的随机SGS模型也受关注,它能以统计方式表现能量反向级联。
60多年前的模型现在还在研究,Smagorinsky的影响力真大。
是啊。简洁和物理直观,这是Smagorinsky模型最强的武器。新模型的性能评价标准中,总少不了和Smagorinsky的对比。
"过度散逸"问题——Smagorinsky的根本缺陷
Smagorinsky模型最大的软肋是能量级联永远只能「正向」(大→小尺度)进行。现实湍流中存在逆向级联(小→大),但古典Smagorinsky完全无法模拟。结果在过渡区和剪切层产生过度散逸,湍流发展滞后。这就是动态模型和ADM(近似逆滤波)开发的初衷。
Smagorinsky模型 -- 理论与控制方程的故障排除
Smagorinsky模型特有的问题和对策
用Smagorinsky做LES容易碰到什么问题?
常见问题有这些。
1. 乱流强度预测偏低
速度波动的RMS值比实验和DNS小得多。
最可能是 $C_s$ 太大。如果用了 $C_s = 0.2$,试试降到 $C_s = 0.1$。还有网格太粗的情况也会这样。检查一下SGS粘性与分子粘性的比值 $\nu_{sgs}/\nu$,超过 $O(100)$ 说明网格太粗需要加密。
2. 壁面附近流动层流化
壁面附近速度分布看起来像层流抛物线。
Van Driest衰减可能没有正确起作用。检查清单:
- 壁面距离 $y$ 是否正确计算
- $y^+$ 的数值范围是否合理
- 衰减函数常数 $A^+ = 25$ 是否被使用
Fluent和STAR-CCM+自动应用,但OpenFOAM要特别设置。
3. 过渡捕捉不准
层流向湍流的过渡比实验滞后得多。
这是Smagorinsky模型的本质限制。只要 $|\bar{S}| \neq 0$,即使在层流区也会产生 $\nu_{sgs} > 0$ 的人工散逸。对策包括:
- 改用动态Smagorinsky:层流区自动 $C_s \to 0$
- 改用WALE:正确展现 $\nu_{sgs} \propto y^3$ 的壁面行为
- 临时方案:降低 $C_s$:改成 $C_s = 0.065$ 左右
4. $C_s$ 值的设置指南
$C_s$ 到底怎么定?有通用值吗?
没有通用值。正因为如此才有了动态模型。实务指导如下。
| 流动类型 | 推荐 $C_s$ |
|---|---|
| 等向湍流 | 0.17 |
| 管道/通道流 | 0.10 |
| 混合层/喷流 | 0.10 - 0.13 |
| 圆柱尾流 | 0.10 |
| 初步试验 | 0.10(从这里开始) |
先从 $C_s = 0.1$ 试,然后看结果调整。
对。如果 $C_s$ 敏感性特别大,那就是该换模型的信号。
Smagorinsky模型壁面"过热"问题
在壁面附近应用Smagorinsky,即使加了Van Driest衰减,模型的涡粘性仍不完全消失,导致过度散逸。本来壁面极近处应该是层流,但模型还在加额外耗散,这就造成壁面摩擦应力和热传递系数的高估。所以对壁面流动有精细要求的问题,Smagorinsky往往力不从心。这也是后来开发WALE的理由之一。
相关专题
更多细节
错误