动态Smagorinsky模型
理论与物理
概述
老师,动态Smagorinsky模型改进了Smagorinsky模型的哪些方面?
Smagorinsky模型最大的问题是,模型常数 $C_s$ 依赖于流动却使用固定值。动态Smagorinsky模型(Germano et al., 1991; Lilly, 1992)是一种在计算过程中局部、动态地求解 $C_s$ 的方法。它利用了称为Germano恒等式的数学恒等式。
Germano恒等式
Germano恒等式是什么?
它是关于网格滤波器 $\bar{\phantom{u}}$(宽度 $\Delta$)和测试滤波器 $\hat{\phantom{u}}$(宽度 $\hat{\Delta} = 2\Delta$)的两阶段滤波的恒等式。
这个 $L_{ij}$(Leonard应力张量)可以直接从已知的解析尺度量计算。另一方面,根据与SGS应力模型表达式的一致性条件,
$C_s^2$ 的动态计算
如何求解 $C_s^2$ 呢?
使用Lilly (1992) 的最小二乘法。
$\langle \cdot \rangle$ 表示空间方向(均匀方向)或拉格朗日平均。如果没有这种平均化,$C_s^2$ 可能会局部变为负值或剧烈振荡,导致计算不稳定。
$C_s^2$ 变为负值在物理上意味着什么?
负的 $C_s^2$ 意味着逆耗散(backscatter),即能量从SGS尺度向解析尺度的反向输运。这在物理上是可能发生的现象,但在数值上会导致不稳定。在实现中,通常将 $C_s^2$ 的下限裁剪为零,或者通过拉格朗日平均来抑制负值。
动态模型的优点
动态模型的具体优点是什么?
| 优点 | 说明 |
|---|---|
| 壁面处 $C_s \to 0$ | 无需Van Driest衰减即可自动获得正确的壁面行为 |
| 再现过渡流 | 层流区域 $C_s \to 0$,避免过度耗散 |
| 适应不同雷诺数 | 无需预先调整常数 |
| 部分再现逆散射 | 允许 $C_s^2 < 0$ 的物理存在 |
Germano“让流动自身决定常数”这一思想的革新性
Massimo Germano在1991年提出的动态程序的革命性之处在于,“SGS常数无需人为决定”。利用测试滤波器求解Germano恒等式,从流场中局部地求出最优的 $C_s$——这一想法从根本上改变了“通过实验校准模型参数”的传统思路。不过,最初的论文中存在常数变为负值导致计算发散的问题,次年Lilly(1992)通过最小二乘法的平均化使其稳定,形成了实用的形式。
各项的物理意义
- 时间项 $\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$。直接关系到时间步长的稳定性 |
数值解法与实现
测试滤波器的实现
测试滤波器具体如何实现?
在非结构网格中,常使用单元中心值的相邻单元平均(体积加权)作为测试滤波器。在结构网格中可以使用顶帽滤波器或高斯滤波器。
| 滤波器类型 | 实现方法 | 精度 |
|---|---|---|
| 顶帽(盒式) | 相邻单元简单平均 | 低(非均匀网格下有问题) |
| 体积加权平均 | $\hat{\phi}_P = \sum_f V_f \phi_f / \sum_f V_f$ | 中等 |
| 高斯 | 根据距离的高斯权重 | 高(适合结构网格) |
稳定化方法
$C_s^2$ 变为负值导致不稳定的问题如何应对?
主要有三种方法。
1. 裁剪: 当 $C_s^2 < 0$ 时裁剪为零。最简单但会丢失物理上的逆散射
2. 空间平均: 在均匀方向(例如展向)对 $\langle L_{ij}M_{ij}\rangle$ 进行平均。适用于槽道流
3. 拉格朗日平均 (Meneveau et al. 1996): 沿流体粒子路径进行时间平均。适用于非均匀流动
拉格朗日动态模型最为通用,在OpenFOAM中实现为 dynLagrangian。Fluent中也可用,称为 Dynamic Smagorinsky-Lilly 模型。
求解器中的设置
请告诉我各求解器中的设置方法。
动态Smagorinsky是LES SGS模型中最具理论优雅性的方法,无需调整常数是其巨大优势。不过,实现的复杂性和成本(测试滤波器的计算)是它的权衡点。
测试滤波器宽度“2倍”是否合适的问题
动态程序的测试滤波器宽度 $\hat{\Delta}$ 习惯上使用 $\hat{\Delta} = 2\Delta$,但如果被明确问到为什么是2倍,很多人会语塞。理论上讲是“在惯性区尺度相似性成立的范围内能获得最大信息的比率”,但实际上这很大程度上是经验性的选择。也有研究尝试过 $\hat{\Delta} = 3\Delta$ 或 $4\Delta$,也有报告称在某些情况下会出现网格依赖性。建议不要“想当然地设为2倍”,而是进行敏感性测试。
迎风格式(Upwind)
一阶迎风:数值扩散大但稳定。二阶迎风:精度提高但有振荡风险。高雷诺数流动中必须使用。
中心差分(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法是“交替调整”的方法。先假设求解速度(预测步),然后根据该速度修正压力以满足质量守恒(修正步),再用修正后的压力修正速度——重复这种“投接球”过程以接近正确答案。类似于两人调整架子水平的作业:一人调整高度,另一人调整平衡,如此交替进行。
迎风格式的比喻
迎风格式是“站在河流中重视上游信息”的方法。站在河里的人看下游也无法知道水的来源——这反映了上游信息决定下游的物理规律。精度为一阶,但能正确捕捉流动方向,因此稳定性高。
实践指南
适用范围
动态Smagorinsky模型应该在什么情况下使用?
| 适合的用途 | 理由 |
|---|---|
| 过渡流(包含层流→湍流转换的流动) | $C_s$ 在层流区域自动趋于零 |
| 复杂形状的工业LES | 无需调参,通用性强 |
| 解析壁面附近的LES | 无需Van Driest衰减即可获得正确的壁面行为 |
| 不同雷诺数的系统性研究 | 常数自动调整 |