论文部分内容阅读
基于SPH方法的流体模拟是将问题域化为一系列携带某一特定材料属性的粒子,利用每个粒子的运动确定整体的运动形态。而所有粒子的运动都可以通过其支持域内的全部粒子的运动属性加权得到,并且在每个时间步(整个模拟时间可划分为若干个时间步)内需要对每个粒子的邻近粒子进行搜索,从而确定粒子在当前时间及下一个时间步的运动属性。因此,邻近粒子搜索算法的好坏对整个模拟过程的执行效率起着决定性作用。本文以目前现有的邻域搜索算法为基础,从算法本身和依赖硬件加速两个角度,对邻近粒子搜索算法进行优化,以期更快、更准的搜索到邻近粒子。首先,对目前流体模拟及邻近粒子搜索算法的现状进行了分析,简要介绍了如何用SPH方法离散Navier-Stokes方程,确立了本文的研究重点及主要工作。其次,介绍了目前常见的邻近搜索算法,引出条形PIB搜索法及邻域相关搜索法并对这两种搜索算法的具体实现步骤进行了详细说明,分析并结合了条形PIB搜索法和邻域相关搜索法的优势,为实现进一步提高SPH方法中邻近粒子的搜索效率,提出了一种邻近粒子融合搜索算法,该算法采用条形Point-In-Box(PIB)搜索法和邻域区域相关搜索法交替执行机制进行搜索。实验从搜索效率和搜索准确率两个方面对改进的搜索算法与常见搜索算法进行了测试,验证了邻近粒子融合搜索算法的可行性。最后,结合图形处理器(GPU)的高并行性和可编程性,将融合搜索法用于SPH方法对二维溃坝流体现象进行模拟。实验中,分别用基于融合搜索法的SPH方法和基于条形PIB搜索法的SPH方法对溃坝现象进行了模拟,实验结果表明基于融合搜索算法的SPH方法增强了对结构复杂、细节丰富流体的模拟效果。实验结果也证明,在粒子数量相等的条件下,基于GPU的融合搜索法的搜索效率比基于CPU的融合搜索法、基于GPU的多维树搜索法的搜索效率提高了数倍,进一步说明改进算法的高效性。