SIMPLE vs SIMPLEC:劣质网格上的表现差异
SIMPLE vs SIMPLEC
在 CFD(计算流体力学)中,SIMPLE 和 SIMPLEC 都是压力-速度耦合(Pressure-Velocity Coupling)的经典算法。
当你的网格质量不佳,特别是存在明显的**非正交性(Non-orthogonality)和歪斜度(Skewness)**时,这两种算法的表现差异会变得非常关键。
以下是针对这两种情况的详细对比和建议:
1. 核心差异:通量修正的方式
为了理解它们在劣质网格上的表现,首先要看它们在数学上怎么处理“速度修正”的:
SIMPLE 算法:
- 做法:在推导压力修正方程时,直接忽略了邻点速度修正项(Neighbor velocity correction terms)。
- 后果:这个忽略过于激进。为了防止计算发散,SIMPLE 算法必须对压力修正值使用非常保守的亚松弛因子(Under-relaxation Factor)。通常压力松弛因子只能取到 0.3 左右。
- 收敛速度:因为松弛因子小,每次迭代迈的步子很小,收敛慢。
SIMPLEC 算法 (SIMPLE-Consistent):
- 做法:它没有粗暴地忽略邻点项,而是假设邻点的速度修正量近似等于中心点的速度修正量。
- 后果:这个近似在数学上更“一致”(Consistent),保留了更多信息。因此,SIMPLEC 允许使用更激进的松弛因子(通常压力松弛因子可以设为 1.0,只要动量松弛因子合适)。
- 收敛速度:通常比 SIMPLE 快。
2. 在非正交性(Non-orthogonality)网格下的表现
非正交性意味着网格面法向量与两个网格中心连线不平行。这会引入额外的扩散项(非正交扩散项)。
SIMPLE:
- 表现:比较稳健但缓慢。由于 SIMPLE 本身就需要很强的亚松弛(0.3/0.7),这种“慢吞吞”的特性反而让它对非正交产生的数值误差有较强的容忍度。它不太容易直接发散,但你可能需要迭代几千步。
- 风险:如果非正交性极高(>70-80度),压力修正方程可能变得很难求解,SIMPLE 可能会陷入震荡。
SIMPLEC:
- 表现:如果不调整参数,容易不稳定。虽然 SIMPLEC 理论上收敛快,但在高度非正交的网格上,它那个“邻点修正量等于中心点修正量”的假设可能会失效,导致压力修正过头。
- 策略:在非正交网格上使用 SIMPLEC 时,你通常不能完全像在正交网格上那样把压力松弛设为 1.0。你可能需要稍微降低动量松弛因子,或者启用专门的“非正交修正”(Non-orthogonal Correctors)循环。
3. 在高歪斜度(Skewness)网格下的表现
Skewness(如 CPVA 歪斜)是指网格中心连线没有穿过公共面的几何中心。这会直接影响梯度的计算精度。
SIMPLE:
- 表现:更能抗“烂网格”。高 Skewness 会导致离散方程的系数矩阵性质变差。SIMPLE 因为每一步更新量很小(重松弛),能像“减震器”一样吸收掉部分由于 Skewness 引起的局部数值尖峰。
- 适用性:如果你只有一套质量很差的四面体网格(Tetrahedral mesh),且 Skewness 很高(>0.85),SIMPLE 往往是救命稻草——它虽然慢,但它能算下去。
SIMPLEC:
- 表现:容易发散。由于 SIMPLEC 步长较大,当遇到 Skewness 导致的梯度计算错误时,这种错误会迅速在压力-速度耦合中放大,导致“浮点溢出”或发散。
4. 总结与应用建议
场景 A:网格稍微有点歪,但整体还行(一般工程网格)
- 首选:SIMPLEC。
- 设置:压力松弛因子 1.0,动量松弛因子 0.7~0.8。
- 理由:能显著减少迭代步数,节省时间。
场景 B:网格质量很差(高 Skewness > 0.85 或严重非正交)
- 首选:SIMPLE。
- 设置:保持默认保守设置(压力 0.3,动量 0.7)。如果还发散,继续降低动量松弛因子到 0.5。
- 理由:这时候“稳”比“快”重要。SIMPLEC 在这种情况下经常算几步就炸。
场景 C:非稳态计算(Transient / PISO 模式)
- 如果是非稳态计算,通常推荐 PISO 算法,它专门为处理非正交性设计了“邻点校正步”(Neighbor Correction steps)。如果只能选 SIMPLE/SIMPLEC,非稳态下 SIMPLEC 优于 SIMPLE,因为每个时间步内它能更快达到收敛标准。
怎么判断用哪个?
试错法流程:
- 先用 SIMPLEC 跑 50-100 步。
- 观察残差曲线。如果残差平稳下降,恭喜你,能省不少时间。
- 如果残差剧烈震荡或者直接报错
Divergence detected in AMG solver,立马切换回 SIMPLE。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
