湯俊杰,羅 曉,李仲春,張喜林,沈丹紅,陳紅麗,*
基于統(tǒng)一耦合框架的系統(tǒng)程序封裝開發(fā)與驗(yàn)證
湯俊杰1,羅曉1,李仲春2,張喜林2,沈丹紅2,陳紅麗1,*
(1. 中國(guó)科學(xué)技術(shù)大學(xué)核科學(xué)技術(shù)學(xué)院,安徽 合肥 230026;2. 中國(guó)核動(dòng)力研究設(shè)計(jì)院,四川 成都 610213)
反應(yīng)堆系統(tǒng)的狀態(tài)與堆芯物理、流體、結(jié)構(gòu)、控制和外部條件緊密聯(lián)系。為了能夠充分考慮反應(yīng)堆多尺度多物理耦合特性,需要建立起系統(tǒng)級(jí)耦合分析軟件,用于評(píng)估反應(yīng)堆系統(tǒng)在穩(wěn)態(tài)、瞬態(tài)和事故工況下的行為特性。統(tǒng)一耦合接口理念I(lǐng)CoCo(Interface for Code Coupling)具有規(guī)范化和可復(fù)用的優(yōu)勢(shì),基于ICoCo對(duì)系統(tǒng)程序Relap5mod3.2進(jìn)行了程序封裝,并采用supervisor流程控制方案進(jìn)行調(diào)度,開展回歸測(cè)試,驗(yàn)證了封裝前后計(jì)算結(jié)果一致。并在此基礎(chǔ)上開發(fā)接管、控制體、泵和閥門等重要部件相關(guān)數(shù)據(jù)的輸入輸出ICoCo接口,一方面開展兩個(gè)Relap5程序的并發(fā)耦合工作,驗(yàn)證耦合接口正確性;另一方面通過(guò)將控制模塊外移,在supervisor中實(shí)現(xiàn)對(duì)Relap5的控制,從而允許未來(lái)更先進(jìn)的控制及其優(yōu)化算法應(yīng)用到反應(yīng)堆控制安全系統(tǒng)的設(shè)計(jì)、分析與優(yōu)化中。
系統(tǒng)程序;統(tǒng)一耦合框架;ICoCo理念;數(shù)據(jù)傳遞接口
反應(yīng)堆系統(tǒng)的狀態(tài)與堆芯物理、流體、結(jié)構(gòu)、控制和外部條件緊密聯(lián)系。為了能夠充分考慮反應(yīng)堆多尺度多物理耦合特性,需要建立起系統(tǒng)級(jí)耦合分析軟件,用于評(píng)估反應(yīng)堆系統(tǒng)在穩(wěn)態(tài)、瞬態(tài)和事故工況下的行為特性。
反應(yīng)堆系統(tǒng)程序與其他程序的耦合接口較多,包括CFD(Computational Fluid Dynamics)程序、物理程序、子通道程序、二回路系統(tǒng)程序、控制系統(tǒng)程序等,如圖1所示,國(guó)內(nèi)外基于系統(tǒng)程序與其他程序開展了一些耦合工作,如Relap5-3D/FLUENT[1]、TRACE/CFX[2]、Relap5/CFX[3]、TRACE/SCF[4]等。系統(tǒng)程序的封裝與數(shù)據(jù)接口開發(fā)對(duì)反應(yīng)堆的數(shù)值模擬有著重要的作用,也是系統(tǒng)級(jí)耦合研究的基礎(chǔ)。
圖1 反應(yīng)堆系統(tǒng)程序耦合程序接口示意圖
目前國(guó)內(nèi)外主流多尺度耦合方案主要有兩種:主-從耦合方案和Supervised(統(tǒng)一平臺(tái)理念)耦合方案,圖2為主-從耦合方案和Supervised耦合方案示意圖。目前基于系統(tǒng)程序耦合大多采用主-從耦合方案,該耦合方案相對(duì)易開發(fā),但是每次耦合程序都需要對(duì)其進(jìn)行單獨(dú)的耦合接口開發(fā),耦合接口不易拓展,缺乏靈活性。Supervised方案基于統(tǒng)一平臺(tái)理念,使用第三方程序或腳本作為supervisor(控制程序)調(diào)度程序,控制耦合程序運(yùn)行和程序間的數(shù)據(jù)傳遞,耦合接口可復(fù)用,采用這種方案,基于統(tǒng)一耦合框架進(jìn)行各程序的開發(fā),對(duì)多個(gè)程序間耦合具有較強(qiáng)的通用性。
本文采用Supervised方案,基于NURESIM平臺(tái)的ICoCo(Interface for Code Coupling)封裝理念,ICoCo封裝理念提供高效豐富的接口函數(shù)規(guī)范,基于該理念對(duì)源程序進(jìn)行拆分重寫,實(shí)現(xiàn)精細(xì)控制程序運(yùn)行和程序間數(shù)據(jù)交換。
圖2 主流多尺度程序耦合方案
對(duì)系統(tǒng)程序Relap5mod3.2進(jìn)行程序封裝之后,采用supervisor流程控制方案對(duì)封裝后程序進(jìn)行調(diào)度,最終實(shí)現(xiàn)了Relap5程序的單獨(dú)調(diào)用和并發(fā)耦合。采用水平圓管噴放和典型四環(huán)路小破口事故模擬對(duì)封裝程序開展回歸測(cè)試,驗(yàn)證封裝前后計(jì)算結(jié)果一致。調(diào)用開發(fā)好的ICoCo接口中接管、控制體、泵和閥門等重要部件相關(guān)的數(shù)據(jù)輸入輸出接口函數(shù),一方面開展了兩個(gè)Relap5程序的并發(fā)耦合工作,驗(yàn)證數(shù)據(jù)傳遞接口的正確性,另一方面通過(guò)將控制模塊外移,實(shí)現(xiàn)Relap5可以采用外部控制算法,從而允許未來(lái)更先進(jìn)的控制及其優(yōu)化算法應(yīng)用到反應(yīng)堆控制安全系統(tǒng)的設(shè)計(jì)、分析與優(yōu)化中。
ICoCo是面向?qū)ο蟮耐ㄓ么a耦合接口。ICoCo接口基于C++開發(fā),定義一個(gè)父類Problem,Problem類中定義功能函數(shù),包括程序的初始化、時(shí)間步長(zhǎng)計(jì)算與初始化、運(yùn)算時(shí)間步和場(chǎng)數(shù)據(jù)傳遞等,表1給出了ICoCo定義的主要接口及其功能。
表1 重要的ICoCo接口及功能
基于ICoCo理念對(duì)程序進(jìn)行封裝,需要對(duì)程序進(jìn)行解讀,對(duì)流程運(yùn)行子程序和函數(shù)進(jìn)行拆分,對(duì)應(yīng)ICoCo接口功能要求編寫相應(yīng)的ICoCo接口函數(shù)。在ICoCo中,可以根據(jù)封裝程序特點(diǎn)開發(fā)額外接口函數(shù),以方便用戶使用。對(duì)于Relap5程序,該程序使用集總參數(shù)法,節(jié)點(diǎn)網(wǎng)格內(nèi)保存的數(shù)據(jù)為單點(diǎn)數(shù)據(jù),因此在開發(fā)使用MEDCoupling庫(kù)進(jìn)行場(chǎng)數(shù)據(jù)交互的基礎(chǔ)上,開發(fā)了單點(diǎn)數(shù)據(jù)傳遞的接口函數(shù)如表 2所示,方便與其他程序間耦合時(shí)進(jìn)行單點(diǎn)數(shù)據(jù)傳遞。
表2 ICoCo單點(diǎn)數(shù)據(jù)接口及功能
上述接口函數(shù)開發(fā)完成之后,編譯生成動(dòng)態(tài)鏈接庫(kù)供supervisor調(diào)度程序鏈接調(diào)用。對(duì)封裝好的程序進(jìn)行調(diào)用,目前有三種形式,用C++、python編寫調(diào)度程序或者在耦合平臺(tái)SALOME上進(jìn)行調(diào)用,本文用C++編寫supervisor調(diào)度程序,對(duì)于系統(tǒng)程序的封裝工作,進(jìn)行了計(jì)算流程驗(yàn)證,驗(yàn)證封裝前后計(jì)算結(jié)果是否一致,圖3為supervisor進(jìn)行單個(gè)程序調(diào)用的示意圖。
圖3 supervisor調(diào)用單個(gè)程序示意圖
系統(tǒng)程序Relap5是輕水堆冷卻系統(tǒng)事故工況的瞬態(tài)行為最佳估算程序,初始由愛德華國(guó)家工程實(shí)驗(yàn)室(INEL)為美國(guó)核管會(huì)(NRC)開發(fā),用于進(jìn)行規(guī)則制定、許可審查計(jì)算、事故減緩措施評(píng)估、操作員規(guī)程評(píng)價(jià)和實(shí)驗(yàn)計(jì)劃分析。
參考Relap5主程序、瞬態(tài)計(jì)算子程序和時(shí)間步相關(guān)子程序,按照ICoCo接口函數(shù)功能需求,對(duì)Relap5源程序進(jìn)行拆分,對(duì)需要調(diào)用的Fortran子程序或函數(shù)使用extern“C”聲明,開發(fā)ICoCo接口,封裝完成后,編寫supervisor程序?qū)CoCo接口函數(shù)進(jìn)行調(diào)用,便可以實(shí)現(xiàn)Relap5程序的計(jì)算。Relap5在熱工水力分析上有多年的使用歷史,經(jīng)過(guò)許多實(shí)驗(yàn)驗(yàn)證,對(duì)于程序封裝驗(yàn)證,采取程序封裝前后“code to code”的回歸測(cè)試驗(yàn)證。圖4為supervisor調(diào)用封裝后Relap5程序的ICoCo接口函數(shù)示意圖。
在ICoCo封裝中實(shí)現(xiàn)對(duì)單點(diǎn)數(shù)據(jù)的讀取寫入功能之后,可以在調(diào)度程序supervisor里面編寫類似trip卡作用的邏輯判斷,調(diào)用讀取接口函數(shù)來(lái)獲取某個(gè)部件的某個(gè)物理值,用來(lái)做判斷依據(jù),從而對(duì)部件實(shí)現(xiàn)在Relap5外部進(jìn)行邏輯控制操作。例如圖5(a)所示,trip閥220開關(guān)條件為控制體SV110壓力,SV110壓力值大于等于5.0×105Pa時(shí),閥門開啟,否則閥門關(guān)閉,在Relap5內(nèi)的實(shí)現(xiàn)如圖5(b)所示,需要在indta卡編寫控制邏輯trip卡,并在閥門信息處關(guān)聯(lián)對(duì)應(yīng)trip卡,該關(guān)聯(lián)關(guān)系確認(rèn)之后計(jì)算過(guò)程中不可改變。在supervisor中的控制實(shí)現(xiàn)如圖5(c)所示,調(diào)用getOutputHydro函數(shù)讀取SV110壓力值與臨界值進(jìn)行判斷,再調(diào)用setInputHydro函數(shù)寫入閥門開度,實(shí)現(xiàn)對(duì)閥門開啟關(guān)閉的控制,該方法控制條件可以由用戶任意改變,只需要用戶在supervisor中編寫邏輯控制語(yǔ)句,就可以關(guān)聯(lián)其他讀取數(shù)據(jù)或者時(shí)間,對(duì)閥門開度進(jìn)行控制。
圖4 接口函數(shù)調(diào)用流程示意圖
流程控制還包括對(duì)TDV(時(shí)間相關(guān)控制體)、TDJ(時(shí)間相關(guān)接管)邊界條件的寫入、泵轉(zhuǎn)速的寫入和205控制CONSTANT量的寫入??梢詫?shí)現(xiàn)單程序計(jì)算時(shí)對(duì)Relap5的控制和與其他程序耦合時(shí)進(jìn)行數(shù)據(jù)傳遞。
圖5 閥門控制圖
為了測(cè)試Relap5封裝后的接口函數(shù)滿足和其他程序耦合時(shí)數(shù)據(jù)傳遞的需求,用兩個(gè)Relap5程序進(jìn)行耦合,進(jìn)行邊界條件的數(shù)據(jù)傳遞。由于兩個(gè)封裝好的Relap5子程序和變量名一樣,在編寫串行supervisor控制程序時(shí)會(huì)出現(xiàn)報(bào)錯(cuò),運(yùn)用MPI通信,實(shí)現(xiàn)兩個(gè)Relap5程序耦合時(shí)的數(shù)值傳遞,圖6為該耦合程序進(jìn)行計(jì)算的流程圖。
運(yùn)用MPI開兩個(gè)線程計(jì)算,每個(gè)線程計(jì)算一個(gè)Relap5程序,線程1負(fù)責(zé)計(jì)算程序1,線程2負(fù)責(zé)計(jì)算程序2。每步計(jì)算完成后進(jìn)行數(shù)據(jù)傳遞。
圖6 Relap5/Relap5耦合流程圖
針對(duì)本文對(duì)Relap5程序的封裝以及單點(diǎn)數(shù)據(jù)接口開發(fā),建立兩個(gè)測(cè)試問(wèn)題,測(cè)試封裝后程序計(jì)算、流程控制實(shí)現(xiàn)以及與其他程序進(jìn)行耦合時(shí)單點(diǎn)數(shù)據(jù)的傳遞。
算例 1 為水平圓管噴放,模擬節(jié)點(diǎn)圖如圖7所示。水平圓管長(zhǎng)度15 m,流通面積為0.5 m2,出入口初始?jí)毫鶠?.2 MPa,流體速度為0,流體溫度為300 K,管壁絕熱。0 s時(shí)出口壓力突變,降到0.1 MPa,管內(nèi)出現(xiàn)壓差,流體從入口加速向出口流出,10 s左右后達(dá)到穩(wěn)定流速(10.94 m/s)。在整個(gè)過(guò)程當(dāng)中流體表現(xiàn)為單相狀態(tài)。
圖7 水平圓管噴放模擬節(jié)點(diǎn)圖
算例2為典型四環(huán)路小破口事故模擬。圖8為小破口事故模擬節(jié)點(diǎn)圖,將包含破口的回路建成單個(gè)回路,水力學(xué)部件號(hào)為2××,其余三個(gè)完整循環(huán)回路合并成一個(gè)回路,水力學(xué)部件號(hào)為1××,堆芯部件號(hào)為3××,蒸汽發(fā)生器部分節(jié)點(diǎn)圖忽略。其中閥門505為破口模擬閥,破口時(shí)間為0.01 s。
通過(guò)編寫supervisor程序檢驗(yàn)每個(gè)ICoCo接口是否可以正常調(diào)用和實(shí)現(xiàn)其功能,從而對(duì)封裝后的Relap5進(jìn)行測(cè)試。以算例1和算例2為對(duì)象,全面驗(yàn)證封裝后Relap5的功能。
圖9和圖10為Relap5封裝前后計(jì)算算例1的結(jié)果對(duì)比,圖中Relap5曲線為程序封裝前計(jì)算結(jié)果,REICOCO曲線為程序封裝后計(jì)算結(jié)果,可以看出算例1中流速和沿管壓力分布封裝前后計(jì)算結(jié)果完全一致。
圖8 典型四環(huán)路小破口模擬節(jié)點(diǎn)圖
圖9 速度隨時(shí)間變化
圖10 沿管壓力變化
表3 是封裝前后計(jì)算效率的對(duì)比,封裝后的計(jì)算效率基本與封裝前一致,因此,基于ICoCo理念對(duì)Relap5程序的封裝過(guò)程滿足計(jì)算正確性和計(jì)算效率的要求。
圖11 一回路出口蒸汽、蒸汽室腔壓力隨時(shí)間變化
圖12 破口模擬閥門流量隨時(shí)間變化
表3 計(jì)算效率對(duì)比
以算例 2 為測(cè)試對(duì)象,選取閥門和泵,在supervisor 中通過(guò)調(diào)用單點(diǎn)數(shù)據(jù)讀取函數(shù)(get Output Hydro)和單點(diǎn)數(shù)據(jù)寫入函數(shù)(set Input Hydro),實(shí)現(xiàn)對(duì)閥門開度和泵轉(zhuǎn)速的控制。
對(duì)算例中破口模擬閥trip valve 505的破口時(shí)間進(jìn)行修改,原模擬破口時(shí)間為計(jì)算開始后0.01 s,將破口時(shí)間改為計(jì)算開始后200 s,分別對(duì)封裝前輸入卡修改控制信息,實(shí)現(xiàn)在封裝前程序修改閥門破口時(shí)間;對(duì)封裝后的Relap5程序,調(diào)用單點(diǎn)數(shù)據(jù)輸入接口,以時(shí)間為判斷信息,修改破口模擬閥門開度,實(shí)現(xiàn)在supervisor中修改閥門破口時(shí)間計(jì)算對(duì)比破口模擬閥門的流量隨時(shí)間變化對(duì)比如圖13所示。
圖13 破口模擬閥門流量隨時(shí)間變化
封裝前后的結(jié)果一致,閥門在200 s前流量為0,200 s后閥門開啟。
對(duì)主泵209的初始轉(zhuǎn)速進(jìn)行賦值,泵初始轉(zhuǎn)速為 125.2 rad/s,分別在輸入卡和在 supervisor中對(duì)泵初始轉(zhuǎn)速進(jìn)行修改,改為75 rad/s。計(jì)算結(jié)果對(duì)比如圖14所示,兩種方法修改泵的初始轉(zhuǎn)速后的計(jì)算結(jié)果一致。同時(shí)還在supervisor中編寫類似trip卡判斷對(duì)泵轉(zhuǎn)速進(jìn)行控制,與在輸入卡中編寫trip卡計(jì)算結(jié)果對(duì)比一致。在supervisor中實(shí)現(xiàn)了對(duì)泵轉(zhuǎn)速的修改。
圖14 一回路出口蒸汽、蒸汽室腔壓力隨時(shí)間變化
將Relap5輸入卡內(nèi)的控制模塊外移到調(diào)度程序supervisor中,簡(jiǎn)化Relap5輸入卡控制模塊的復(fù)雜設(shè)置,實(shí)現(xiàn)了對(duì)部件精細(xì)靈活的控制,允許與其他程序?qū)崿F(xiàn)耦合數(shù)據(jù)傳遞和對(duì)部件運(yùn)行的控制。
如圖15所示,選取了算例1對(duì)兩個(gè)算例進(jìn)行Relap5和Relap5的耦合測(cè)試,從中間分為兩段,左右長(zhǎng)度為7.5 m。每段各由一個(gè)Relap5進(jìn)行計(jì)算。
圖15 水平圓管耦合節(jié)塊劃分
如圖16所示,耦合時(shí),將左側(cè)計(jì)算區(qū)域中Pipe120的最右節(jié)點(diǎn)的壓力和溫度傳給右側(cè)計(jì)算區(qū)域中的TDV120,將右側(cè)計(jì)算區(qū)域中Pipe130的最左節(jié)點(diǎn)的壓力和溫度傳給左側(cè)計(jì)算區(qū)域中的TDV210。耦合計(jì)算結(jié)果發(fā)現(xiàn)沿水平管的壓力分布在耦合處有些許偏差,穩(wěn)定后流速變大,這是由于Relap5采用集總參數(shù)法進(jìn)行計(jì)算,節(jié)塊的數(shù)據(jù)代表中心處狀態(tài),TDV210、TDV120獲取的壓力溫度值不是真實(shí)邊界處的數(shù)據(jù),兩端的壓差變大,使得穩(wěn)定后流速增大。將兩側(cè)Pipe從5個(gè)節(jié)點(diǎn)分為25個(gè)節(jié)點(diǎn)進(jìn)行耦合,可以看出,由于將Pipe細(xì)分之后,邊界TDV獲取的參數(shù)與真實(shí)邊界接近,耦合結(jié)果和原計(jì)算結(jié)果基本一致(見圖17~圖18)。
圖16 耦合節(jié)塊細(xì)分示意圖
圖17 流速隨時(shí)間變化
圖18 沿管壓力變化
(1)本文基于ICoCo統(tǒng)一封裝理念,對(duì)系統(tǒng)程序Relap5mod3.2進(jìn)行了程序封裝,用supervisor單獨(dú)調(diào)用封裝好程序,以水平圓管噴放、典型四環(huán)路小破口算例測(cè)試,驗(yàn)證程序封裝前后計(jì)算結(jié)果一致,計(jì)算效率接近。
(2)開發(fā)單點(diǎn)數(shù)據(jù)接口,實(shí)現(xiàn)對(duì)接管、控制體、泵、閥門等數(shù)據(jù)交換,編寫supervisor程序,使用MPI,調(diào)用兩個(gè)封裝后的Relap5程序,使用數(shù)據(jù)接口進(jìn)行數(shù)據(jù)傳遞,實(shí)現(xiàn)了對(duì)Relap5的流程控制和Relap5/Relap5并發(fā)耦合,耦合計(jì)算結(jié)果和Relap5計(jì)算結(jié)果一致,耦合數(shù)據(jù)傳遞接口正確。
(3)封裝后的程序能夠在外部控制程序?qū)崿F(xiàn)對(duì)Relap5計(jì)算的流程控制,允許未來(lái)更先進(jìn)的控制及其優(yōu)化算法應(yīng)用到反應(yīng)堆控制安全系統(tǒng)的設(shè)計(jì)、分析與優(yōu)化中。
[1] Anderson N,Hassan Y,Schultz R. Analysis of the hot gas flow in the outlet plenum of the very high temperature reactor using coupled RELAP5-3D system code and a CFD code[J].Nuclear Engineering & Design,2008,238(1):274-279.
[2] Bertolotto D,Manera A,F(xiàn)rey S,et al. Single-phase mixing studies by means of a directly coupled CFD/system-code tool[J].Annals of Nuclear Energy,2009,36(3):310-316.
[3] 劉余,張虹,賈寶山. RELAP5 與 CFX 程序耦合研究[J].原子能科學(xué)技術(shù),2010.
[4] Kz A,Acm B,Se A. Development and verification of the coupled thermal-hydraulic code-TRACE/SCF based on the ICoCo interface and the SALOME platform-ScienceDirect[J].Annals of Nuclear Energy,155.
[5] Chauliac C,Aragonés J M,Bestion D,et al. NURESIM – A European simulation platform for nuclear reactor safety:Multi-scale and multi-physics calculations,sensitivity and uncertainty analysis[J].Nuclear Engineering & Design,2011,241(9):3416-3426.
[6] Baviere R,Tauveron N,Perdu F,et al. A first system/CFD coupled simulation of a complete nuclear reactor transient using CATHARE2 and TRIO_U Preliminary validation on the Phénix Reactor Natural Circulation Test[J].Nuclear Engineering and Design,2014,277(10):124-137.
[7] Fletcher C D,Schultz R R. RELAP5/MOD3 code manual[R].Nuclear Regulatory Commission,Washington,DC (United States). Div. of Systems Research;EG and G Idaho,Inc.,Idaho Falls,ID(United States),1992.
Development and Verification of System Code Encapsulation Based on the Unified Coupling Framework
TANG Junjie1,LUO Xiao1,LI Zhongchun2,ZHANG Xilin2,SHEN Danhong2,CHEN Hongli1,*
(1. School of Nuclear Science and Technology,University of Science and Technology of China,Hefei of Anhui Prov. 230026,China;2. Nuclear Power Institute of China,Chengdu of Sichuan Prov.,610213,China)
The state of the reactor system is closely related to core physics, fluid, structure, control and external conditions. In order to fully consider the multi-scale and multi-physical coupling characteristicsof the reactor, it is necessary to establish the system-level coupling analysis software to evaluate the behavior characteristics of the reactor system under steady-state, transient and accident conditions. The unified interface ICoCo(Interface for Code Coupling) has the advantages for reuse. Based on ICoCo, this paper encapsulates system code Relap5mod3.2, and then schedules Relap5mod3.2 by supervisor flow control scheme, regression tests were carried out to verify that the calculation results are consistent before and after the encapsulate. On this basis, the ICoCo interface input and output interface related data of nozzles, control bodies, pumps and valves and other important components are developed, on the one hand, the concurrent coupling of two Relap5 code is carried out to verify the correctness of the coupling interface, on the other hand, by moving the control module outward. Relap5 is controlled in the supervisor, which allows more advanced control and optimization algorithms to be applied to the design, analysis and optimization of reactor control safety system in the future.
System code; Unified coupling framework; ICoCo concept; Data transfer interface
TL325
A
0258-0918(2022)06-1268-09
2021-09-26
湯俊杰(1997—),男,湖南益陽(yáng)人,碩士研究生,現(xiàn)主要從事核反應(yīng)堆物理分析方面研究
陳紅麗,E-mail:hlchen1@ustc.edu.cn