如何选择Hh在SPH?

计算科学 sph
2021-12-09 00:41:07

我已经启动并运行了平滑粒子流体动力学的 2D 实现,但是当我尝试使用适当的 3D 内核将其移动到 3D 时,粒子总是倾向于彼此分开。由于我的 2D 实现工作正常,并且我唯一更改的是内核,因此影响它们的唯一参数是支持的长度。

有没有一种好的方法来计算一个好的价值h而不是随机检查?

3个回答

我不是 SPH 方面的专家,所以其他人也应该加入进来,但这里有一个考虑因素:h需要选择,以便在半径的邻域内h围绕一个点,还有其他点。所以h与点之间的平均距离有关。2d 和 3d 之间的不同之处在于,在相同数量的点下,它们在 3d 中的平均距离要大得多。例如,如果你分散106在作为单位平方的二维域中的点,则它们平均相距 0.001(1062d 形式的粒子,如果有意放置,则1000×1000晶格)在 3d 中它们是 0.01,即相距 10 倍(因为在 3d 中,它们形成一个100×100×100格子)。你将不得不调整你的h相应地。

两件事情。确保内核值的总和是(m/ρ)W(r,h)等于 1.0 以达到所需的精度。如果根据参考密度计算,请检查您是否使用了每个粒子质量的正确值。如果您使用与 2d 中相同的 h 值,则应该可以提供稳定的模拟。

最重要的是内核必须在影响半径内进行归一化:Δ

ΔΔW(rr,h)dr=1

网格中的初始粒子间距离应计算为

dx=Δ2πn

二维或

dx=4Δ3π3n3

在 3D 中。是估计的邻居数: in 2D and in 3D。nn20n50

如果这些都满足并且我们假设参数在物理上是正确的,那么使用相同的参数,2D 和 3D 模拟都应该是稳定的。