胡 濤, 梁 森, 萬 波
西安電子科技大學, 西安 710071
空間輻射效應是影響航天器在軌穩(wěn)定運行的重要因素之一,在航天器故障中有近一半是由空間環(huán)境中各類輻射造成的[1].隨著航天活動的不斷深入,對航天器抗輻射性能的要求也越來越高.為了提高航天器運行的安全性和穩(wěn)定性,對空間輻射效應進行仿真計算是重要手段之一.
隨著計算機硬件與軟件的發(fā)展,對各類復雜系統(tǒng)的仿真需求越來越多、要求越來越高.針對空間輻射環(huán)境及其抗輻射加固的仿真,國外的NASA和ESA開發(fā)了RadBelt、NOVICE 和Space Radiation Model 等空間輻射環(huán)境預測、輻射效應仿真軟件.黨煒等[2]采用CBS方法建立了空間輻射環(huán)境仿真平臺,滕云飛等[3]開發(fā)了針對近地空間電磁環(huán)境的仿真系統(tǒng),馬繼峰等[4]開展了基于Geant4的空間輻射環(huán)境仿真系統(tǒng)設計研究.以上研究雖然能夠一定程度上滿足空間輻射效應的仿真模擬,但是這些系統(tǒng)要么需要在相應平臺上安裝軟件,要么基于特定場景而不具備通用性.另外,空間輻射效應包含多種復雜的空間輻射現(xiàn)象,針對不同的仿真需求,使用的仿真工具和仿真流程都不同.因此對仿真系統(tǒng)的研究是一項涉及多領域、多學科的復雜工程,單一的仿真工具、固定的流程不能滿足用戶對仿真系統(tǒng)準確性、靈活性、交互性的要求.
針對空間輻射效應仿真的復雜性,本文提出了一種基于MCNP的空間輻射效應可視化仿真系統(tǒng).MCNP程序是由美國Los Alamos國家實驗室開發(fā)的基于蒙特卡洛方法的粒子運輸程序[5],用于計算中子、光子和電子的運輸過程,可以很好地模擬空間輻射效應.平臺基于云計算和微服務開發(fā),云計算是一種能夠實現(xiàn)對資源池按需分配的計算模式[6],而微服務是在SOA的基礎上進一步組件化、松耦合的架構風格.基于云計算和微服務的仿真系統(tǒng)具有高擴展性、高靈活性和高容錯等特點.除此之外,為了提高仿真系統(tǒng)的交互性和仿真過程的直觀性,系統(tǒng)使用WebGL技術為仿真用戶提供可視化仿真功能.
本文將首先介紹基于MCNP的空間輻射效應可視化仿真系統(tǒng)的整體架構與典型可視化仿真通用架構,然后針對MCNP可視化仿真的設計與實現(xiàn)進行詳細闡述,并給出系統(tǒng)測試結果,最后對本文工作作出總結與展望.
針對空間輻射效應仿真對靈活性、擴展性、交互性的需求以及對用戶友好度的考慮,本文提出如圖1所示的基于MCNP的空間輻射效應可視化仿真系統(tǒng)架構.
基于云計算對底層硬件資源按需分配的計算模式,系統(tǒng)架構可分為基礎服務層(IaaS)、平臺服務層(PaaS)和軟件服務層(SaaS).基礎服務層主要為平臺服務層提供虛擬資源和硬件資源.平臺服務層通過中間件調(diào)用基礎服務層提供的資源為軟件服務層提供仿真流程需要的各類組件、數(shù)據(jù)存儲以及仿真計算的微服務接口.軟件服務層通過中間件調(diào)用平臺服務層的組件和接口為用戶提供多類仿真單元、流程定制、虛擬機資源、結果分析等功能.
從仿真用戶角度考慮,典型可視化仿真的需求主要是便利、直觀的仿真模型及參數(shù)輸入方式和仿真結果分析.而從仿真平臺角度考慮,由于仿真軟件和仿真數(shù)據(jù)的多樣化,平臺更需要易擴展、低耦合的模式對仿真流程中初始化數(shù)據(jù)、交互數(shù)據(jù)、仿真數(shù)據(jù)進行處理.對于數(shù)據(jù)來源、種類多樣的仿真單元,系統(tǒng)則需要實現(xiàn)對于不同類型數(shù)據(jù)的聯(lián)合處理.本文綜合考慮用戶和平臺對于典型可視化仿真流程的需求,提出一種通用的典型可視化仿真架構如圖2所示.
通用架構主要分為可視化層、中間數(shù)據(jù)層、數(shù)據(jù)處理層、數(shù)據(jù)存儲層以及中間件.其中:可視化層是直接面向用戶的界面,為用戶提供基礎服務、可視化、數(shù)據(jù)交互等功能,便于用戶進行仿真流程與模型設計.中間數(shù)據(jù)層是在可視化仿真過程中,用戶與平臺進行數(shù)據(jù)交互的中間層.數(shù)據(jù)處理層為平臺提供對各類資源、數(shù)據(jù)的處理和調(diào)度,從而對仿真過程進行可視化和持久化.數(shù)據(jù)存儲層用于存儲用戶個性化參數(shù)、仿真流程所需模型、數(shù)據(jù)和仿真結果數(shù)據(jù).中間件則負責上下層之間數(shù)據(jù)、模塊、接口間的轉換、通信、調(diào)度和協(xié)同.
空間輻射效應引起的航天器輻射破壞主要包括總劑量效應、單粒子效應以及位移損傷,其中總劑量效應和單粒子效應占了94%[2].對空間輻射效應的模擬研究主要有地面模擬和計算機模擬兩種,因空間輻射環(huán)境中不同的環(huán)境具有一定的協(xié)同效應[7],地面模擬受試驗成本影響而有一些限制.而計算機模擬則可以很好地解決這些問題.
使用MCNP進行空間輻射效應模擬需要在inp文件(MCNP的輸入文件)中對該幾何模型進行描述[8],但目前inp文件基本靠手工編寫,這種方式對復雜幾何模型的描述顯得尤為困難.除此之外,inp文件中還需要包含計算所需的仿真參數(shù),且這些參數(shù)大多與幾何模型息息相關.這讓inp文件的手動編寫變得更加復雜.針對MCNP輸入文件的編寫困難,目前的輔助程序研究方向可分為兩類: 第一類是研究可視化環(huán)境,讓用戶在可視化環(huán)境中創(chuàng)建所需幾何模型以及相關參數(shù); 第二類是研究轉換程序,先利用ProE等三維設計軟件設計模型,再通過轉換程序將設計出的模型文件轉換為MCNP輸入文件中的幾何模型[9].
目前國內(nèi)外沿著這兩種方向已有不少成果,李春燕等人的MCNPIN程序實現(xiàn)了可視化編寫mcnp輸入文件[10],其通過OpenGL處理三維圖形的顯示并利用VC++編程實現(xiàn)數(shù)據(jù)的輸入和顯示,但是程序的顯示精度較低,遠不如現(xiàn)有的CAD軟件.德國 Karlsruhe 研究中心反應堆安全研究所對轉換類工具進行了深入研究[11].其中中國科學院FDS團隊開發(fā)的蒙特卡洛粒子運輸計算自動建模系統(tǒng)MCAM功能尤為強大[12],能夠為用戶實現(xiàn)可視化的自動建模,但其主要面向的是核領域的粒子運輸問題且需要在平臺上安裝相應軟件.為了在系統(tǒng)上實現(xiàn)基于MCNP的可視化仿真,系統(tǒng)采用WebGL技術實現(xiàn)inp文件的可視化并通過中間件實現(xiàn)了基于igs數(shù)據(jù)和json數(shù)據(jù)的inp文件生成算法.
在通用可視化仿真架構的基礎上結合MCNP仿真的特性,基于MCNP的可視化仿真架構如圖3所示.
可視化層:在幾何模型設計方面,因現(xiàn)有的CAD技術已經(jīng)發(fā)展的非常成熟且考慮到大部分使用者的操作習慣,仍將ProE等三維CAD設計軟件作為幾何模型設計的主要工具.而在可視化環(huán)境方面,隨著Google、FireFox等主流瀏覽器對html5、WebGL的支持以及GPU性能和渲染技術的發(fā)展,使用瀏覽器作為復雜三維圖形展現(xiàn)與編輯平臺成為可能.且基于B/S架構的Web技術具有高通用、高獨立、易擴展、易移植等特點.因此程序將基于ThreeJS Editor的三維前端編輯器作為主要的可視化環(huán)境.在可視化環(huán)境中實現(xiàn)對導入幾何模型的展示和參數(shù)設置、輕量幾何模型的設計與參數(shù)設置、定制化操作等.這樣使得程序既充分利用了現(xiàn)有的成熟CAD技術,方便了模型制作過程、減少了使用新工具帶來的工作量.也利用快速發(fā)展的Web前端三維技術,使得仿真模型的幾何模型設計和參數(shù)設置等更加形象直觀,提高了用戶的工作效率和體驗,實現(xiàn)了inp文件的幾何可視化與數(shù)據(jù)可視化.
中間數(shù)據(jù)層:主要分為3類文件:
1) 模型數(shù)據(jù).主要包含兩類幾何模型數(shù)據(jù),一個是用戶利用三維CAD軟件設計的幾何模型數(shù)據(jù)(下文統(tǒng)稱為igs文件)同時也是仿真計算的主要幾何模型數(shù)據(jù)來源、另一個則是前端三維可視化顯示使用的幾何模型數(shù)據(jù)(下文統(tǒng)稱為obj文件),實際上是利用模型處理模塊將igs文件轉換出的obj文件.也就是說,這兩類文件是同一幾何模型基于不同用途的不同表示.
2) json數(shù)據(jù).主要包含幾何數(shù)據(jù)和參數(shù)數(shù)據(jù).幾何數(shù)據(jù)是用戶在可視化環(huán)境中添加的幾何模型,而參數(shù)數(shù)據(jù)則是用戶為幾何模型設置的仿真參數(shù).
3) 仿真計算數(shù)據(jù).主要包含MCNP的輸入文件(下文統(tǒng)稱為inp文件)和輸出文件(下文統(tǒng)稱為out文件).inp文件是MCNP計算所需的輸入數(shù)據(jù),而out文件則是MCNP根據(jù)輸入數(shù)據(jù)進行計算后生成的輸出數(shù)據(jù).
數(shù)據(jù)處理層:主要分為3個模塊:
1) 幾何模型處理模塊.將igs文件轉換為可視化環(huán)境所需的obj文件.
2) 輸入文件處理模塊.根據(jù)igs幾何模型、可視化幾何模型以及仿真參數(shù)生成inp文件.
3) 仿真計算模塊.根據(jù)inp文件進行仿真計算.
數(shù)據(jù)與文件存儲層:存儲的文件包括仿真流程中生成的中間文件、仿真計算需要的模型文件,數(shù)據(jù)庫主要包含材料表、能譜表等仿真相關仿真參數(shù)表以及歷次仿真流程的記錄,便于用戶進行仿真計算的橫向、縱向對比.
通過該架構進行MCNP仿真的一般流程如下:
1.通過ProE或其它CAD三維設計軟件設計仿真模塊,并導出igs格式的幾何模型文件.
2.將igs文件上傳到服務器轉化為obj格式, web前端三維編輯器加載obj文件顯示模型.
3.利用前端三維編輯器進行模型的參數(shù)設置、不同輻射源的添加、參數(shù)設置以及一些其它定制化模型操作.
4.確認仿真參數(shù)的設置后,提取并生成參數(shù)數(shù)據(jù)在展示頁進行匯總展示以及校驗.
5.將校驗后的json數(shù)據(jù)上傳到服務器,服務器根據(jù)igs數(shù)據(jù)以及json數(shù)據(jù)將其轉化為inp文件并發(fā)送回前端頁面進行二次校驗.
6.二次校驗確認后,服務器調(diào)用MCNP程序進行自動化仿真.
7.仿真結束后,將仿真結果發(fā)送到前端進行展示.若結果有誤,則跳轉到1、2、3步重新進行仿真.若結果正確,則用戶可以選擇結束這次仿真或將仿真結果作為其它仿真的輸入?yún)?shù).
可視化顧名思義就是將數(shù)據(jù)轉換成圖形展示出來,再供用戶進行交互處理.具體到MCNP的輸入文件,即inp文件主要包括柵元卡、曲面卡和數(shù)據(jù)卡.柵元卡描述區(qū)域的形狀和材料,曲面卡描述構成柵元的曲面信息,數(shù)據(jù)卡則描述仿真計算的各類參數(shù),包括柵元重要性卡、材料信息卡、源描述卡、計數(shù)卡等.inp輸入文件的可視化不只包含幾何模型的幾何可視化,柵元的材料、密度、重要性等以及輻射源的類型、能量、輻射方向等的數(shù)據(jù)可視化也是整個可視化模塊中重要的一部分.
WebGL是一種3D繪圖協(xié)議,它可以為HTML5 Canvas提供硬件3D加速渲染,而Three JS Editor是在對WebGL進一步封裝后開發(fā)的開源前端編輯器框架.結合MCNP輸入文件的特點,其可視化模塊結構如圖4所示.
其中云代表仿真平臺返回的初始化數(shù)據(jù),橢圓代表用戶的操作,矩形代表可視化窗口.用戶在可視化環(huán)境中的交互處理主要有以下4個部分:
1)輕量幾何設置.基于Three JS提供的API為用戶提供一些簡單幾何形狀(長方體、圓柱、球體等)的設置,主要是為了能夠以igs模型為主設計個性化模型以及提供不同類型輻射源.
2)定制化操作設置.因仿真計算以及仿真目的的不同,在仿真模型的設計過程中很可能會需要一些特定的模型操作.而定制化操作就是為了方便用戶進行特定模型設置.
3)仿真參數(shù)設置.經(jīng)過以上兩個步驟就基本完成了幾何模型的定義,仿真參數(shù)設置即對輸入文件中數(shù)據(jù)卡的內(nèi)容進行設置.
4)數(shù)據(jù)校驗.模型轉換中間件根據(jù)相關的json數(shù)據(jù)以及igs數(shù)據(jù)生成inp文件并傳回可視化模塊供用戶校驗.這主要是為了防止使用者在模型設計過程中的疏忽以及模型轉換后的精度缺失.
以MCNP計算為例,我們在其定制化操作主要考慮了輸入文件中幾何模型的嚴謹性與完整性[12]以及數(shù)據(jù)卡中的源數(shù)據(jù)卡.
嚴謹性主要指幾何模型中相鄰實體必須嚴格共面,不能有重疊或縫隙.
完整性指的是MCNP計算模型中的實體必須充滿整個空間,不能有未定義的空腔.
每一個MCNP的計算問題都需要設置源,而在以往的大部分工作中大多將重點聚焦于幾何模型也就是輸入文件中曲面卡和柵元卡數(shù)據(jù)的生成上,而對輻射源的設計較簡單[10,13].這一方面是由于幾何模型是輸入文件中最關鍵的,另一方面則是因為源的設置相對比較簡單.但是對于一些粒子源數(shù)量較多或者非粒子源的仿真計算,其源的設置也是比較復雜的.為此,可視化環(huán)境中提供了多類型輻射源的設置功能.
除了源位置、輻射方向、仿真參數(shù)等設置方式相同的參數(shù)外,輻射源設置中針對不同類型的輻射源(點、面、體、柵元)提供了不同的參數(shù)設置過程.在點源的設置過程中,提供了多點源的設置.在面源和體源的設置過程中,針對不同的幾何形狀或幾何體提供不同的幾何參數(shù)設置,最后將其類型設為輻射源(默認添加的幾何體為普通柵元).
模型轉換中間件主要實現(xiàn)從igs模型到obj模型、可視化模型到MCNP模型的轉換以及相關的數(shù)據(jù)調(diào)度.模型轉換中間件的層次架構如圖5所示.
圖5 模型轉換中間件架構
其中igs到obj的轉換使用開源的FreeCAD工具包進行,而inp文件的生成需要結合igs文件與json數(shù)據(jù),其中包括幾何數(shù)據(jù)和參數(shù)數(shù)據(jù),相對比較復雜.不過對于igs文件到inp文件的轉換,國內(nèi)外已有了較為成熟的研究.陳艾華[14]針對簡單幾何體的轉換做了相關研究和實現(xiàn),李俊偉[14]則對更復雜的圖形進行了研究和實現(xiàn).因此在輸入文件轉換方面,本文將主要介紹igs文件的信息與json數(shù)據(jù)的信息結合部分.
igs文件主要提供inp文件中柵元卡和曲面卡的數(shù)據(jù),而json數(shù)據(jù)可以分為3類:1.仿真參數(shù),提供數(shù)據(jù)卡內(nèi)主要參數(shù).2.幾何模型,可視化環(huán)境中添加的幾何體參數(shù),提供柵元卡和曲面卡部分數(shù)據(jù).3.幾何模型相關參數(shù),如材料層數(shù)、厚度等需要聯(lián)合柵元卡和曲面卡的數(shù)據(jù)生成新數(shù)據(jù)或更改、刪除舊數(shù)據(jù)的參數(shù).輸入文件轉換過程如圖6所示.
圖6 輸入文件轉換過程
輸入文件轉換首先進行igs文件處理,提取出igs文件中的幾何模型存入柵元卡和曲面卡緩存中(注意相同、相鄰曲面去重).之后的json數(shù)據(jù)處理根據(jù)數(shù)據(jù)類型分為3步:1)幾何模型,計算并寫入緩存中.2)幾何模型相關參數(shù),根據(jù)參數(shù)讀取有關的柵元、曲面數(shù)據(jù),計算修改、新增的幾何數(shù)據(jù)并寫入緩存中.3)仿真參數(shù),調(diào)用腳本、數(shù)據(jù)庫等生成數(shù)據(jù)卡數(shù)據(jù)并寫入緩存中.轉換完成后將緩存中數(shù)據(jù)寫入inp文件并保存.
仿真計算中間件主要負責調(diào)度和管理仿真計算微服務和相關數(shù)據(jù),是利用轉換后的inp文件調(diào)用MCNP程序進行仿真并進行流程記錄和管理的部分.在本地進行仿真計算時,可以直接調(diào)用MCNP程序.而在平臺上,為了實現(xiàn)自動化仿真、仿真記錄、流程控制等,我們以微服務的形式將仿真計算業(yè)務部署到計算節(jié)點上,通過中間件管理和調(diào)度仿真服務.MCNP仿真計算中間件工作流程如下:
1)獲得校驗后的inp文件后,將其上傳到FTP服務器中.
2)以消息隊列的方式發(fā)送仿真消息.
3)計算節(jié)點接收到仿真消息后,通過FTP服務器獲取inp文件進行MCNP計算.
4)計算節(jié)點完成計算后將仿真結果out文件(MCNP程序輸出文件)上傳到FTP服務器.
5)以消息隊列的方式發(fā)送仿真完成消息.
6)服務器接收到仿真完成消息,通過FTP服務器獲取out文件.
系統(tǒng)測試主要展示了一個ProE三維模型到可視化展示、編輯再到模型轉換和仿真結果的具體流程.
測試所采用的幾何模型使用ProE軟件進行設計并導出為igs文件(模型設計只以測試為目的,并不涉及實際使用模型),模型由兩個圓臺半球組合體嵌套而成.此模型結構相對復雜,能有效測試可視化仿真系統(tǒng)的可視化性能以及轉換算法準確率.幾何模型如圖7所示.
圖7 測試使用的幾何模型
在系統(tǒng)中導入上述模型的igs文件并設置總體參數(shù)后,可視化界面加載初始幾何體.設置柵元相關參數(shù)、輻射源參數(shù)并添加關注點和包圍殼(參數(shù)設置只以測試為目的,并不涉及實際使用參數(shù)).可視化界面如圖8所示.
圖8 可視化界面
可視化頁面主要包含工具欄、可視化部分、模型列表和參數(shù)設置欄.
點擊確認按鈕,可視化模塊的數(shù)據(jù)轉換中間件將用戶設置的參數(shù)轉化為json數(shù)據(jù)傳送到服務器中.
平臺接收到json數(shù)據(jù)后結合igs文件進行輸入文件轉換,轉換完成后,調(diào)用MCNP軟件進行仿真.根據(jù)以上幾何模型以及參數(shù)設置,MCNP仿真結果文件開頭部分如圖9所示,其包含了MCNP的水印信息以及輸入文件內(nèi)容.
圖9 轉換結果
可以看到柵元卡數(shù)據(jù)中包含了igs文件中的兩個圓臺半球組合體柵元以及包圍殼、空腔柵元.材料卡中包含了重要性、源卡、材料卡等在可視化環(huán)境中設置的參數(shù).
本文結合B/S架構與微服務架構設計了一種空間輻射效應可視化仿真系統(tǒng),使用云計算與微服務架構開發(fā)仿真平臺,利用WEB GL技術、中間件技術實現(xiàn)基于MCNP的可視化仿真.隨后給出了通用可視化仿真架構,并詳細闡述了MCNP可視化仿真的設計與實現(xiàn).系統(tǒng)測試結果表明,該系統(tǒng)能夠以可視化的方式為用戶提供inp文件的模型展示、輕量幾何操作以及參數(shù)編輯.除此之外系統(tǒng)還為用戶并提供了流程定制、自動化仿真等功能,從而減輕仿真人員工作量、提升仿真交互性、提高仿真效率.
目前,仿真系統(tǒng)還存在對材料層數(shù)、厚度等參數(shù)轉換不準確以及不能對幾何模型細粒度操作等問題.下一步還將根據(jù)實際仿真體驗與需求對仿真系統(tǒng)進一步升級.