首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于光滑粒子流体力学的流体模拟

基于光滑粒子流体力学的流体模拟
EN

Stack Overflow用户
提问于 2011-09-23 08:48:36
回答 2查看 2.1K关注 0票数 0

实际上,我正在使用C++和openGL开发一个SPH模拟器。我现在遇到了几个问题,

我在盒的一侧制造起始流体粒子(我把盒作为边界体积),把它们塑造成盒状,并给它们初始速度等于零。然后我开始主循环,中提琴,液体开始运动,这里有一个奇怪的现象。液体开始向四面八方扩散。

请看这张照片:

http://i278.photobucket.com/albums/kk86/anggytrisnawan/Screenshot-UntitledWindow-2.png

这张照片是从模拟开始几秒钟后拍摄的。我觉得很奇怪。下面是我用于模拟的参数:

代码语言:javascript
复制
#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

注意:目前我还没有计算表面张力。

解决了:我的错here..they在beginning..so的压力作用下互相重叠,使它们扩散。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-23 09:03:03

从你提供的图像来看,模拟似乎是从一个角落里的所有粒子开始的。由于假设粒子必须有一些排斥势才能避免相互重叠,所以一旦模拟开始,这种斥力就会迫使粒子分开。

再说一遍,您还没有显示任何代码,所以以上只是一个限定的猜测。

票数 1
EN

Stack Overflow用户

发布于 2011-09-23 09:41:37

边界条件的值是多少,即盒子的极限在哪个数值坐标上?我猜想,由于系统的舍入误差,你的模拟会进入一个特定的方向。

如果我看这张图片,我会得到沿着-Z方向向下看的印象,框的左下角是(0,0,0)。如果是这样的话,那么你的粒子模拟并不是保守的,即倾向于把粒子推到数值0,就像有一个力场一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7526429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档