密度基求解器

分类:流体分析·求解方法 | 2026-10-01 改写
CAE visualization for density based theory - technical simulation diagram
密度基础求解器

理论:波速差使收敛变慢

概述

🙋

听说密度基求解器适合高速流动,低速时有什么问题?

🎓

流动中的信息有随流前进的,也有以声波前后传播的。密度基同时求解两者,时间步长和收敛速度由最快的声波与最慢的流动之差决定。高速流动中这个差距小,但低速时声速远大于流速,差距达到几十、几百倍。于是要用适应声波的细小时间步长追踪缓慢的流动变化,迟迟不收敛。而且低马赫数下数值误差带来的人工粘性也变大,精度下降。解决这个问题的就是预处理。

波速与刚性

$$ \lambda = u,\; u \pm c,\qquad \frac{\lambda_{max}}{\lambda_{min}} = \frac{u + c}{u} = 1 + \frac{1}{M},\qquad n_{step} \approx \frac{N\,(1 + 1/M)}{\mathrm{CFL}} $$

u为流速,c为声速,N为流动方向网格数。n_step为显式格式下流体穿过计算域一次所需的步数。

Weiss-Smith预处理

$$ u' = u\,(1 - \alpha),\quad c' = \sqrt{\alpha^2 u^2 + U_r^2},\quad \alpha = \frac{1 - U_r^2/c^2}{2}\quad\xrightarrow{M \to 0}\quad u' + c' \approx \frac{1 + \sqrt{5}}{2}\,u $$

适用于理想气体。U_r为参考速度,低速时取流速,超过声速时取声速。马赫数小时最大波速约为流速的1.62倍(黄金比)。

Coffee Break 随笔闲谈

诞生于航空的解法

密度基解法于1970~80年代为计算飞机跨声速、超声速流动而发展起来。代表有MacCormack法、Jameson等的有限体积法与龙格-库塔法组合、Roe近似黎曼求解器等,其优势是能锐利地捕捉激波。但在低速流动中表现不佳,1980~90年代Turkel、Weiss与Smith等提出预处理,使同一求解器能处理从低速到超声速的流动。

算例

例1:马赫数与收敛速度(200格、CFL 1、显式)

马赫数波速比(无预处理)穿过一次的步数预处理后比值预处理后步数
0.0110120,2003.2323
0.05214,2003.2323
0.1112,2003.2324
0.34.38663.0328
2.01.5300(不需要)300

预处理后的比值为最大波速(u′ + c′)与最小波速(u′)之比。马赫2时参考速度以声速为上限,预处理不起作用(本来也不需要)。

例2:马赫2正激波(γ = 1.4)

量理论值
压力比 p₂/p₁4.500
密度比 ρ₂/ρ₁2.667
温度比 T₂/T₁1.687
激波后马赫数0.577
总压比 p₀₂/p₀₁0.721

密度基求解器验证常用的值。还要确认激波前后的值在2~3个网格内完成跃变且无振荡。

🙋

马赫0.01时,预处理快了60多倍。

🎓

按步数看是这样。但预处理改写了时间导数项,中间的时间变化在物理上不正确,只用于求定常解。非定常计算中,与在物理时间步内进行伪时间迭代的双时间步法结合,只对伪时间迭代施加预处理。预处理与激波捕捉本身无关,所以在低速区与超声速区混合的流动中效果最大,例如超声速喷管出口附近的滞止区域。反之若整体都是低速且无可压缩效应,用压力基求解器往往更直接。

选用与设置

  1. 马赫数大致超过0.3或有激波时考虑密度基。
  2. 包含低速区域时启用预处理。
  3. 非定常时用双时间步法,预处理只用于伪时间。
  4. 用隐式格式或多重网格增大CFL加快收敛。
  5. 用激波管或正激波理论值验证。
Coffee Break 随笔闲谈

“残差降不下来的通风计算”

某房间通风沿用手头的密度基设置计算,迭代数万次残差几乎不降。风速约0.5 m/s,马赫数约0.0015,波速比约680倍,没有预处理自然不收敛。启用预处理后几百次即收敛,但最终换成压力基求解器更快,结果也更稳定。求解器应根据马赫数来选择。

常见错误

错误与对策

错误后果对策
低速无预处理不收敛且精度低启用预处理
非定常直接预处理时间变化错误双时间步
激波处振荡压力变负使用限制器
CFL过大发散逐步提高
整体低速却用密度基计算慢考虑压力基
🙋

我想了解相关内容。

关联模拟器

在本领域的交互式模拟器中体验理论

模拟器列表

相关分析领域

热分析V&V·质量保证结构分析
本文评价
感谢您的反馈!
有帮助
更详细
报错
有帮助
0
更详细
0
报错
0