一种基于预测校正不可压缩的流体粒子飞溅仿真方法

文档序号:36784673发布日期:2024-01-23 11:59阅读:11来源:国知局
一种基于预测校正不可压缩的流体粒子飞溅仿真方法

本发明涉及流体粒子模拟仿真,尤其涉及一种基于预测校正不可压缩的流体粒子飞溅仿真方法。


背景技术:

1、对于流体模拟研究经历了较长时间并不断衍生出新的方法。从宏观上来说,流体的模拟可分为基于物理的方法和非物理的方法。其中,非物理的方法往往依赖于纯粹的数学模型,需要通过观测数据对实际数据进行建模,从而达到模拟仿真的效果,该类方法没有引入物理控制方程,所以结果通常存在动量、能量不守恒的问题。基于物理的方法往往通过离散的数值方法对控制方程来进行求解,可以划分有拉格朗日粒子法。

2、目前,拉格朗日粒子法是将客观世界中的流体看成由许多粒子组成的整体,该方法的基本思路是首先依照流体运动的物理定律,计算出粒子受到的外力和粒子之间的相互作用力,其次根据牛顿第二定律(newton′s second law of motion-force andacceleration),计算出每个粒子在时间步长内的位置变化量,最后通过位置变化量来模拟出一段流体运动轨迹。主流的拉格朗日粒子法包括sph(smoothed particlehydrodynamics,光滑粒子流体动力学)方法和pbf(position based fluids,基于位置的流体模拟方法)等。

3、由于飞溅场景中流体的密度和压力的速率变化非常大,因此模拟对离散化解的精度要求很高。然而,传统的不可压缩sph方法尽管在许多场景(如电影效果)中都有很好的性能,但是由于数值耗散,密度误差大,不可能长期模拟流体的运动变化,否则导致精度不准确。

4、考虑到预测校正不可压缩sph(pcisph,predictive-correctiveincompressiblesph)为一种有效的sph变体,在这种sph变化中通过迭代预测和校正密度来增强不可压缩性,不仅允许更大的时间步长,还解决了粒子级的不可压缩性而且不需要求解泊松方程等优点。因此,有必要提出一种基于预测校正不可压缩的流体粒子飞溅仿真方法,用于提高流体仿真模拟精度。


技术实现思路

1、本发明实施例所要解决的技术问题在于,提供一种基于预测校正不可压缩的流体粒子飞溅仿真方法,通过迭代预测和校正密度误差来增强不可压缩性,可以提高流体仿真模拟精度。

2、为了解决上述技术问题,本发明实施例提供了一种基于预测校正不可压缩的流体粒子飞溅仿真方法,所述方法包括以下步骤:

3、s1、构建模拟的流体及其粒子形态,并确定每一个粒子及其邻居粒子,且进一步计算出每一个粒子及其邻居粒子的起始速度、起始位置和质量,以及除压力之外的所有力;

4、s2、设定总仿真时长及其均分的时间步长,并根据总仿真时长及其均分的时间步长,统计出迭代总数,且进一步初始化当前迭代次数为1;

5、s3、获取当前时间步长各粒子的速度、位置和质量以及除压力之外的所有力,并根据当前时间步长各粒子的速度、位置和质量以及除压力之外的所有力,预测出各粒子的新速度和新位置以及流体的新密度;

6、s4、根据当前时间步长各粒子的速度、位置和质量,并结合所预测出的各粒子的新速度和新位置以及流体的新密度,得到当前时间步长流体的密度变化量,并根据当前时间步长流体的密度变化量,得到当前时间步长的压力变化量;

7、s5、获取当前时间步长各粒子的压力,并根据当前时间步长的压力变化量,对当前时间步长各粒子的压力均进行校正,且进一步根据当前时间步长各粒子校正后的压力,重新计算出各粒子的速度、位置;

8、s6、将当前迭代次数加一并与该迭代总数进行对比,若小于等于该迭代总数,则将下一时间步长设为当前时间步长后,返回步骤s3;否则,结束迭代计算;

9、s7、基于每一个时间步长各粒子的速度、位置,对该模拟的流体进行三维渲染,包括表面重建和流体边界处理。

10、其中,通过公式(2),预测出各粒子的新速度和新位置;其中,

11、

12、其中,ut和r表示粒子在当前时间步长上的速度和位置;u*和r*表示预测结束后粒子的新速度和新位置;δu*表示预测期间粒子速度的变化量;δt表示时间步长;ρ表示流体的密度;u表示流体的速度;g表示重力加速度;μ表示除压力之外的剪切应力。

13、其中,通过公式(3),预测出流体的新密度;其中,

14、ρ*=∑jmjw(|ri-rj|,h)  (3);

15、其中,ρ*表示流体的新密度;ri表示第i个粒子在当前时间步长上的位置;rj表示第i个粒子的邻居粒子j在当前时间步长上的位置;mj表示邻居粒子j的质量;w表示插值核函数;h表示光滑核函数半径。

16、其中,通过公式(12),得到当前时间步长流体的密度变化量;其中,

17、

18、其中,表示当前时间步长流体的密度变化量;ρ0表示恒定的不可压缩流体密度;mi表示第i个粒子的质量;uij表示第i个粒子与其邻居粒子j在当前时间步长上的相对速度。

19、其中,通过公式(15),对当前时间步长各粒子的压力均进行校正;其中,

20、

21、其中,pi表示第i个粒子在当前时间步长上的压力值;且表示当前时间步长的压力变化量;

22、其中,所述流体边界处理是通过使用解析sdf函数来解决的。

23、实施本发明实施例,具有如下有益效果:

24、本发明迭代预测和校正密度误差来改进压力值实现流体仿真,从而能够增强不可压缩性,提高流体仿真模拟精度,实现更真实的流体粒子飞溅效果。



技术特征:

1.一种基于预测校正不可压缩的流体粒子飞溅仿真方法,其特征在于,所述方法包括以下步骤:

2.如权利要求1所述的基于预测校正不可压缩的流体粒子飞溅仿真方法,其特征在于,通过公式(2),预测出各粒子的新速度和新位置;其中,

3.如权利要求2所述的基于预测校正不可压缩的流体粒子飞溅仿真方法,其特征在于,通过公式(3),预测出流体的新密度;其中,

4.如权利要求3所述的基于预测校正不可压缩的流体粒子飞溅仿真方法,其特征在于,通过公式(12),得到当前时间步长流体的密度变化量;其中,

5.如权利要求4所述的基于预测校正不可压缩的流体粒子飞溅仿真方法,其特征在于,通过公式(15),对当前时间步长各粒子的压力均进行校正;其中,

6.如权利要求1所述的基于预测校正不可压缩的流体粒子飞溅仿真方法,其特征在于,所述流体边界处理是通过使用解析sdf函数来解决的。


技术总结
本发明提供一种基于预测校正不可压缩的流体粒子飞溅仿真方法,包括构建模拟的流体及其粒子形态,并确定各粒子及其邻居粒子的起始速度、起始位置和质量及除压力外的所有力;设定总仿真时长及其均分的时间步长,并统计出迭代总数;在每一次迭代中,获取当前时间步长各粒子的速度、位置和质量,并预测出各粒子的新速度和新位置以及流体的新密度,以得到当前时间步长流体的密度变化量,且基于流体的密度变化量得到压力变化量,进一步根据压力变化量,校正当前时间步长各粒子的压力来重新计算各粒子的速度、位置,直至结束迭代计算为止;基于每一个时间步长各粒子的速度、位置,对模拟的流体进行三维渲染。实施本发明,可以提高流体仿真模拟精度。

技术研发人员:李毅,陈慧娴,钮倩倩,黄辉,陈子安
受保护的技术使用者:温州大学
技术研发日:
技术公布日:2024/1/22
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1