同为粒子法的SPH和MPS大PK,谁更胜一筹?
SPH(Smoothed Particle Hydrodynamics)方法和MPS(Moving Particle Semi-Implicit)方法在模拟自由液面的PK: 1. 自由面形状: - SPH方法易于给出更为清晰、光滑的自由面形状。主要是因为SPH方法可以使得粒子移动较为平均,易于形成光滑的自由面。 - MPS方法得到的粒子分布较为凌乱,尤其在自由面变化剧烈时,MPS的自由面形状不如SPH方法光滑。主要是因为MPS方法中的核函数在粒子接近时导致粒子数密度迅速增加,产生较大的压力,从而导致粒子“飞溅”。 2. 收敛性: - 随着初始粒子间距的减小,SPH和MPS方法的计算结果均趋于收敛,并收敛于相近的结果。 - MPS方法的收敛速度比SPH方法快。 3. 时间步长对结果的影响: - 对于SPH方法,时间步长对结果的影响较小,不同的时间步长给出的计算结果十分一致。 - 而对于MPS方法,时间步长的变化会导致计算结果的轻微浮动。。 4. 计算效率: - SPH方法中压力是由状态方程显式给出的,具有很高的效率,但受声速的限制,需要较小的时间步长以满足CFL条件。 - MPS方法基于Poisson方程隐式求解压力,计算量较大,且随着粒子数的增加,计算量增加较快。所以,在计算大型问题时,SPH方法更为合适。 - 由于SPH 的时间步长较MPS方法小10倍,在粒子数较少时,MPS的计算效率较高,但随着粒子数的逐渐增加,MPS的运行时间增加较快,此时SPH 的效率较高。 - 对于粘性流动,MPS方法在每个时间步内需要执行两次邻居粒子搜索,而SPH仅需一次,故用时会略少一些 5. 数值格式上的差异: - SPH方法中,压力是基于状态方程显式计算的,时间积分采用显式格式。 - MPS方法中,压力是通过压力Poisson方程隐式求解的,时间积分采用半隐式格式。 - SPH方法的核函数不仅作为权重函数,其导数直接参与梯度等微分算子的离散格式中。 - MPS方法的核函数仅作为权重函数,梯度的计算还需借助径向函数来完成。 6. 边界条件处理: - 两种方法都需要对固壁边界条件进行特殊处理,以避免粒子穿透和计算失真。 7. 适用性: - 对于处理带有自由面问题的流动,尤其是自由面发生大变形的情况,SPH和MPS方法都具有良好的表现。 - SPH方法因其较高的计算效率和能够给出光滑自由面形状的特性,可能更适合于大型复杂流动问题的模拟。 - MPS方法在每个时间步内需要执行两次邻居粒子搜索,而SPH仅需一次,因此在粘性流动问题中,MPS的计算量较大。 - MPS方法虽然收敛速度快,但由于计算量大,可能更适合于中等规模的问题,或者在可以接受较长计算时间的情况下使用。 SPH方法和MPS方法在处理溃坝问题这类大变形自由面问题时都表现出了较好的可靠性。然而,SPH方法在计算效率和自由面形状的光滑度方面具有优势,而MPS方法在收敛速度上表现更好。SPH方法适合求解大型、中等、小规模复杂流动问题,MPS方法更适合于中等和小规模的流动问题。 来源:CFD饭圈