李 偉,姚建凡,付 叢,彭思濤,陳 俊,張希晉
(中廣核研究院有限公司,廣東 深圳 518000)
反應堆設計軟件包是核電工程設計與安全分析的重要工具。軟件包涵蓋了堆芯物理軟件、熱工水力軟件和系統(tǒng)輔助軟件等,提供了包括燃料組件計算、三維核設計、通量圖處理、子通道分析、系統(tǒng)瞬態(tài)等功能。但各軟件在設計分析中存在以下不足:
1)軟件跨專業(yè),輸入輸出差異大;
2)文本形式建模,人機交互較差,影響設計效率;
3)數(shù)據(jù)管理的方式不利于數(shù)據(jù)的重用與共享;
4)沒有使用調(diào)度策略,無法充分利用計算資源。
綜上所述,亟待開發(fā)一套面向反應堆設計的快速建模平臺。結合不同專業(yè)領域的發(fā)展和技術特點,融合標準化的輸入和輸出,并采用軟件組件化管理和自主研發(fā)的界面解析器實現(xiàn)各設計軟件模塊的快速集成與界面定制。本文詳細介紹了系統(tǒng)設計、關鍵技術、主要功能和應用情況。
平臺支持多用戶的操作,具備管理和并發(fā)執(zhí)行的能力,支持新功能的快速開發(fā),已有功能模塊的易維護的特點。根據(jù)以上特點,系統(tǒng)的物理架構、邏輯架構和數(shù)據(jù)架構設計如下。
物理架構設計為2臺管理服務器、2臺數(shù)據(jù)服務器和N臺計算服務器,如圖1所示。
圖1 物理架構設計圖Fig.1 Physical architecture design
管理服務器上部署了平臺軟件、設計軟件及相關輔助軟件,用戶采用遠程登錄的方式登錄到管理服務器上進行設計工作。
兩臺數(shù)據(jù)服務器負責保存平臺上用戶產(chǎn)生的數(shù)據(jù),包括文件及數(shù)據(jù)庫。
N臺計算服務器組成計算云平臺,被虛擬成M個計算節(jié)點,每個節(jié)點有K個計算線程,實現(xiàn)最大同時運行M×K個計算。
邏輯架構設計為3層,分別為表現(xiàn)層、應用邏輯層和數(shù)據(jù)服務層,如圖2所示。
圖2 邏輯架構設計圖Fig.2 Logical architecture design
表現(xiàn)層:包括軟件的界面及與用戶進行交互的工具,其中界面是基于Java Swing構建,界面的操作采用多線程的方式進行異步處理,保證界面操作的靈敏度。Swing開發(fā)工具包大多數(shù)用來開發(fā)Java應用程序用戶界面,它包含很多控件,可以很方便的用來構建界面[1]。
應用邏輯層:包含系統(tǒng)功能上的數(shù)據(jù)處理過程、算法及相關的業(yè)務處理,并與表現(xiàn)層和數(shù)據(jù)服務層交互。
數(shù)據(jù)訪問層:數(shù)據(jù)訪問層定義了操作存儲介質的入口,本平臺有文件、關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫3種數(shù)據(jù)存儲介質。
平臺有3類持久數(shù)據(jù)單元,第1類是文件,包括設計數(shù)據(jù)、界面輸入數(shù)據(jù)和圖表數(shù)據(jù);第2類是非關系型數(shù)據(jù)庫,存儲報表數(shù)據(jù);第3類是關系型數(shù)據(jù)庫,存儲平臺管理數(shù)據(jù),包括權限、問題反饋,計算流程規(guī)則等。
平臺中數(shù)據(jù)量最大的是用戶計算數(shù)據(jù),如圖3所示。將用戶計算數(shù)據(jù)按照User、Task、Work、Job 4級目錄架構進行重組,支持同一用戶下數(shù)據(jù)重用(復制、粘貼)與不同用戶間數(shù)據(jù)共享(導入、導出)。
圖3 用戶計算數(shù)據(jù)架構圖Fig.3 User computing data architecture
User級代表不同用戶的數(shù)據(jù),Task代表一個設計工程,Work代表完成一個指定功能的計算集,Job代表一個指定任務的單個計算。每個Job運行后會產(chǎn)生一個Databank目錄,存儲計算過程的日志數(shù)據(jù)和結果數(shù)據(jù)。
報告數(shù)據(jù)采用非關系型數(shù)據(jù)庫進行存儲,非關系型數(shù)據(jù)庫具備靈活的數(shù)據(jù)模型,不定義表結構,不存在數(shù)據(jù)模型的約束[2],可以靈活配置多種類型的報告。
管理數(shù)據(jù)采用關系型數(shù)據(jù)庫是為了方便與企業(yè)內(nèi)部的反應堆設計服務系統(tǒng)進行數(shù)據(jù)交互,將設計工作與設計管理進行對接。對平臺用戶而言,看到的是一個整體,從開始設計流程,設計執(zhí)行到結束設計過程中產(chǎn)生的管理信息與工程數(shù)據(jù)進行狀態(tài)同步,實現(xiàn)設計與管理一體化。
平臺集成了反應堆專業(yè)的設計軟件,并為設計軟件提供輸入界面。平臺的輸入界面類型分為3種,第1種是純Swing組件界面,第2種是圖形類型界面,第3種是Swing組件和圖形類型混合布局界面。平臺累計集成有上百計算模塊,所有計算模塊采用定制編程方式實現(xiàn)軟件界面,工作量巨大,后期維護也很困難??蓴U展標記語言XML(Extensible Markup Language)是由W3C組織采用的一個標準,是一種描述語言[3]。平臺將Swing組件界面采用XML進行配置,圖形類型界面采用定制開發(fā)方式實現(xiàn),部分圖形類型界面封裝成自定義組件提供給混合布局界面中XML配置引用。
界面解析器提供一套將XML文件轉譯成界面程序的方式,開發(fā)人員只需要根據(jù)界面需求配置XML文件,平臺就能根據(jù)配置的XML文件生成界面。實現(xiàn)高效定制設計軟件的輸入界面,也能保證各設計軟件界面風格的統(tǒng)一。
組件化管理系統(tǒng)的基本思想是系統(tǒng)為外圍組件定義統(tǒng)一的接口規(guī)范,使系統(tǒng)通過統(tǒng)一的接口調(diào)用各個外圍組件所提供的功能[4]。平臺提供一個軟件集成的標準化接口規(guī)范,設計軟件按照標準接口以組件形式與平臺進行對接,包括軟件路徑、執(zhí)行參數(shù)、上游計算類型、輸出類型、數(shù)據(jù)后處理、輸入文件等。
集成過程中,設計軟件具備自身的數(shù)據(jù)組織特點,平臺采用了標準化的輸入流程和輸出文件來解決軟件之間輸入輸出文件在格式上的差異問題。輸入流程描述為,設計軟件提供具備自身數(shù)據(jù)組織特點的模板文件;用戶在界面上的輸入信息生成鍵-值形式的數(shù)據(jù)文件;平臺按照關鍵字檢索將數(shù)據(jù)文件的內(nèi)容填充到模板文件中,生成最終格式的輸入文件,由此解決輸入文件在數(shù)據(jù)組織上的差異問題。
平臺具備較強的擴展性,開發(fā)工程師可以在平臺上進行二次開發(fā),平臺提供了數(shù)據(jù)文件生成前后處理的接口和二次開發(fā)源程序的路徑配置,由平臺自動調(diào)用二次開發(fā)的程序。
在工程設計中,界面輸入與數(shù)據(jù)文件輸入具備各自的特點,為了滿足工程設計的需要,需要兼容兩種輸入方式,同時保證界面和數(shù)據(jù)文件的數(shù)據(jù)同步,因此建立界面與數(shù)據(jù)文件自動映射關系能滿足工程設計的需求。界面數(shù)據(jù)映射需要建立界面與數(shù)據(jù)文件之間的數(shù)據(jù)映射模型,映射模型里定義多個映射約束、映射條件和映射規(guī)則,將界面上的元素對象與數(shù)據(jù)文件中的元素對象之間建立映射匹配關系,實現(xiàn)界面輸入和數(shù)據(jù)文件輸入兩種方式之間的雙向轉換,同時兼容兩種輸入方式。
采用編程的方式去定制各軟件的圖表,工作量大,且難以覆蓋各設計軟件的需求。平臺提供一種可視化圖表自定義生成方法,該方法提供可配置的圖表模板,圖表模板包括樣式配置和數(shù)據(jù)源配置。通過模板完成圖表的類型、關聯(lián)的數(shù)據(jù)源ID和顯示效果等各項圖表參數(shù)的配置,由圖表解析引擎解析模板文件,自動生成展示結果數(shù)據(jù)的圖表文件。
平臺提供圖形化的核設計過程,使用連接線的方式去組合不同的計算,采用流程圖的方式將復雜的核設計過程轉化為計算邏輯流程圖。設計工程師在執(zhí)行計算流程的過程中,平臺能識別出哪些計算實例滿足并行條件,并加以并行執(zhí)行,同時自動為上下游計算實例更新數(shù)據(jù)接口,提升設計效率,如圖4所示。
圖4 圖形化計算流程設計Fig.4 Graphical calculation process design
平臺采用了自主研發(fā)的界面解析器和部分圖形模塊定制開發(fā)為集成的上百計算模塊提供界面,界面類型包括燃料組件建模、控制棒設計、堆芯設計、換料設計等,通過這些豐富的界面使設計軟件具備圖形化快速建模的能力。
圖5 圖形化建模Fig.5 Graphical modeling
高性能計算云平臺是一種將高性能計算機與云計算技術結合的高效服務平臺,通過虛擬化技術將底層資源整合,為用戶提供高性能計算服務[5]。平臺以高性能計算云平臺為支撐,集成有Torque和Slurm兩種作業(yè)調(diào)度系統(tǒng),支持上千計算并發(fā)執(zhí)行,通過作業(yè)調(diào)度系統(tǒng)能夠有效利用計算云平臺的高并發(fā)計算能力,縮短工程設計任務的計算時間,提高設計效率。
圖6 計算任務執(zhí)行調(diào)度管理Fig.6 Scheduling management for computing task execution
平臺為各專業(yè)設計軟件提供結果顯示,結果顯示分為2類,第1類是為堆芯物理軟件定制開發(fā)的結果顯示,包括鍵值數(shù)據(jù)顯示、一維數(shù)據(jù)顯示、二維數(shù)據(jù)顯示和三維數(shù)據(jù)顯示,其中三維數(shù)據(jù)顯示依靠一維結合二維的方式實現(xiàn);第2類是圖表形式展示結果數(shù)據(jù),設計軟件根據(jù)預先規(guī)定的數(shù)據(jù)格式生成結果文件,平臺加載結果文件提供各類圖表的顯示。
圖7 結果顯示Fig.7 Results display
平臺在計算流程建模、計算輸入、換料設計檢查、計算執(zhí)行調(diào)度和報告生成中提供報錯提示,包括計算流程建模過程中的邏輯錯誤、界面輸入?yún)?shù)錯誤、輸入文件錯誤、預定義規(guī)則的換料設計檢查錯誤、部分計算結果數(shù)據(jù)異常、計算狀態(tài)錯誤和報告生成錯誤等。錯誤提示的種類包括彈出框、標簽、計算節(jié)點圖標和顏色狀態(tài)、消息輸出控制臺及日志輸出。
圖8 彈出框提示Fig.8 The pop-up prompt
平臺采用開源軟件搭建了軟件測試與發(fā)布功能的持續(xù)集成框架,全程無需人工干預,實現(xiàn)自主軟件從軟件開發(fā)工程師到設計工程師的點對點敏捷工作模式。
自主研發(fā)可定制模板的報告生成系統(tǒng),設計工程師完成計算后,通過該平臺可實現(xiàn)計算結果數(shù)據(jù)提取、加工和相應工程報告一鍵生成,提高了設計工作效率。
平臺已經(jīng)廣泛應用在國內(nèi)某核電集團的多項工程設計工作中。圖11是使用平臺搭建的國內(nèi)某核電廠燃料管理計算框架模板,13個循環(huán)的初始模板的設計周期從原本的1個月左右縮減到1周,進行完整的復算只需要6 h,設計效率成倍數(shù)提升。
圖12是使用平臺搭建的國內(nèi)某核電廠某次循環(huán)的核設計報告計算框架,利用自動化報告定制生成功能,計算完成后由平臺自動完成結果數(shù)據(jù)提取、加工和相應工程報告一鍵生成,復雜的數(shù)據(jù)梳理和報告內(nèi)容修改過程從原本耗時1周縮短到1 h內(nèi),顯著提升設計工程師的工作效率。
在這些項目的設計任務中,平臺的并行計算支持能夠充分利用計算資源,優(yōu)化調(diào)度策略,合理分攤集團計算資源的成本。工程報告一鍵生成功能顯著提高設計工程師的工作效率。圖形的流程設計、輸入界面與計算過程監(jiān)控有效提高設計工作的質量。
圖9 一體化功能流程圖Fig.9 The flow chart of integrated function
圖10 自動化報告效果圖Fig.10 The effect diagram of the automated report
圖11 燃料管理計算框架圖Fig.11 The fuel management calculation framework
圖12 核設計報告計算框架圖Fig.12 The calculation framework of the nuclear design report
平臺的研發(fā)與推廣應用,有效實現(xiàn)了反應堆各專業(yè)的協(xié)同設計及設計過程流程化管理,顯著提高了設計工程師的工作效率和質量。
本文對傳統(tǒng)反應堆設計軟件的設計過程進行簡要分析,詳細介紹快速建模平臺的架構和功能,并對平臺應用前后的設計效率進行對比。通過應用平臺,可以使反應堆設計軟件包的運行和管理標準化,減少人因導致的差異性,提高了設計工程師的工作效率和質量。平臺還為核電行業(yè)其他同類產(chǎn)品的設計和實現(xiàn)提供了借鑒。