流体模拟(二)

SPH算法的粒子受力分析:

 

SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

SPH算法的基本设想,就是将连续的流体想象成一个个相互作用的微粒,这些粒子相互影响,共同形成了复杂的流体运动。其实现的原理则是我们在初始空间里创建多个粒子,每个粒子拥有自己的特定属性。如位置,半径,所受重力黏力等等。因此在下一帧运动的时候,每个粒子检索周围一定范围内的粒子,根据它们的位置(即计算出周围的粒子和当前粒子的间隔)重新计算黏力和压力,以及每个粒子都受重力影响,根据力计算新的加速度和速度,然后每一帧重复上述计算。因此我们便可以给所有粒子赋值初始位置,粒子就能自动的开始动画直到最后平稳下来。

对于每个单独的流体微粒,依旧遵循最基本的牛顿第二定律:

                                                                                                mSHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析 =SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

这是我们分析的基础,在SPH算法里,流体的质量是由流体单元的密度决定的,所以一般用密度代替质量:

                                                                                                SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析 =SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

这里的的作用力F的量纲发生变化,正常情况下,“力”的量纲dimF=SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析L,而在这里dimF=SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析,后面的分析都是用这个量纲的“作用力”,这一点一定要注意。作用在一个微粒上的作用力由三部分组成:

                                                                          SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析 =SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析+SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析+SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析 

其中SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析称为外部力,一般就是重力:

                                                                                          SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析=SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析是由流体内部的压力差产生的作用力,试想一下在水管中流动的液体,进水口区域的压力一定会比出水口区域大,所以液体才会源源不断的流动,数值上,它等于压力场的梯度,方向由压力高的区域指向压力低的区域:

                                                                                        SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析=−SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析 

SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析是由粒子之间的速度差引起的,设想在流动的液体内部,快速流动的部分会施加类似于剪切力的作用力到速度慢的部分,这个力的大小跟流体的粘度系数μ以及速度差有关:

                                                                                       SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析=SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

带入公式ρSHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析 =SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析​​​​​​​,可以得到:

                                                                                    SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

加速度则为:

                                                                                  SHP(光滑粒子流体动力学)流体模拟实现二:SPH算法(2)-粒子受力分析

上述就是粒子的运动学计算方法了。

 

相关文章: