[發明專利]基于GPU的多粒子輸運仿真方法有效
| 申請號: | 201410146948.8 | 申請日: | 2014-04-10 |
| 公開(公告)號: | CN103955567B | 公開(公告)日: | 2017-02-08 |
| 發明(設計)人: | 楊磊;張勛超;高笑菲;齊記;付芬;張雅玲;張智磊 | 申請(專利權)人: | 中國科學院近代物理研究所 |
| 主分類號: | G06F17/50 | 分類號: | G06F17/50 |
| 代理公司: | 中科專利商標代理有限責任公司11021 | 代理人: | 李敬文 |
| 地址: | 730000 甘*** | 國省代碼: | 甘肅;62 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 gpu 粒子 輸運 仿真 方法 | ||
1.一種基于GPU的多粒子輸運仿真方法,包括以下步驟:
a、使用蒙特卡洛算法對粒子輸運建模,建立包括多種幾何體的空間,向CPU和GPU分別分配內存空間,在CPU中進行數據初始化,將初始化后的數據從CPU的內存空間拷貝到GPU的內存空間中;
b、在CPU中從源產生多個粒子,所述多個粒子包括光子、中子和電子,每個粒子具有粒子信息,包括粒子的種類、位置、速度、權重及所在幾何體的編號,將粒子信息連同粒子數目儲存在相應數組中;
c、判斷光子和中子數目之和是否大于設定值,如果數目之和大于設定值,則根據該數目之和確定要使用的線程數目,并將每個中子或光子分配給GPU中的一個線程進行處理,計算前進距離以及判斷粒子是否死亡;如果數目之和不大于設定值,則由CPU處理每個中子或光子,計算前進距離以及判斷粒子是否死亡;
d、由CPU依據中子、光子和電子的碰撞事件數目重新劃分線程數目,并且GPU中每個線程處理一個碰撞事件;
e、判斷粒子是否死亡,如果繼續存活,將粒子的信息更新;
f、判斷是否產生二次粒子,如果產生,將二次粒子的信息存儲;
g、由CPU重新統計所有存活的粒子信息,統計需要處理的粒子的數目;
h、判斷運行時間是否大于設定值,如果大于設定值,則輸出統計量并釋放CPU和GPU的內存空間,所述方法結束;
i、如果運行時間不大于設定值,則判斷要處理的粒子的數目是否小于設定的最小值;如果小于最小值,則返回步驟b,否則返回步驟c;
其中GPU包括多個流處理器,所述多個流處理器通過多個線程對粒子輸運仿真進行并行處理,并且所述多個流處理器對粒子的輸運仿真和碰撞事件的處理是同步進行的。
2.根據權利要求1所述的方法,其中步驟c還包括:
對于處理的中子或光子,獲得時間截斷距離、到達邊界距離、平均自由程以及碰撞距離;
計算以上距離之中的最小距離;
如果最小距離是時間截斷距離,則確定該中子或光子死亡;
如果最小距離是達到邊界距離,則更新該中子或光子的所在幾何體的編號;
如果最小距離是平均自由程,則用其余三個距離減掉平均自由程,并返回到步驟c的開始;
如果最小距離是碰撞距離,則判斷碰撞是中子碰撞還是光子碰撞。
3.根據權利要求1所述的方法,其中在步驟e中如下處理碰撞事件:
如果碰撞事件為電子碰撞事件,則計算電子在上一個最小距離中的能量損失,將產生的二次粒子的數目和狀態進行記錄,并返回給CPU;
如果碰撞事件為光子碰撞事件,則抽樣碰撞核素,處理光子反應,將產生的二次粒子的數目和狀態進行記錄,并返回給CPU;
如果碰撞事件為中子碰撞事件,則抽樣碰撞核素,處理中子反應,將產生的二次粒子的數目和狀態進行記錄,并返回給CPU。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院近代物理研究所,未經中國科學院近代物理研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410146948.8/1.html,轉載請聲明來源鉆瓜專利網。





