主权项 |
一种利用多体作用模型进行粒子计算的方法,其特征在于,该方法在加载有图形处理单元GPU的计算机上实现,所述GPU包括计算内核、全局内存、共享内存、常量内存以及纹理内存;该方法包括:步骤1)、将粒子系统中粒子的属性信息以及每个粒子的邻近粒子的标号信息保存到所述计算机的系统内存中,所述粒子的属性信息包括初始的位置、速度、加速度、势能,以及粒子标号、粒子种类;步骤2)、将所述系统内存中的粒子属性信息以及每个粒子的邻近粒子标号信息传输到所述GPU的全局内存中,并在所述全局内存中为每个粒子对其邻近粒子施加的作用力开辟存储数组;步骤3)、为所述粒子系统中的每一个粒子单独分配一个所述GPU中的计算线程;步骤4)、在为粒子所分配的线程上,根据所述的多体作用模型计算线程所对应粒子的势能,然后通过对势能求导的力计算模型获取该粒子所受到的作用力,并将粒子对其各个邻近粒子的作用力存储在所述GPU的共享内存中,待与所有邻近粒子相互作用计算完毕后,再将所述粒子对邻近粒子的作用力写回到步骤2)所得到的在全局内存中开辟的力存储数组中;步骤5)、在为粒子所分配的线程上,根据本线程计算的对应粒子标号,把步骤4)中该粒子邻近粒子所在线程计算的对本粒子的受力从所述全局内存的存储数组中读出,然后再累加到步骤4)计算得到的粒子所受到的作用力上,得到粒子所受到的完整作用力;步骤6)、根据步骤5)计算得到的粒子所受到的完整作用力确定粒子的加速度,然后由运动方程结合所述属性信息中初始的位置、速度信息,计算下一时刻的速度与位置;步骤7)、重复执行上述的粒子作用力计算、加速度计算、速度与位置计算操作,直至整个粒子系统达到稳定状态或满足用户所要求的重复计算次数。 |