吳小飛 吳海成 趙秋娟
摘 要 endfio實(shí)現(xiàn)了ENDF(文檔1至文檔15)和PENDF格式數(shù)據(jù)的讀寫,并提供文檔的插入、查找等基礎(chǔ)功能。為驗(yàn)證程序工作的正確性和可靠性,本文以CENDL-3.1庫和ENDF-B-VII.1庫數(shù)據(jù)為樣本,對(duì)endfio進(jìn)行了測(cè)試,測(cè)試覆蓋了大部分評(píng)價(jià)數(shù)據(jù)的表達(dá)方式。測(cè)試表明,該接口庫能夠正確讀寫樣本中的所有數(shù)據(jù)。
【關(guān)鍵詞】endfio ENDF 測(cè)試
ENDF(Evaluated Nuclear Data Format)是評(píng)價(jià)核數(shù)據(jù)庫的標(biāo)準(zhǔn)格式,國際上眾多評(píng)價(jià)核數(shù)據(jù)庫均采用該格式存儲(chǔ)評(píng)價(jià)核數(shù)據(jù)。中國核數(shù)據(jù)中心正致力于開發(fā)一套具有自主知識(shí)產(chǎn)權(quán)的核數(shù)據(jù)處理系統(tǒng)-Ruler。Ruler程序本質(zhì)上是一套加工ENDF格式數(shù)據(jù)的工具,因此處理ENDF格式數(shù)據(jù)文件的輸入輸出是整個(gè)項(xiàng)目的基礎(chǔ)。
目前,國際上應(yīng)用最廣的核數(shù)據(jù)加工處理程序是NJOY。NJOY程序提供了一系列處理ENDF 格式I/O的子程序,這些子程序相互正交,構(gòu)成一個(gè)功能完備的工具集。NJOY提供的這套工具與ENDF格式數(shù)據(jù)的文件結(jié)構(gòu)息息相關(guān)。這種做法的好處是靈活度高,用戶可以根據(jù)自己的功能需求選擇相應(yīng)的子程序,并結(jié)合具體情況進(jìn)行性能調(diào)優(yōu)。該方法在PREPRO、ENDVER等程序中有著廣泛的應(yīng)用,但它有兩個(gè)明顯的缺點(diǎn):第一,這套工具在減輕用戶心智負(fù)擔(dān)方面毫無建樹,使用這套工具的用戶仍然必須非常熟悉ENDF文件結(jié)構(gòu);第二,這套工具的抽象程度較低,它把底層實(shí)現(xiàn)的具體細(xì)節(jié)暴露無余,這意味著當(dāng)ENDF格式發(fā)生變化時(shí),用戶代碼不得不隨之做出修改,這嚴(yán)重影響了程序的可擴(kuò)展性。此外,NJOY提供的這套工具還決定了用戶代碼中對(duì)ENDF格式數(shù)據(jù)的I/O操作相對(duì)分散,這進(jìn)一步降低了用戶程序的可擴(kuò)展性。目前,新的核數(shù)據(jù)格式GND的制訂與發(fā)布已經(jīng)提上日程,未來Ruler程序需要能夠同時(shí)處理ENDF和GND格式的數(shù)據(jù)。如果沿用NJOY的思路,程序從ENDF格式向GND格式的遷移將十分困難。
綜上,為提高Ruler程序的開發(fā)效率、可維護(hù)性和可擴(kuò)展性以及實(shí)現(xiàn)計(jì)算模塊與ENDF輸入輸出的相互獨(dú)立,中國核數(shù)據(jù)中心開發(fā)了核評(píng)價(jià)數(shù)據(jù)接口庫endfio。
1 endfio的主要特點(diǎn)
Endfio的基本設(shè)計(jì)思路是用“API-centric”模型取代原來(NJOY)的“file-centric”模型。它將NJOY中分散的I/O操作集中起來并封裝成庫,隱藏具體實(shí)現(xiàn)細(xì)節(jié),只向用戶開放應(yīng)用編程接口(API)。這樣,用戶只需要基于API編程,從而徹底從繁雜的ENDF格式細(xì)節(jié)中解放出來。
Endfio庫由兩部分組成,數(shù)據(jù)類型和用戶接口。數(shù)據(jù)類型由一系列層次分明的結(jié)構(gòu)體組成,最頂層的結(jié)構(gòu)是endf_file。與ENDF格式定義了核數(shù)據(jù)在磁盤文件中的存儲(chǔ)結(jié)構(gòu)類似,endf_file類型定義了核數(shù)據(jù)在內(nèi)存中的存儲(chǔ)結(jié)構(gòu),它實(shí)際上建立了磁盤與內(nèi)存中數(shù)據(jù)的一一映射。新I/O系統(tǒng)的數(shù)據(jù)類型在設(shè)計(jì)上遵循了三個(gè)原則:一是數(shù)據(jù)變量的命名盡量保持與《ENDF格式手冊(cè)》一致,這樣做的好處是省掉了說明文檔的書寫,用戶在使用這些數(shù)據(jù)類型時(shí)參閱《ENDF格式手冊(cè)》即可;二是盡量提高變量名稱的復(fù)用性,同一變量名在不同的(互斥)分支下可以指代不同的物理量,這一做法為用戶代碼提供了便利;三是動(dòng)態(tài)分配內(nèi)存,提高內(nèi)存使用效率。
表1列出了endfio提供的五個(gè)用戶接口及其功能。子程序read_endf_file和write_endf_file顧名思義,實(shí)現(xiàn)了(P)ENDF格式數(shù)據(jù)文件的讀寫。前面提到,新系統(tǒng)的數(shù)據(jù)類型大量使用了動(dòng)態(tài)分配內(nèi)存,子程序del_endf則負(fù)責(zé)回收這些內(nèi)存。insert_mt和find_mt和前面三個(gè)接口不同,它們實(shí)際上分別代表一系列重載過程,用戶調(diào)用這兩個(gè)接口時(shí),系統(tǒng)會(huì)根據(jù)傳遞參數(shù)的類型和數(shù)量自動(dòng)選擇匹配的子程序。
與NJOY處理ENDF格式I/O的做法相比,endfio的抽象程度更高,這使得用戶代碼與ENDF文件的繁雜結(jié)構(gòu)相隔絕。當(dāng)ENDF格式發(fā)生改變時(shí),endfio會(huì)相應(yīng)變化,而用戶代碼則只需做少量修改,甚至不做修改。此外,由于用戶代碼與I/O庫相互獨(dú)立,將用戶代碼從ENDF格式遷移到新數(shù)據(jù)格式(如GND)的工作將大大簡(jiǎn)化。
2 endfio的測(cè)試
整個(gè)測(cè)試流程如圖1所示。利用endfio編寫函數(shù)moder,該函數(shù)實(shí)現(xiàn)了ENDF格式數(shù)據(jù)文件進(jìn)制的轉(zhuǎn)換。我們從十進(jìn)制文件tape20出發(fā),先用moder轉(zhuǎn)換成二進(jìn)制文件tape21,再用moder將tape21重新轉(zhuǎn)換成十進(jìn)制文件tape22。利用文件比對(duì)工具diff比較文件tape20和tape22,如果兩者內(nèi)容一致,則認(rèn)為endfio工作正確。
目前endfio能夠讀寫ENDF(文檔1至文檔15)和PENDF格式數(shù)據(jù)。我們以CENDL-3.1庫和ENDF-B-VII.1庫數(shù)據(jù)為樣本進(jìn)行了測(cè)試。測(cè)試結(jié)果顯示,經(jīng)endfio兩次轉(zhuǎn)換后得到的文件與原始文件內(nèi)容基本相同,少許差異來源于ENDF格式本身的缺陷(ENDF數(shù)據(jù)存在冗余和不一致)。
3 總結(jié)
本文介紹了評(píng)價(jià)核數(shù)據(jù)接口庫endfio。該庫能夠正確處理ENDF(文檔1至文檔15)和PENDF格式文件的讀寫,并提供文檔的插入、查找等基礎(chǔ)功能?;谠搸焯峁┑腁PI,用戶代碼處理ENDF數(shù)據(jù)時(shí)將把重心放在物理模塊的功能開發(fā),而不是處理ENDF格式細(xì)節(jié)上。為驗(yàn)證程序工作的正確性和可靠性,本文以CENDL-3.1庫和ENDF-B-VII.1庫數(shù)據(jù)為樣本,對(duì)endfio進(jìn)行了測(cè)試。測(cè)試表明,該庫能夠正確讀寫樣本中的所有數(shù)據(jù)。
參考文獻(xiàn)
[1]Herman M,Trkov A.ENDF-6 Formats Manual,Data formats and procedures for the Evaluated Nuclear Data File ENDF/B-VI and ENDF/B-VII[R].Upton,NY 11973-5000,USA:Brookhaven National Laboratory,2009.
[2]macfarlane R E.NJOY99.0,code system for producing pointwise and multigroup neutron and photon cross section from ENDF/B Data[R].Los Alamos,New Mexico:Los Alamos National Laboratory,2000.
[3]R E MACFARLANEF,A C KAHLER.Methods for Processing ENDF/B-VII with NJOY[J].Nuclear Data Sheets,111,12,2739(2010).
[4]D E CULLEN. PREPRO 2004—ENDF/B Pre-Processing Codes[R].IAEA-NDS-39 Rev.12,International Atomic Energy Agency 2004.
作者簡(jiǎn)介
吳小飛(1989-),男,江西省上饒市人。碩士研究生學(xué)歷。粒子物理與原子核物理專業(yè)。
作者單位
中國原子能科學(xué)研究院中國核數(shù)據(jù)中心 北京市 102413