平滑粒子流体动力学隐式方法

计算科学 sph
2021-12-07 02:54:23

我正在尝试通过实施不同的方法来学习 SPH。我目前正在关注 Jan Bender [1] 的 Divergence Free Smoothed Particle Hydrodynamics。

我相信我理解它背后的方法和数学。但是,我无法通过找到压力来纠正密度误差,因为它们非常小。它是一种预测校正算法,因此我必须使用 Jacobi 迭代器中的压力来找到正确的速度,使密度等于静止密度以强制不可压缩。然而,即使经过 1000 次迭代,系统也不会收敛,但它正在朝着正确的方向前进。我在 PCISPH 和 IISPH 上遇到过类似的问题。我只能通过手动缩放产生的压力来让第一个工作。IISPH 中的压力太大,仍然试图完成这项工作。

我可以通过手动缩放计算的刚度值来加速迭代器的 DFSPH 收敛。然而这感觉不对。是否可以缩放压力值等值以使 SPH 模拟正常工作?我认为我错过了一些重要的东西。

[1] http://www.interactive-graphics.de/index.php/research/93-divergence-free-smoothed-particle-hydrodynamics

1个回答

终于让这个工作了。所以答案是否定的,你不应该在模拟中缩放任何东西来让它工作。问题比这简单得多,根本与论文无关。这是一个编码错误,我没有注意一行代码中的操作顺序,解释了弱力。第二件事是让初始设置对模拟正确,这是通过实验发生的。