[发明专利]基于质点追踪算法实现流线模拟的加速方法有效
申请号: | 201810133612.6 | 申请日: | 2018-02-09 |
公开(公告)号: | CN108427605B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 季晓慧;罗木兰;王旭升 | 申请(专利权)人: | 中国地质大学(北京) |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F30/23 |
代理公司: | 北京恩赫律师事务所 11469 | 代理人: | 刘守宪 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 质点 追踪 算法 实现 流线 模拟 加速 方法 | ||
1.一种基于质点追踪算法实现流线模拟的加速方法,其特征在于,所述方法运行于带有若干个GPU的计算机或服务器,所述方法包括:
步骤1:将区域模型离散化为若干个网格,初始化模型的基本信息、含水层重要参数和速度公式中的参数;
步骤2:开启多个CPU线程,并使每个CPU线程唯一对应一个GPU,并将所有网格平均分为若干块传入若干个已开辟好空间的GPU,传输GPU计算时所需参数;
步骤3:每个GPU调用多个GPU线程同时计算若干网格的物理坐标p(x,y,z),然后根据向前和向后追踪算法得到经过p(x,y,z)的一条完整的流线;
步骤4:根据速度矢量的计算公式,计算质点的流速Vp(Vx,Vy,Vz);
步骤5:如果遇到边界条件,则向前或向后追踪结束,且执行步骤6,否则,根据流速计算出时间,并得到质点的下一个位置,此时,完成一次向前或向后追踪,并将新的位置作为当前质点坐标,执行步骤4;
步骤6:依次连接单个GPU线程计算得到的坐标点,即组成了一条完整的流线,单个GPU的所有线程计算完毕,将计算数据传输到CPU。
2.根据权利要求1所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,所述步骤1,还包括给定计算区域投影到x-y平面上的长度Lx和宽度Ly,含水层重要参数εx、εy、α、β,以及计算速度矢量的公式中的系数矩阵bmn,并将区域模型离散化为网格模型。
3.根据权利要求1所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,所述步骤4中,速度矢量的计算公式为:
公式(1)、(2)、(3)中,εx、εy、α、β是含水层重要参数,bmn是系数矩阵,Lx、Ly是计算区域投影到x-y平面后的长度和宽度,xp、yp和zp的计算公式如下:
公式(4)中,x、y、z是质点的物理坐标;
公式(1)、(2)、(3)中,Zmn表示水头分布的特征函数,其计算公式为公式(5),
公式(1)、(2)、(3)中,Wmn表示垂直流速的特征函数,计算公式为公式(6),
公式(5)和公式(6)中,λmn由公式(7)计算而来,
4.根据权利要求1所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,所述步骤5中,
边界条件为:z>0或者
若不满足边界条件,则根据下列公式(8)向前或向后跟踪一步:
公式(8)中,DIR的取值为1或-1,1表示向前追踪一步,-1表示向后追踪一步,Δt表示一个时间步长。
5.根据权利要求1所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,所述步骤6中,使用CUDA的拷贝函数,将计算结果从GPU传回到CPU上,最后将所有的计算结果保存到结果文件中。
6.根据权利要求5所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,通过基于共享内存并行架构的OpenMP技术开启多个CPU线程,并且每个CPU线程控制一个GPU,然后利用CUDA的kernel函数结合OpenMP技术,实现多个GPU上的线程级并行。
7.根据权利要求1所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,将最常使用的参数载入读取速度最快的寄存器中;将数据量最大且读取不频繁的数据载入容量最大但读取速度慢的全局内存中;将固定不变的参数载入读取速度最快且运行期间只读的常量内存中;将读取位置在逻辑上比较靠近且读取频繁的数据载入纹理内存中。
8.根据权利要求5所述的基于质点追踪算法实现流线模拟的加速方法,其特征在于,基于CUDA发并行架构,通过设定线程块block和块内线程thread的数量,设定并行加速的GPU总线程数量,实现线程级并行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国地质大学(北京),未经中国地质大学(北京)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810133612.6/1.html,转载请声明来源钻瓜专利网。