吳小飛 吳海成 趙秋娟

摘 要 endfio實現了ENDF(文檔1至文檔15)和PENDF格式數據的讀寫,并提供文檔的插入、查找等基礎功能。為驗證程序工作的正確性和可靠性,本文以CENDL-3.1庫和ENDF-B-VII.1庫數據為樣本,對endfio進行了測試,測試覆蓋了大部分評價數據的表達方式。測試表明,該接口庫能夠正確讀寫樣本中的所有數據。
【關鍵詞】endfio ENDF 測試
ENDF(Evaluated Nuclear Data Format)是評價核數據庫的標準格式,國際上眾多評價核數據庫均采用該格式存儲評價核數據。中國核數據中心正致力于開發一套具有自主知識產權的核數據處理系統-Ruler。Ruler程序本質上是一套加工ENDF格式數據的工具,因此處理ENDF格式數據文件的輸入輸出是整個項目的基礎。
目前,國際上應用最廣的核數據加工處理程序是NJOY。NJOY程序提供了一系列處理ENDF 格式I/O的子程序,這些子程序相互正交,構成一個功能完備的工具集。NJOY提供的這套工具與ENDF格式數據的文件結構息息相關。這種做法的好處是靈活度高,用戶可以根據自己的功能需求選擇相應的子程序,并結合具體情況進行性能調優。該方法在PREPRO、ENDVER等程序中有著廣泛的應用,但它有兩個明顯的缺點:第一,這套工具在減輕用戶心智負擔方面毫無建樹,使用這套工具的用戶仍然必須非常熟悉ENDF文件結構;第二,這套工具的抽象程度較低,它把底層實現的具體細節暴露無余,這意味著當ENDF格式發生變化時,用戶代碼不得不隨之做出修改,這嚴重影響了程序的可擴展性。此外,NJOY提供的這套工具還決定了用戶代碼中對ENDF格式數據的I/O操作相對分散,這進一步降低了用戶程序的可擴展性。目前,新的核數據格式GND的制訂與發布已經提上日程,未來Ruler程序需要能夠同時處理ENDF和GND格式的數據。如果沿用NJOY的思路,程序從ENDF格式向GND格式的遷移將十分困難。
綜上,為提高Ruler程序的開發效率、可維護性和可擴展性以及實現計算模塊與ENDF輸入輸出的相互獨立,中國核數據中心開發了核評價數據接口庫endfio。
1 endfio的主要特點
Endfio的基本設計思路是用“API-centric”模型取代原來(NJOY)的“file-centric”模型。它將NJOY中分散的I/O操作集中起來并封裝成庫,隱藏具體實現細節,只向用戶開放應用編程接口(API)。這樣,用戶只需要基于API編程,從而徹底從繁雜的ENDF格式細節中解放出來。
Endfio庫由兩部分組成,數據類型和用戶接口。數據類型由一系列層次分明的結構體組成,最頂層的結構是endf_file。與ENDF格式定義了核數據在磁盤文件中的存儲結構類似,endf_file類型定義了核數據在內存中的存儲結構,它實際上建立了磁盤與內存中數據的一一映射。新I/O系統的數據類型在設計上遵循了三個原則:一是數據變量的命名盡量保持與《ENDF格式手冊》一致,這樣做的好處是省掉了說明文檔的書寫,用戶在使用這些數據類型時參閱《ENDF格式手冊》即可;二是盡量提高變量名稱的復用性,同一變量名在不同的(互斥)分支下可以指代不同的物理量,這一做法為用戶代碼提供了便利;三是動態分配內存,提高內存使用效率。
表1列出了endfio提供的五個用戶接口及其功能。子程序read_endf_file和write_endf_file顧名思義,實現了(P)ENDF格式數據文件的讀寫。前面提到,新系統的數據類型大量使用了動態分配內存,子程序del_endf則負責回收這些內存。insert_mt和find_mt和前面三個接口不同,它們實際上分別代表一系列重載過程,用戶調用這兩個接口時,系統會根據傳遞參數的類型和數量自動選擇匹配的子程序。
與NJOY處理ENDF格式I/O的做法相比,endfio的抽象程度更高,這使得用戶代碼與ENDF文件的繁雜結構相隔絕。當ENDF格式發生改變時,endfio會相應變化,而用戶代碼則只需做少量修改,甚至不做修改。此外,由于用戶代碼與I/O庫相互獨立,將用戶代碼從ENDF格式遷移到新數據格式(如GND)的工作將大大簡化。
2 endfio的測試
整個測試流程如圖1所示。利用endfio編寫函數moder,該函數實現了ENDF格式數據文件進制的轉換。我們從十進制文件tape20出發,先用moder轉換成二進制文件tape21,再用moder將tape21重新轉換成十進制文件tape22。利用文件比對工具diff比較文件tape20和tape22,如果兩者內容一致,則認為endfio工作正確。
目前endfio能夠讀寫ENDF(文檔1至文檔15)和PENDF格式數據。我們以CENDL-3.1庫和ENDF-B-VII.1庫數據為樣本進行了測試。測試結果顯示,經endfio兩次轉換后得到的文件與原始文件內容基本相同,少許差異來源于ENDF格式本身的缺陷(ENDF數據存在冗余和不一致)。
3 總結
本文介紹了評價核數據接口庫endfio。該庫能夠正確處理ENDF(文檔1至文檔15)和PENDF格式文件的讀寫,并提供文檔的插入、查找等基礎功能。基于該庫提供的API,用戶代碼處理ENDF數據時將把重心放在物理模塊的功能開發,而不是處理ENDF格式細節上。為驗證程序工作的正確性和可靠性,本文以CENDL-3.1庫和ENDF-B-VII.1庫數據為樣本,對endfio進行了測試。測試表明,該庫能夠正確讀寫樣本中的所有數據。
參考文獻
[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.
作者簡介
吳小飛(1989-),男,江西省上饒市人。碩士研究生學歷。粒子物理與原子核物理專業。
作者單位
中國原子能科學研究院中國核數據中心 北京市 102413