迎风格式
理论:面值如何构造
概述
CFD设置里对流项格式可选“一阶迎风”“二阶迎风”“QUICK”。该选哪个?
有限体积法计算穿过单元面的通量需要面值,迎风格式就是用上游(迎风侧)单元的值来构造它。一阶迎风直接用上游单元的值,稳定不振荡,但峰值不断被削平。二阶迎风和QUICK用上游两个以上单元以直线或曲线外推,精度高,但在剧烈变化处超调。选哪个取决于重视什么。我们用同一个形状输送来比较。
面值公式
流动从左向右($i$ 侧为上游)时。一阶迎风(UDS)、二阶迎风(LUD)、QUICK使用的点依次增加,精度提高。
带限制器的TVD格式
$r$ 为相邻梯度之比,光滑处接近1,剧烈变化或极值附近为0或负。限制器 $\psi$ 在那里减弱二阶修正,防止超调。
Godunov定理
1959年苏联的Godunov证明了一个定理:不产生振荡的线性格式最多只有一阶精度。也就是说,系数固定的普通格式无法兼顾高精度与无振荡。为跨越这一障碍,20世纪70~80年代提出了系数随解的形状变化的“非线性”格式,van Leer的MUSCL和Harten的TVD是代表。限制器在光滑处用二阶精度、在剧烈处切换为一阶,巧妙地绕过了Godunov定理。
算例:把峰和方波输送一周
在分为100个单元的周期区间上,用CFL 0.4和两级龙格-库塔法把方波(高1)和高斯峰(高1)输送一周;理想情况下形状不变地回到原处:
| 格式 | 方波最大值 | 方波最小值 | 高斯峰高 | 高斯L1误差 |
|---|---|---|---|---|
| 一阶迎风 | 0.683 | 0.000 | 0.333 | 0.086 |
| 二阶迎风 | 1.190 | −0.215 | 0.746 | 0.064 |
| QUICK | 1.100 | −0.101 | 0.926 | 0.009 |
| TVD(minmod) | 0.964 | 0.000 | 0.613 | 0.037 |
| TVD(van Leer) | 0.999 | 0.000 | 0.750 | 0.021 |
QUICK保留峰值最好,方波却超出10%。
对,光滑处精度高,剧烈台阶处会振荡。浓度或温度出现小于0或超过上限的值,会使物性计算失败,或以负浓度推进反应。二阶迎风在方波上超出19%。TVD在台阶处也保持在0~1范围内,van Leer还保留75%峰高。一阶迎风安全,但峰被削到三分之一。基本分工是:重视光滑流动精度用QUICK或二阶迎风,处理台阶和锐利锋面用TVD。
选择参考
- 为稳定计算,前几百次迭代用一阶迎风开始,稳定后切换为高阶。
- 最终结果用二阶以上(二阶迎风、QUICK、TVD)给出,不要一直用一阶。
- 对浓度、体积分数、湍流量等有界量用TVD。
- 用实际使用的格式确认网格无关性。
- 网格越与流动方向对齐,数值扩散越小。
“混合过度的烟”
某隧道通风CFD中,烟的浓度比实验稀释扩散得快得多。为了稳定算完,一直用一阶迎风到最后。一阶迎风的数值扩散叠加在真实湍流扩散之上。切换为带限制器的二阶迎风(TVD)后,烟层清晰保留,浓度接近实验。不要把为稳定而用的设置一直用到出结果。
常见错误
错误与对策
| 错误 | 后果 | 对策 |
|---|---|---|
| 一阶迎风用到最后 | 高估混合扩散 | 切换为二阶以上 |
| 有界量用QUICK | 负浓度或体积分数 | 用TVD |
| 把振荡误认为物理 | 错误结论 | 换格式确认 |
| 限制器过强 | 峰值被削 | 用van Leer等适中的 |
| 忽略网格方向 | 斜向流动中扩散 | 与流动对齐的网格 |
我想了解相关内容。