本发明属于计算机图形学与并行计算领域,具体涉及一种基于半隐式连续迭代的不可压缩流体仿真方法及系统。
背景技术:
1、在基于粒子的流体实时模拟中,基于位置的方法广泛应用于模拟流体的不可压缩性。其基本思想是将流体不可压缩性制定为一组非线性的位置约束,以解决粒子的恒定密度问题。在时间积分过程中,其使用高斯-牛顿方法来迭代地修正预测位置,直到所有约束都在用户定义的阈值下或达到最大迭代次数时满足。然而,在使用基于位置的动力学模拟不可压缩流体时,准确性和鲁棒性取决于许多数值参数,包括时间步长、迭代次数、粒子大小等等。这种复杂性可能导致模拟行为的不可预测性。
技术实现思路
1、本发明主要针对传统基于位置的不可压缩流体仿真方法受数值参数影响大的问题,提出一种基于半隐式连续迭代的不可压缩流体仿真方法及系统,其通过将运动控制方程中的非线性项拆分成正负两项,其中正项进行隐式处理,负项进行显示处理,从而便于基于gpu对不可压缩流体进行并行迭代求解,使得不可压缩流体仿真不仅具备高效性,同时保证仿真结果不受粒子大小、时间步长等数值参数的影响。
2、具体来说,本发明的技术方案如下:
3、一种基于半隐式连续迭代的不可压缩流体仿真方法,所述方法包括:
4、初始化流体计算域,并用粒子对计算域进行采样,得到采样结果;其中,所述采样结果包括:每个粒子i的质量mi、初始的当前位置和初始的密度
5、通过对流体不可压缩性建模,得到粒子i的不可压缩流体能量目标函数,并基于所述不可压缩流体能量目标函数推导得到粒子i的运动控制方程;
6、将粒子i的第k轮迭代的当前位置和密度代入运动控制方程,并根据代入结果将所述运动控制方程的非线性项分解为非线性正项和非线性负项后,得到相邻粒子之间的作用量隐式表示和作用量显式表示;
7、基于第k轮迭代的当前位置以及相邻粒子之间的所述作用量隐式表示和所述作用量显式表示,得到每个粒子i的第k+1轮迭代的当前位置后,计算所述当前位置对应的密度
8、在未达到收敛条件时,令k=k+1,并返回至所述将第k轮当前位置和密度代入运动控制方程;
9、在达到收敛条件时,基于所有的当前位置生成不可压缩流体仿真结果。
10、进一步地,所述不可压缩流体能量的非线性目标函数其中,h表示时间步长,x表示粒子的当前位置,s表示粒子的临时位置,μ表示内能能量系数,表示粒子i的当前密度ρi和参照密度ρ0的比值,b(·)表示内能能量函数,表示弗罗贝尼乌斯范数。
11、进一步地,所述内能能量函数b(·)的构造包括:
12、
13、或,
14、
15、或,
16、
17、进一步地,基于所述不可压缩流体能量目标函数推导得到粒子i的运动控制方程,包括:
18、通过计算非线性目标函数相对于粒子的当前位置x的偏导数,推导得到每个粒子i的运动控制方程其中,xj表示粒子i的相邻粒子j的当前位置,wij表示粒子i与该相邻粒子j之间的权重,rij表示粒子i与该相邻粒子j之间的距离,代表内能能量函数b(·)的导数。
19、进一步地,所述权重wij基于权重函数w得到;其中,所述权重函数h表示权重函数w的支撑域半径。
20、进一步地,所述根据代入结果将所述运动控制方程的非线性项分解为非线性正项和非线性负项后,得到相邻粒子之间的作用量隐式表示和作用量显式表示,包括:
21、获取运动控制方程中xi-xj的系数;
22、根据系数的正负号将所述运动控制方程的非线性项分解为非线性正项和非线性负项其中,所述非线性正项所述非线性负项表示粒子i的第k轮密度和参照密度ρ0的比值,表示第k轮迭代后粒子i与相邻粒子j之间的距离;
23、针对所述非线性正项通过假设每个粒子i的位置为未知量,得到相邻粒子之间的作用量隐式表示
24、针对所述非线性负项,通过假设每个粒子i的位置为已知量,得到相邻粒子之间的作用量显式表示
25、进一步地,所述第k+1轮迭代的当前位置
26、进一步地,计算所述当前位置对应的密度
27、进一步地,所述收敛条件包括:预设值或最大迭代步数n,所述预设值包括相对误差εk小于设定阈值,所述相对误差
28、一种基于半隐式连续迭代的不可压缩流体仿真系统,所述系统包括:
29、采样模块,用于初始化流体计算域,并用粒子对计算域进行采样,得到采样结果;其中,所述采样结果包括:每个粒子i的质量mi、初始的当前位置和初始的密度
30、方程构建模块,用于通过对流体不可压缩性建模,得到粒子i的不可压缩流体能量目标函数,并基于所述不可压缩流体能量目标函数推导得到粒子i的运动控制方程;
31、位置迭代模块,用于将粒子i的第k轮迭代的当前位置和密度代入运动控制方程,并根据代入结果将所述运动控制方程的非线性项分解为非线性正项和非线性负项后,得到相邻粒子之间的作用量隐式表示和作用量显式表示;基于第k轮迭代的当前位置以及相邻粒子之间的所述作用量隐式表示和所述作用量显式表示,得到每个粒子i的第k+1轮迭代的当前位置后,计算所述当前位置对应的密度在未达到收敛条件时,令k=k+1,并返回至所述将第k轮当前位置和密度代入运动控制方程;
32、结果生成模块,用于在达到收敛条件时,基于所有的当前位置生成不可压缩流体仿真结果。
33、与现有技术相比,本发明具有如下的优点:
34、(1)本发明利用变分原理对流体的不可压缩性进行了重建模,其有效消除了传统不可压缩流体仿真结果受参数影响大的问题,从而提高不可压缩流体仿真的可预测性;
35、(2)本发明中每一个迭代步都具有高度并行性,因而适用于现有gpu架构,可以利用硬件加速对较大规模不可压缩粒子流体进行实时模拟;
36、(3)本发明有助于提升不可压缩流体仿真的稳定性,从而极大的方便了虚拟场景中实时流体的生成与交互。
1.一种基于半隐式连续迭代的不可压缩流体仿真方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述不可压缩流体能量的非线性目标函数其中,h表示时间步长,x表示粒子的当前位置,s表示粒子的临时位置,μ表示内能能量系数,表示粒子i的当前密度ρi和参照密度ρ0的比值,b(·)表示内能能量函数,表示弗罗贝尼乌斯范数。
3.根据权利要求2所述的方法,其特征在于,所述内能能量函数b(·)的构造包括:
4.根据权利要求2所述的方法,其特征在于,基于所述不可压缩流体能量目标函数推导得到粒子i的运动控制方程,包括:
5.根据权利要求4所述的方法,其特征在于,所述权重wij基于权重函数w得到;其中,所述权重函数h表示权重函数w的支撑域半径。
6.根据权利要求5所述的方法,其特征在于,所述根据代入结果将所述运动控制方程的非线性项分解为非线性正项和非线性负项后,得到相邻粒子之间的作用量隐式表示和作用量显式表示,包括:
7.根据权利要求6所述的方法,其特征在于,所述第k+1轮迭代的当前位置
8.根据权利要求5所述的方法,其特征在于,计算所述当前位置对应的密度
9.根据权利要求2所述的方法,其特征在于,所述收敛条件包括:预设值或最大迭代步数n,所述预设值包括相对误差εk小于设定阈值,所述相对误差
10.一种基于半隐式连续迭代的不可压缩流体仿真系统,其特征在于,所述系统包括:
