一種蒙特卡羅粒子輸運(yùn)模擬中核截面數(shù)據(jù)處理優(yōu)化方法
【專利摘要】本發(fā)明公布了一種蒙特卡羅粒子輸運(yùn)模擬中核截面數(shù)據(jù)處理優(yōu)化方法,在傳統(tǒng)MC粒子輸運(yùn)模擬連續(xù)點(diǎn)截面處理與應(yīng)用的方法基礎(chǔ)上,歸并問題涉及的所用核素的能量網(wǎng)格點(diǎn)形成統(tǒng)一能量網(wǎng)格,使得每步輸運(yùn)只需對統(tǒng)一能量網(wǎng)格進(jìn)行一次搜索查找,由預(yù)處理得到的核素指針數(shù)組直接找到當(dāng)前能量在每個核素能量網(wǎng)格中的具體位置,替代傳統(tǒng)方法對材料中每個核素的不同能量網(wǎng)格的重復(fù)搜索查找,極大地減少了蒙特卡羅粒子輸運(yùn)計(jì)算中對能量網(wǎng)格的搜索查找次數(shù),在不損失計(jì)算精度的情況下提高計(jì)算速度;并根據(jù)點(diǎn)狀核數(shù)據(jù)能量點(diǎn)分布的特點(diǎn),引入能量分段思想形成能量網(wǎng)格的雙層查找模式,減少在分布密度較高區(qū)域的無效搜索次數(shù),提高單次網(wǎng)格搜索的效率。
【專利說明】-種蒙特卡羅粒子輸運(yùn)模擬中核截面數(shù)據(jù)處理優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及蒙特卡羅粒子輸運(yùn)計(jì)算中的一種核截面數(shù)據(jù)處理優(yōu)化方法,屬于原子 能科學(xué)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002] 蒙特卡羅(MC)方法是目前粒子輸運(yùn)模擬中較常用的方法。MC粒子輸運(yùn)模擬從連 續(xù)能量點(diǎn)截面的核數(shù)據(jù)中獲取粒子與物質(zhì)發(fā)生各種反應(yīng)的相關(guān)截面數(shù)據(jù)用于指導(dǎo)輸運(yùn)過 程中的各種抽樣過程。對于不同核素連續(xù)能量點(diǎn)的能量網(wǎng)格劃分各不相同,在MC計(jì)算中, 需要頻繁的根據(jù)入射能量對每個核素的能量網(wǎng)格進(jìn)行搜索找到對應(yīng)的網(wǎng)格索引,以得到相 應(yīng)的截面。這些頻繁的網(wǎng)格搜索導(dǎo)致核素多時計(jì)算很慢,在燃耗計(jì)算中尤其明顯。
[0003] 統(tǒng)一能量網(wǎng)格是Serpent等軟件使用的一種加速M(fèi)C計(jì)算的方法。其基本思想是: 構(gòu)造所用核素適用的能量網(wǎng)格,計(jì)算時,只需對該能量網(wǎng)格進(jìn)行一次搜索,即可得到當(dāng)前能 量下所有核素的截面數(shù)據(jù),避免了因各核素能量網(wǎng)格不同而進(jìn)行的重復(fù)的能量網(wǎng)格搜索。 但是,已有的統(tǒng)一能量網(wǎng)格方法,考慮到計(jì)算速度、計(jì)算精度與內(nèi)存開銷,通常有兩種處理 方法:一種為了保證原始核數(shù)據(jù)的精度,通常將所有核素的能量網(wǎng)格合并,并對所有能點(diǎn)預(yù) 計(jì)算所有核素的各種截面和每種材料的各種宏觀截面,存儲在內(nèi)存中供輸運(yùn)計(jì)算使用,因 此會占用非常大的內(nèi)存,甚至因?yàn)樾枰獌?nèi)存太大而不能進(jìn)行計(jì)算;另外一種為了避免大內(nèi) 存開銷,在建立統(tǒng)一能量網(wǎng)格時,不是合并所有核素的能量網(wǎng)格,而是自定義一套能量網(wǎng)格 或者對所有核素的能量網(wǎng)格進(jìn)行精簡,這樣的處理導(dǎo)致了原始核數(shù)據(jù)精度的部分丟失。如 何在保持計(jì)算精度且不顯著增加內(nèi)存使用的情況下,提高統(tǒng)一能量網(wǎng)格方法對MC計(jì)算的 加速效果是需要解決的關(guān)鍵問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問題為:本發(fā)明的目的在于改善傳統(tǒng)蒙特卡羅粒子輸運(yùn)計(jì)算 方法在核截面數(shù)據(jù)處理與使用效率上的不足,提供了一種蒙特卡羅核截面數(shù)據(jù)處理優(yōu)化方 法,在保持計(jì)算精度的前提下,提高計(jì)算速度。
[0005] 本發(fā)明的技術(shù)方案如下:一種蒙特卡羅程序中核截面數(shù)據(jù)處理優(yōu)化方法,其特征 在于包括以下步驟:
[0006] (1)對蒙特卡羅程序從數(shù)據(jù)庫中讀取的核數(shù)據(jù)進(jìn)行預(yù)處理,包括以下內(nèi)容:
[0007] a.統(tǒng)一能量網(wǎng)格的建立:在讀取核素?cái)?shù)據(jù)的時候,采用歸并法合并問題涉及的所 用核素的能量網(wǎng)格形成統(tǒng)一能量網(wǎng)格數(shù)組UnionErgArray[N tot],其中Nt(rt表示統(tǒng)一能量網(wǎng) 格中的網(wǎng)格數(shù);
[0008] b.核素指針數(shù)組的建立:對比每個單核素i的能量網(wǎng)格EryArrayjNi],隊(duì)表示 網(wǎng)格數(shù),與統(tǒng)一能量網(wǎng)格數(shù)組UnionErgArray[N t(rt],找出統(tǒng)一能量網(wǎng)格數(shù)組中的每個能點(diǎn) UnionErgArray[j]在單核素i能量網(wǎng)格中的位置,標(biāo)記為PositioriiU],存入數(shù)組,形成核 素i的核素指針數(shù)組,標(biāo)記為PositioriilXJ ;
[0009] c.核素總截面數(shù)組與材料宏觀總截面數(shù)組的建立:在核素指針數(shù)組建立的同時, 依據(jù)單核素i的能量網(wǎng)格值計(jì)算線性插值因子:
【權(quán)利要求】
1. 一種蒙特卡羅粒子輸運(yùn)模擬中核截面數(shù)據(jù)處理優(yōu)化方法,其特征在于包括以下步 驟: 步驟(1)對蒙特卡羅粒子輸運(yùn)模擬程序從核數(shù)據(jù)庫中讀取的核數(shù)據(jù)進(jìn)行預(yù)處理,包括 以下步驟: (11) 統(tǒng)一能量網(wǎng)格的建立:在讀取核素?cái)?shù)據(jù)時,采用歸并法合并問題涉及的所用核素 的能量網(wǎng)格,形成統(tǒng)一能量網(wǎng)格數(shù)組,標(biāo)記為UnionErgArray [Nt(rt],其中Nt()t表示統(tǒng)一能量 網(wǎng)格中的網(wǎng)格數(shù); (12) 核素指針數(shù)組的建立:對比每個單核素 i的能量網(wǎng)格EryArrayjNi],隊(duì)表示網(wǎng) 格數(shù),與步驟(11)中產(chǎn)生的統(tǒng)一能量網(wǎng)格數(shù)組UnionErgArray[NtJ,找出統(tǒng)一能量網(wǎng)格數(shù) 組中的每個能點(diǎn)UnionErgArray[j]在單核素 i能量網(wǎng)格EryArrayjNi]中的位置,標(biāo)記為 PositioriiU],存入數(shù)組,形成核素 i的核素指針數(shù)組,標(biāo)記為PositioriilXJ ; (13) 核素總截面數(shù)組與材料宏觀總截面數(shù)組的建立:在步驟(12)中建立核素指針數(shù) 組的同時,依據(jù)單核素 i的能量網(wǎng)格值計(jì)算線性插值因子:
插值得到核素 i的總截面: 〇=〇 [Positiorii [j] ]+factor* ( 〇 [Positionj [ j]+1] - 〇 [Positionj [ j]]), 其中〇 [PositioriiU]]表示單核素 i能量網(wǎng)格對應(yīng)的總截面數(shù)組中的第PositioriiU] 個值,將總截面值存入數(shù)組,形成單核素 i的總截面數(shù)組,標(biāo)記為〇 i [NtJ,將材料k中所有 核素的總截面值按密度比例求和得到材料的宏觀總截面數(shù)組,標(biāo)記為2k[NtJ ; (14) 分段能點(diǎn)指針數(shù)組的建立:根據(jù)用戶給定的或者程序內(nèi)置的分段能點(diǎn)數(shù)組 PointwiseErgArray[Npw],其中Npw表示分段能點(diǎn)個數(shù),遍歷步驟(11)中產(chǎn)生的統(tǒng)一能量網(wǎng) 格數(shù)組UnionErgArray[Ntot],找出分段能點(diǎn)數(shù)組中每個能點(diǎn)在統(tǒng)一能量網(wǎng)格中的位置,存 入數(shù)組,形成分段能點(diǎn)指針數(shù)組,標(biāo)記為P〇sitionpw[Npw]; 步驟(2)在蒙特卡羅粒子輸運(yùn)模擬中需要使用截面數(shù)據(jù)時,對各類截面進(jìn)行計(jì)算,包 括以下步驟: (21) 查找當(dāng)前能量在步驟(11)中產(chǎn)生的統(tǒng)一能量網(wǎng)格數(shù)組UnionErgArray[Ntot]中 的位置,首先,在分段能點(diǎn)數(shù)組P〇intwiseErgArray[Npw]中搜索當(dāng)前能量erg,得到erg 在分段能點(diǎn)數(shù)組中的位置為Npwl與Npwl+1之間;其次,根據(jù)步驟(14)中得到的分段能 點(diǎn)指針數(shù)組P〇intwi seErgArray [Npw],得到erg在統(tǒng)一能量網(wǎng)格數(shù)組中的位置為p 1 = Positionpw[Npwl]與p2 = Positionpw[Npwl+l]之間;再次,使用二分查找法在統(tǒng)一能量網(wǎng)格 數(shù)組UnionErgArray[Nt()t]的pi到p2區(qū)間上進(jìn)行搜索得到erg在統(tǒng)一能量網(wǎng)格中的精確 位置Mainindex,并得到插值因子:
(22) 在抽樣粒子輸運(yùn)長度時需要計(jì)算材料的宏觀截面,依據(jù)步驟(21)中得到的當(dāng)前 能量erg在統(tǒng)一能量網(wǎng)格中的精確位置Mainindex和插值因子fmain,對步驟(13)中得到 的當(dāng)前材料的宏觀總截面數(shù)組2k[NtJ進(jìn)行線性插值得到材料的宏觀截面I:: 2 = 2k[Mainindex]+fmainX (2k[Mainindex]-2k[Mainindex]); (23) 在抽樣反應(yīng)核素時需要使用當(dāng)前材料中各核素的總截面,根據(jù)步驟(21)中得到 的當(dāng)前能量erg在統(tǒng)一能量網(wǎng)格中的精確位置Mainindex和插值因子fmain,同步驟(22) 中,直接依據(jù)步驟(13)中得到的每個核素的總截面數(shù)組〇 jNtJ進(jìn)行線性插值得到每個核 素的總截面〇 i : 〇 i = 〇 j [Mainindex]+fmainX (〇 j [Mainindex] - 〇 j [Mainindex]); (24) 在抽樣反應(yīng)類型或物理參數(shù)計(jì)算時需要計(jì)算當(dāng)前反應(yīng)核素 i的多種反應(yīng)截面, 根據(jù)步驟(21)中得到的當(dāng)前能量erg在統(tǒng)一能量網(wǎng)格中的精確位置Mainindex,對應(yīng)步驟 (12)中得到的當(dāng)前核素 i的核素指針數(shù)組Positiorii [Mainindex]得到erg在核素 i的能 量網(wǎng)格中的位置P,線性插值因子f由下式得到: f = (erg-EryArrayj [p]) / (EryArrayj [p+1] -EryArrayj [p]), 線性插值得到各種反應(yīng)截面。
【文檔編號】G06F19/00GK104346533SQ201410623626
【公開日】2015年2月11日 申請日期:2014年11月6日 優(yōu)先權(quán)日:2014年11月6日
【發(fā)明者】郝麗娟, 鄭華慶, 孫光耀, 宋婧, 吳宜燦 申請人:中國科學(xué)院合肥物質(zhì)科學(xué)研究院