一种用于SPH算法的邻近粒子搜索方法及系统技术方案

技术编号:21035906 阅读:48 留言:0更新日期:2019-05-04 06:00
本发明专利技术公开了一种用于SPH算法的邻近粒子搜索方法及系统,涉及计算流体力学技术领域。本发明专利技术通过构建预置单胞网格并计算每个粒子所在位置的网格单元编号;将粒子映射到网格单元中,获取每个粒子所对应的网格单元编号,根据网格单元编号找出粒子的相邻网格单元;逐个比较每个粒子与相邻网格单元中的粒子的距离并建立粒子对。该方法可以有效提高软件的鲁棒性。通过算例验证,使用本发明专利技术进行流体力学问题的数值计算仿真是可行的,有效提高了计算效率。

【技术实现步骤摘要】
一种用于SPH算法的邻近粒子搜索方法及系统
本专利技术涉及计算流体力学
,具体是涉及一种用于SPH算法的邻近粒子搜索方法及系统。
技术介绍
随着计算机技术和CFD计算方法的迅速发展,SPH法逐渐用于流体数值计算过程中,但是传统的SPH法计算规模大,计算效率低,因此,在现有有效研究手段缺乏的情况下,开展SPH法改进算法研究工作来提高计算效率显得尤为重要。对于流体域内任一个粒子,其核函数有一个支持域,在支持域内的所有粒子都会与该粒子发生相互作用,都是该粒子的临近粒子。临近粒子会随计算时间的变化而改变,因此在每一个迭代步都必须进行临近粒子的搜索算法,才能确定并计算粒子对之间的相互作用。相对于整个计算域来说,单个粒子的支持域非常小,因此其临近粒子数相对于整个计算域粒子数来说也很少,因SPH方法是无网格法,粒子之间无连接关系,因此如何高效地从数量庞大、散乱无规则的粒子群中找出它们的临近粒子,是亟待解决的重要问题。粒子的排列顺序对计算速度也有较明显的影响,因为在计算粒子对之间相互作用的时候,需要访问两个粒子的数据。CPU访问数据时,总线往往会将数据所在的内存及附近的数据调入缓存区,若两粒子本文档来自技高网...

【技术保护点】
1.一种用于SPH算法的邻近粒子搜索方法,其特征在于,包括以下步骤:建立所有粒子区域的笛卡尔坐标系,构建预置单胞网格并计算每个粒子所在位置的网格单元编号;将粒子映射到网格单元中,获取每个粒子所对应的网格单元编号,根据网格单元编号找出粒子的相邻网格单元;逐个比较每个粒子与相邻网格单元中的粒子的距离并建立粒子对。

【技术特征摘要】
1.一种用于SPH算法的邻近粒子搜索方法,其特征在于,包括以下步骤:建立所有粒子区域的笛卡尔坐标系,构建预置单胞网格并计算每个粒子所在位置的网格单元编号;将粒子映射到网格单元中,获取每个粒子所对应的网格单元编号,根据网格单元编号找出粒子的相邻网格单元;逐个比较每个粒子与相邻网格单元中的粒子的距离并建立粒子对。2.如权利要求1所述的方法,其特征在于:所述构建预置单胞网格并计算每个粒子所在位置的网格单元编号,具体包括以下步骤:遍历所有粒子,计算出粒子所在坐标系的最大坐标值(Xmax,Ymax,Zmax)、最小坐标值(Xmin,Ymin,Zmin)和粒子的最大光滑长度hmax;计算预置单胞网格的边长d,ε为容差,计算公式为:d=2hmax+ε(1)将粒子所在坐标系用边长d等分成大小相同的网格单元,计算网格单元编号最大值:(imax,jmax,kmax):计算网格单元总数CellNum:CellNum=imax*jmax*kmax(3)计算每个粒子所在位置的网格单元编号(i,j,k),将粒子对号入座:i=int[(X-Xmin)/d]+1(4)。j=int[(Y-Ymin)/d]+1k=int[(Z-Zmin)/d]+13.如权利要求1所述的方法,其特征在于:所述将粒子映射到网格单元中,获取每个粒子所对应的网格单元编号,根据网格单元编号找出粒子的相邻网格单元,具体包括以下步骤:将所有粒子根据计算出的每个粒子的网格单元编号映射到网格单元中;获取每个粒子所对应的网格单元编号(i,j,k);根据网格单元位置,找出粒子的相邻网格单元,2维情况下相邻网格单元有8个,3维情况下相邻网格单元有26个。4.如权利要求1所述的方法,其特征在于:所述逐个比较每个粒子与相邻网格单元中的粒子的距离并建立粒子对,具体包括以下步骤:逐...

【专利技术属性】
技术研发人员:孙旋涂正光印强强郭江涛舒孟炯周律何乾坤
申请(专利权)人:湖北航天技术研究院总体设计所
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1