【发布时间】:2011-09-23 08:48:36
【问题描述】:
实际上,我正在使用 C++ 和 openGL 开发 SPH 模拟器。我现在遇到了几个问题,
我在盒子的一侧制作初始流体粒子(我将盒子作为边界体积),将它们塑造成盒子,并让它们初始速度为零。然后我启动主循环,中提琴,流体开始移动,这里出现了一个奇怪的现象。流体开始向各个方向扩散。
请看图:
http://i278.photobucket.com/albums/kk86/anggytrisnawan/Screenshot-UntitledWindow-2.png
从模拟开始几秒钟后拍摄的那张照片。这对我来说似乎很奇怪。这是我用于模拟的参数:
#define H 0.040 // Smoothing Length
#define Rho0 1000 // (kg/m^3) water particle rest density
#define Mass 0.012 // (kg)
#define DT 0.001 // time step
#define TotalParticles 5000 // total number of particle
注意:目前我还没有计算表面张力。
已解决:我的错在这里..它们在开始时相互重叠..所以压力使它们扩散..
【问题讨论】:
-
我建议你看看 boost.units,它会通过在编译时断言正确的 SI 单位来帮助你排除一些可能的计算错误。除此之外,我怀疑任何人都可以用你几乎没有提供的信息来分析问题。
-
什么外力作用在粒子上?重力?因为在初始速度为 0 的情况下,您需要一些力来获得您所描述的运动。
-
我的错在这里..它们一开始就相互重叠..所以压力使它们扩散..
标签: c++ simulation fluid