欧拉方程(可压缩)— 故障排除指南
更丰富的内容请查看 euler-equations.html。
故障排除
老师,欧拉求解器计算不顺利时的处理方法是什么?
让我们按模式整理常见问题。
1. 膨胀激波(Expansion Shock)发生
症状:物理上不存在的膨胀激波出现在解中
原因:Roe方案不自动满足熵条件。当特征值接近零时会发生熵违反。
对策:应用熵修正(Harten-Hyman fix)。
$\delta$ 是小正值(例如:$0.1 \times (|u| + a)$)。Fluent中默认应用了熵修正,通常不会有问题。
2. Carbuncle现象
什么是Carbuncle现象?
症状:弓形激波(分离激波)前方出现痘痕状凹凸。特别是网格与激波垂直时容易发生。
原因:Roe等黎曼求解器的固有不稳定性。接触间断的耗散不足。
对策:
- 切换到HLLC求解器(接触波耗散适中)
- 向Roe求解器添加人工剪切粘性
- 使网格相对激波轻微倾斜(实用回避方法)
3. 负密度·压力
症状:计算中密度或压力变为负值后发散
原因:高阶精度重构在激波附近出现超调/欠调。限制器不足。
对策:
- 切换到更耗散的限制器(minmod)
- 使用正性保持限制器
- 降低CFL数(约0.3~0.5)
- 故障保护机制:检测到负值时局部降至一阶精度
压力变为负值很可怕。怎样提前防止?
对于强激波(压力比10倍以上)的问题,最初从保守设置(一阶精度、小CFL)开始计算,稳定后逐步切换到高阶精度是安全的。
4. 边界的非物理反射
症状:计算域边界出现激波或压力波反射,无法获得定常解
对策:
- 在远场边界使用基于特征的NRBC(无反射边界条件)
- 足够扩大计算域(翼弦长的20~50倍)
- 在边界附近添加海绵层(阻尼区)
欧拉求解器因为没有粘性,数值问题似乎更明显。
正是这样。Navier-Stokes方程中粘性项提供了自然耗散来稳定解,但欧拉方程中只有数值格式的耗散作为稳定因素。因此格式的选择和参数调整就更加重要了。
"计算爆炸"——欧拉分析常见发散原因排行榜TOP 3
欧拉方程计算突然发散时,原因的大部分集中在"初始条件设置错误""CFL数过大设置""激波与网格的位置关系"这3点。最常见的是初始条件问题,比如"用自由来流均匀流初始化后,喷管喉部附近立即发散"这种情况。喉部附近马赫数接近1时,特征线变得尖锐,微小的不连续会被放大。现场通常采用"从马赫数0.1左右开始逐步提升的上升手法"或"局部平滑化压力、密度的分段初始化"来对付。CFL数从0.3~0.5开始是稳妥的。
相关主题
更详细
报告