劉 杰,龔春葉,楊 博,郭曉威,甘新標(biāo),李勝國(guó), 李 超,陳旭光,肖調(diào)杰,穆利安,宋 敏,趙冬勇,鞠羽中
(1.國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073;2.復(fù)雜系統(tǒng)軟件工程湖南省重點(diǎn)實(shí)驗(yàn)室,湖南 長(zhǎng)沙 410073)
核動(dòng)力裝置的安全研究是發(fā)展核電的基礎(chǔ),利用數(shù)值模擬技術(shù)進(jìn)行核動(dòng)力裝置的研究是當(dāng)前核科學(xué)與工程中的主要手段[1]。早期的核反應(yīng)堆熱工水力的數(shù)值研究大多基于大尺度的幾種參數(shù)或一維系統(tǒng)分析方法,主要研究核動(dòng)力系統(tǒng)中物理量的平均特性。近年來(lái),隨著計(jì)算機(jī)的快速發(fā)展,基于更為精細(xì)化的計(jì)算流體力學(xué)(CFD)方法和熱工流體力學(xué)軟件的核動(dòng)力熱工水力研究得到廣泛研究和應(yīng)用[2]。
目前我國(guó)核反應(yīng)堆熱工CFD軟件仍主要采用國(guó)外商業(yè)軟件。由于西方國(guó)家對(duì)CFD軟件核心技術(shù)的禁運(yùn),導(dǎo)致無(wú)法根據(jù)應(yīng)用需求進(jìn)行物理模型的修改和擴(kuò)展,也無(wú)法高效利用國(guó)產(chǎn)高性能計(jì)算機(jī)提供的計(jì)算資源。商業(yè)CFD程序不能完全滿足我國(guó)反應(yīng)堆應(yīng)用的需求。國(guó)外CFD軟件起步早,20世紀(jì)80年代英國(guó)CHAM公司推出第1個(gè)具備通用性的CFD商業(yè)軟件PHOENICS[3]。此后,STAR-CD、Fluent和CFX也相繼問(wèn)世于英國(guó)并成為主流CFD分析軟件。2003年和2006年CFX和Fluent先后被ANSYS收購(gòu)集成為一整套CFD解決方案[4]。作為后起之秀的NUMECA[5],由于其高速流動(dòng)計(jì)算性能強(qiáng),在跨、超音速區(qū)的高速壓縮機(jī)、汽輪機(jī)等模擬中具有明顯優(yōu)勢(shì)。法國(guó)的STAR-CCM+[6]堪稱為“下一代CFD解決方案”,主要支持多面體網(wǎng)格,內(nèi)存開銷少且求解速度快,但其在核反應(yīng)堆領(lǐng)域中的應(yīng)用尚處初期階段。此外,Exa公司研發(fā)了一款基于格子玻爾茲曼方法LBM(Lattice Boltzmann Method)[7]的CFD商業(yè)軟件POWERFLOW[8],但仍有許多技術(shù)問(wèn)題尚待解決。
目前,CFD商業(yè)軟件已廣泛用于核反應(yīng)堆的熱工水力模擬。2006年重水反應(yīng)堆設(shè)計(jì)時(shí)就較早使用CFX 10.0模擬燃料冷卻劑通道問(wèn)題[9]。同年,德國(guó)安全研究所利用CFX模擬下腔室的混合流動(dòng)[10]。CFX也在反應(yīng)堆安全領(lǐng)域被廣泛用于與REACFLOW等程序的耦合分析[11 - 13]。意大利比薩大學(xué)利用Fluent程序模擬超臨界水堆中的不穩(wěn)定現(xiàn)象[14]。德國(guó)反應(yīng)堆安全研究所等使用CFX進(jìn)行了多尺度CFD模型模擬[15]。上述工作均關(guān)注反應(yīng)堆中的單相流問(wèn)題,而對(duì)于多相流問(wèn)題仍處于系統(tǒng)評(píng)價(jià)和基準(zhǔn)校驗(yàn)階段,代表性的工作是美國(guó)能源部組織的輕水堆先進(jìn)仿真聯(lián)盟(CASL)[16]和核能先進(jìn)仿真建模(NEAMS)[17]2個(gè)項(xiàng)目,代表著目前核能仿真及數(shù)值反應(yīng)堆領(lǐng)域的最新進(jìn)展。
不同于商業(yè)軟件,CFD開源軟件源代碼公開且可免費(fèi)獲取,最具代表性的是發(fā)源于英國(guó)帝國(guó)理工大學(xué)的OpenFOAM[18 - 20]。其基于有限體積法,能夠求解湍流、熱傳遞、不可壓及可壓縮流體等流動(dòng)問(wèn)題,可以針對(duì)特定應(yīng)用問(wèn)題方便地編寫自定義的求解器。此外,由法國(guó)電力集團(tuán)于1997年開始研發(fā)的通用CFD開源軟件Code_Saturne[21],能夠完成流體動(dòng)力學(xué)中的湍流、傳熱等流體計(jì)算,已用于核能源相關(guān)研究。國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院與中國(guó)核動(dòng)力院合作研制的基于OpenFOAM的CFD模塊能夠預(yù)測(cè)卸壓箱高速噴氣過(guò)程等簡(jiǎn)化的工程應(yīng)用場(chǎng)景[22]。但總體來(lái)說(shuō),這類開源軟件的計(jì)算精度和計(jì)算效率等無(wú)法完全滿足核反應(yīng)堆工程設(shè)計(jì)的要求。
相比而言,國(guó)內(nèi)面向核反應(yīng)堆的CFD技術(shù)及其軟件研發(fā)起步較晚。中國(guó)工程物理研究院高性能數(shù)值模擬軟件中心自主研制了支持結(jié)構(gòu)網(wǎng)格的JASMIN框架[23]、支持非結(jié)構(gòu)網(wǎng)格的JAUMIN框架[24]和支持實(shí)體組合幾何的JCOGIN框架[25]。中國(guó)空氣動(dòng)力研究與發(fā)展中心研發(fā)的風(fēng)雷軟件平臺(tái)[26]和混合網(wǎng)格CFD軟件HyperFlow[27],主要面向氣動(dòng)力學(xué)仿真。中國(guó)科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院開發(fā)的系統(tǒng)PFEPG (Parallel Finite Element Program Generator)[28],采用組件化程序設(shè)計(jì)方法和軟件自動(dòng)生成技術(shù),可自動(dòng)生成基于區(qū)域分解算法的并行有限元程序。盡管國(guó)內(nèi)在CFD程序研發(fā)方面已取得一定成果,但與國(guó)外相比,在物理模型全面性、計(jì)算精度、計(jì)算效率以及軟件易用性等方面仍存在差距,不能完全滿足核反應(yīng)堆熱工水力應(yīng)用開發(fā)的要求。
目前,國(guó)內(nèi)核反應(yīng)堆熱工水力CFD分析仍主要采用國(guó)外商業(yè)軟件。上海核工程研究設(shè)計(jì)院利用CFX模擬了反應(yīng)堆安全閥結(jié)構(gòu)及蒸汽發(fā)生器二次側(cè)局部流場(chǎng)[29];西安交通大學(xué)使用Fluent模擬應(yīng)急堆芯冷卻系統(tǒng)冷水注入壓力容器時(shí)的瞬態(tài)流動(dòng)特性[30];中國(guó)核動(dòng)力研究設(shè)計(jì)院利用CFX分析棒束定位格架的單相流場(chǎng)特性[31];深圳中廣核工程設(shè)計(jì)有限公司采用CFX模擬反應(yīng)堆進(jìn)行了壓縮空氣隔離閥開啟瞬間流速計(jì)算[32];為真實(shí)模擬復(fù)雜熱工水力現(xiàn)象,清華大學(xué)工程物理系先后通過(guò)有效耦合COBEA-IV與CFX以及RELAP5與CFX程序?qū)崿F(xiàn)了多尺度模擬[33,34];海軍工程大學(xué)船舶與動(dòng)力工程學(xué)院實(shí)現(xiàn)了時(shí)空中子動(dòng)力學(xué)模型與CFX聯(lián)合模擬反應(yīng)堆局部三維流場(chǎng)[35]。還有許多研究工作開始關(guān)注不同類型反應(yīng)堆的熱工水力特性,如借助CFX模擬第4代核能系統(tǒng)中多孔介質(zhì)傳熱現(xiàn)象等[36]。
綜上所述,商業(yè)CFD程序已廣泛應(yīng)用于反應(yīng)堆的熱工水力模擬,但不能完全滿足反應(yīng)堆的應(yīng)用需求;開源CFD程序有部分應(yīng)用,但與商業(yè)CFD程序相比,在物理模型全面性、計(jì)算精度、計(jì)算效率和易用性等方面仍存在差距。因此,為更好地滿足局部精細(xì)熱工水力分析的需求,需要更全面的物理模型、較高的計(jì)算精度和較好的并行計(jì)算效率,有必要開發(fā)自主熱工CFD軟件。本文詳細(xì)描述了熱工流體力學(xué)并行應(yīng)用YH-ACT(Parallel Analysis Code of Thermohy-draulics)的設(shè)計(jì)、實(shí)現(xiàn)方案和測(cè)試結(jié)果。
在核反應(yīng)堆熱工水力分析過(guò)程中,需要對(duì)冷卻劑的流動(dòng)傳熱過(guò)程進(jìn)行建模。完整描述流體中的流動(dòng)以及傳熱過(guò)程需要的理論模型包含3部分:質(zhì)量守恒方程、動(dòng)量守恒方程和能量守恒方程[37]。當(dāng)溫度較高時(shí),還需考慮熱輻射,需要對(duì)熱量的輻射過(guò)程進(jìn)行建模。反應(yīng)堆中的流體(冷卻劑)區(qū)域,堆芯燃料組件及管壁等固體區(qū)域的熱量傳遞過(guò)程對(duì)整個(gè)運(yùn)行安全和性能都至關(guān)重要,因此,還需要研究流-固耦合傳熱模型。
壓力容器內(nèi)結(jié)構(gòu)復(fù)雜,流動(dòng)尺度范圍較大,且工程實(shí)際應(yīng)用中更關(guān)注物理量的平均量,因此,一般對(duì)上述基本三大方程進(jìn)行雷諾平均,計(jì)算流體流動(dòng)的平均物理量。平均化后的動(dòng)量方程中出現(xiàn)雷諾應(yīng)力項(xiàng),需要增加湍流模型才能使得平均化后的質(zhì)量、動(dòng)量、能量方程組封閉,從而進(jìn)行堆芯冷卻劑流動(dòng)和傳熱過(guò)程的模擬。
YH-ACT目前主要考慮雷諾時(shí)均湍流模型的實(shí)現(xiàn),當(dāng)溫度較高時(shí),還需考慮熱輻射,求解輻射輸運(yùn)方程的目的是獲得能量方程中的能量源項(xiàng),并獲得與固體壁面輻射熱通量相關(guān)的物理量。至于流-固耦合傳熱模型,一般通過(guò)流體域和固體域的交界面建立流體-固體域間的熱量傳遞模型,計(jì)算固體域內(nèi)能量方程時(shí),將流體域交界面上的相關(guān)物理量作為邊界條件;而計(jì)算流體域內(nèi)能量方程時(shí),將固體交界面上的熱量(溫度)分布作為流體能量方程的源項(xiàng),最終實(shí)現(xiàn)流體-固體的耦合傳熱。
假定流體為穩(wěn)態(tài)不可壓縮,且忽略重力影響,動(dòng)量守恒方程和能量守恒方程可以表示成以下通用形式:

(1)

要使封閉方程得到定解,還需要滿足一些邊界條件,YH-ACT程序中包含的主要邊界類型有進(jìn)口邊界:速度進(jìn)口、壓力進(jìn)口等;出口邊界:outflow、壓力出口等;壁面邊界:滑移壁面、無(wú)滑移壁面、旋轉(zhuǎn)壁面;對(duì)稱邊界;周期邊界等。
對(duì)任意形狀的控制體積,引入高斯散度定理,得積分形式如下:

(2)
其中,V為控制體體積;S為控制容積的表面積;S為控制容積界面的面積矢量,其方向與外法線單位矢量一致。
假設(shè)對(duì)流項(xiàng)采用一階迎風(fēng)格式,Laplacian項(xiàng)采用非正交處理,源項(xiàng)進(jìn)行線性化處理,經(jīng)過(guò)一系列分析,最后可得離散方程。對(duì)離散后的控制方程組的求解可采用耦合式解法及分離式解法。
一種簡(jiǎn)單直接的并行方法就是對(duì)網(wǎng)格數(shù)據(jù)進(jìn)行分解。將網(wǎng)格數(shù)據(jù)劃分成多份后分配給不同進(jìn)程計(jì)算,過(guò)程中通過(guò)進(jìn)程間通信來(lái)實(shí)現(xiàn)數(shù)據(jù)交換。
網(wǎng)格數(shù)據(jù)分解如圖1所示。求解區(qū)域被劃分為互不重疊的網(wǎng)格單元,每個(gè)進(jìn)程僅讀取分配給本進(jìn)程的網(wǎng)格數(shù)據(jù)。這樣不可避免地需要進(jìn)行進(jìn)程之間的數(shù)據(jù)通信。無(wú)冗余的網(wǎng)格數(shù)據(jù)分解方法中各個(gè)進(jìn)程之間并沒(méi)有共享網(wǎng)格數(shù)據(jù)。由于采用的離散格式最高不超過(guò)2階,計(jì)算過(guò)程中僅需要使用相鄰1~2個(gè)網(wǎng)格單元的值,這樣在并行數(shù)據(jù)劃分之后,實(shí)際僅需要獲取與邊界相鄰的網(wǎng)格單元中的數(shù)據(jù)。因此,可以將需要獲取的跨進(jìn)程數(shù)據(jù)存儲(chǔ)在邊界上(如圖1中虛線所示),此時(shí),求解可分解為如下3步:邊界初始化(獲取相鄰處理器上的數(shù)據(jù))、本地計(jì)算和邊界更新(更新相鄰處理器上的數(shù)據(jù))。

Figure 1 Decomposition of non-redundant grid data圖1 無(wú)冗余網(wǎng)格數(shù)據(jù)分解
基于循環(huán)遍歷所有網(wǎng)格塊的方式預(yù)先建立通信關(guān)系,再根據(jù)通信關(guān)系實(shí)施通信。對(duì)于每個(gè)網(wǎng)格塊來(lái)說(shuō),它只需要與其鄰居網(wǎng)格塊進(jìn)行通信,建立通信關(guān)系就是找到所有的鄰居網(wǎng)格塊,并存放到一個(gè)本地?cái)?shù)組中。對(duì)于任意一個(gè)網(wǎng)格塊來(lái)說(shuō),它可見(jiàn)的網(wǎng)格塊就只有它本身及其鄰居這些“局部化”的網(wǎng)格塊。當(dāng)并行規(guī)模提高時(shí),網(wǎng)格塊在通信時(shí)不必遍歷所有的網(wǎng)格塊,而只需遍歷“局部化”的網(wǎng)格塊即可,大大提高了通信的效率。采用MPI異步通信可進(jìn)一步提高通信效率。一個(gè)通信模式示例如圖2所示。

Figure 2 Illustration of communication mode圖2 通信模式示例
通信偽代碼如下所示:
//通信過(guò)程的偽代碼
voidCommunicate(/*args*/){
for(intizone= 0;izone intsrcZoneID=GetZoneID(izone); if(srcZoneID == currentZoneID){ for(intidstZone= 0;idstZone intdstZoneID=GetZoneID(idstZone); if(dstZoneID==currentZoneID) continue; MPI_Send(dstZoneID,/*other args*/); } } else{ MPI_Recv(srcZoneID,/*other args*/); } } } 基于上述網(wǎng)格數(shù)據(jù)分解,可以進(jìn)一步進(jìn)行兩級(jí)或多級(jí)分區(qū)。采用MPI/OpenMP混合并行模式。在一級(jí)分區(qū)上用 MPI并行,然后將一級(jí)分區(qū)劃分為若干個(gè)二級(jí)子分區(qū),二級(jí)子分區(qū)的數(shù)量一般等于計(jì)算結(jié)點(diǎn)內(nèi)部的核數(shù),在二級(jí)分區(qū)上進(jìn)行粗粒度的 OpenMP 并行。 這種多層級(jí)的并行架構(gòu)適應(yīng)于目前的超級(jí)計(jì)算機(jī)集群的架構(gòu),一級(jí)分區(qū)分配在各個(gè)計(jì)算結(jié)點(diǎn)上,而二級(jí)分區(qū)在同一個(gè)計(jì)算結(jié)點(diǎn)之上。其同樣適用于異構(gòu)體系,第1層仍然使用 MPI 通信,即 CPU 核間或計(jì)算結(jié)點(diǎn)間、基于網(wǎng)格一級(jí)分區(qū)交界面信息的MPI 通信;第2層是 OpenMP 并行,即計(jì)算核心間、基于網(wǎng)格二級(jí)子分區(qū)的粗粒度并行,CPU和協(xié)處理器間采用相應(yīng)的通道進(jìn)行數(shù)據(jù)傳輸。當(dāng)沒(méi)有協(xié)處理器時(shí),上述異構(gòu)并行模式自動(dòng)退化為同構(gòu)并行模式。為了更好地控制不同的分區(qū)層級(jí),將整個(gè)計(jì)算域分為2層:第1層為Region分區(qū),第2層為Zone子分區(qū)。在并行計(jì)算時(shí),Region分區(qū)被分配到計(jì)算結(jié)點(diǎn),對(duì)應(yīng)一個(gè)MPI進(jìn)程,Zone子分區(qū)被分配到計(jì)算核心線程,對(duì)應(yīng)一個(gè)OpenMP線程。 典型的CFD求解器執(zhí)行流程主要包括殘差初始化、時(shí)間步長(zhǎng)計(jì)算、 通量計(jì)算、時(shí)間推進(jìn)、流場(chǎng)更新、交界面通信等過(guò)程。求解器Solver被應(yīng)用到計(jì)算域Zone上,針對(duì)不同的物理模型,一個(gè)Zone上可能還會(huì)加載多個(gè)Solver。在計(jì)算過(guò)程中,Region依次遍歷其中的Zone,調(diào)用相應(yīng)的求解器執(zhí)行計(jì)算任務(wù);當(dāng)使用OpenMP并行時(shí),則可以對(duì)每個(gè)Zone并發(fā)執(zhí)行計(jì)算任務(wù)。 在多級(jí)并行架構(gòu)中,每一個(gè)MPI進(jìn)程上可能有多個(gè)子網(wǎng)格塊,如果直接按照前文所述的循環(huán)遍歷網(wǎng)格塊的模式進(jìn)行MPI/OpenMP混合并行通信,會(huì)存在進(jìn)程間多次通信的問(wèn)題。以圖3為例,Region 0和Region 1有2組相鄰的子網(wǎng)格塊,每次交換數(shù)據(jù)都需要2個(gè)收發(fā)過(guò)程。因此,可以將進(jìn)程間的網(wǎng)格分區(qū)數(shù)據(jù)進(jìn)行打包,如圖4所示,以減少通信的次數(shù)。 Figure 3 Illustration of partition hierarchy圖3 分區(qū)層級(jí)示例 Figure 4 Example of process data packaging圖4 進(jìn)程數(shù)據(jù)打包示例 YH-ACT程序采取基于組件的架構(gòu),針對(duì)核反應(yīng)堆熱工水力CFD程序需求,以CFD求解中的數(shù)據(jù)加載、物理前處理、求解、結(jié)果輸出等關(guān)鍵步驟構(gòu)成的CFD程序流程為框架藍(lán)圖。以共性并行算法和并行支撐為基礎(chǔ),結(jié)合現(xiàn)有先進(jìn)的軟件工程方法,形成了基于國(guó)產(chǎn)超算系統(tǒng),以物理模型模塊、數(shù)值離散模塊、線性方程組模塊、并行通信模塊等為主要部件的CFD程序總體框架,如圖5所示。 Figure 5 Framework of YH-ACT program圖5 YH-ACT程序框架 前處理工具箱具有網(wǎng)格控制、物理前處理等功能;物理模型和數(shù)值求解構(gòu)成CFD求解器,封裝高保真度物理數(shù)學(xué)模型和高效數(shù)學(xué)求解方法,并具備參數(shù)化配置能力。共性算法實(shí)現(xiàn)稀疏迭代法與預(yù)條件子等并行計(jì)算,通過(guò)與計(jì)算機(jī)體系結(jié)構(gòu)的緊密耦合,實(shí)現(xiàn)大規(guī)模并行計(jì)算優(yōu)化的支持,為領(lǐng)域解法器提供基礎(chǔ)性計(jì)算能力;并行支撐可以封裝高性能計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)特點(diǎn),提供基礎(chǔ)性的計(jì)算、通信、存儲(chǔ)、調(diào)試等功能,從而支持大規(guī)模CFD計(jì)算應(yīng)用高效運(yùn)行。 基于上述分析,本文將YH-ACT程序垂直劃分為4個(gè)邏輯層,即用戶交互層、模型算法層、并行計(jì)算層和數(shù)據(jù)層,如圖6所示。其中用戶交互層負(fù)責(zé)接收用戶操作,展現(xiàn)用戶操作接口,這一層要求實(shí)現(xiàn)時(shí)為用戶提供友好的界面,符合科研人員的操作習(xí)慣,提高用戶體驗(yàn)。而用戶操作的具體業(yè)務(wù)邏輯則由模型算法層實(shí)現(xiàn),這樣將業(yè)務(wù)邏輯和用戶操作分開的一個(gè)好處是當(dāng)業(yè)務(wù)邏輯改變后可以僅改變模型算法層而不影響用戶操作層,且也不影響用戶原來(lái)的體驗(yàn)。同樣,模型算法層僅涉及業(yè)務(wù)邏輯,關(guān)于實(shí)體數(shù)據(jù)的一切操作都封裝進(jìn)并行計(jì)算層,數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)的持久化并向并行計(jì)算層提供數(shù)據(jù)訪問(wèn)接口。 Figure 6 Logical framework diagram圖6 邏輯框架圖 YH-ACT程序采用了典型的MVC(Modal View Controler)設(shè)計(jì)模式,具有耦合性低、重用性高、生命周期成本低、部署快、可維護(hù)性高等優(yōu)點(diǎn)。其中M是指數(shù)據(jù)模型,V是指用戶界面,C則是指控制器,在YH-ACT程序的架構(gòu)中業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層擔(dān)當(dāng)?shù)木褪强刂破鞯慕巧J褂肕VC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用柱狀圖、餅狀圖來(lái)表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。 Figure 7 GUI interface of YH-ACT program圖7 YH-ACT程序GUI界面 YH-ACT程序的GUI界面如圖7所示,界面大致分為菜單工具欄、控制樹、參數(shù)設(shè)置頁(yè)、視圖瀏覽窗口、信息窗口5個(gè)區(qū)域。菜單工具欄有組織地展示前處理過(guò)程的全部功能。控制樹管理全部模型內(nèi)容,包括網(wǎng)格、求解域、邊界條件、材料數(shù)據(jù)庫(kù)、化學(xué)反應(yīng)等。視圖瀏覽窗口以圖形的方式直觀呈現(xiàn)模型計(jì)算結(jié)果。信息窗口用于反饋CFD命令的執(zhí)行情況。因常用的應(yīng)用程序GUI中菜單欄與工具欄同時(shí)存在且功能上沒(méi)有區(qū)別,所以界面此處將兩者結(jié)合為菜單工具欄,是CFD前處理應(yīng)用程序里所有功能的大集成,且以文字與圖形按鈕結(jié)合的形式展示,最常用的功能以圖形按鈕體現(xiàn)。其摒棄了傳統(tǒng)逐層嵌套的多級(jí)下拉菜單組件,將功能項(xiàng)按類劃分到不同的選項(xiàng)卡分頁(yè)中,每個(gè)分頁(yè)內(nèi)部又繼續(xù)包含多個(gè)功能組,各種相關(guān)功能命令視為一組。界面的樣式采用目前桌面軟件主流的Ribbon紐帶扁平風(fēng)格,以簡(jiǎn)潔清晰的方式凸顯CFD前處理應(yīng)用功能主題。 GUI設(shè)置界面主要包含2部分:左側(cè)控制樹顯示網(wǎng)格和數(shù)值計(jì)算所需的相關(guān)設(shè)置目錄,以樹形結(jié)構(gòu)布置;中間參數(shù)設(shè)置頁(yè)為具體的參數(shù)詳情屬性值編輯而設(shè)置;而右側(cè)視圖瀏覽窗口以圖形界面顯示相關(guān)的幾何和網(wǎng)格信息,并隨用戶的設(shè)置顯示相關(guān)的邊界信息。首先,導(dǎo)入計(jì)算的網(wǎng)格,導(dǎo)入成功后會(huì)在Mesh菜單下顯示導(dǎo)入的網(wǎng)格信息,包含outdown、mashup、kong21和core2一共4個(gè)部件的網(wǎng)格。然后,在Materials菜單下創(chuàng)建流體介質(zhì)的相關(guān)物理性質(zhì)。接著,在Simulation菜單下的Analysis Type下設(shè)置為瞬態(tài)計(jì)算模型,并設(shè)置瞬態(tài)計(jì)算時(shí)間等。雙擊Default Domain菜單,設(shè)置計(jì)算域中的流動(dòng)介質(zhì)和計(jì)算模型,并在Default Domain菜單創(chuàng)建邊界條件(Inlet和Outlet等),與此同時(shí)對(duì)瞬態(tài)計(jì)算初始化。最后,在Solver→Solver Control菜單下設(shè)置數(shù)值求解的離散格式和收斂準(zhǔn)則,并在Solver→Output Control菜單下設(shè)置求解結(jié)果的輸出。通過(guò)以上步驟,完成tran.mesh算例的設(shè)置,并將其保存為tran.sim文件后,通過(guò)求解器就能利用tran.sim進(jìn)行算例的求解。 本節(jié)選取3個(gè)典型案例模型進(jìn)行功能驗(yàn)證,測(cè)試平臺(tái)系統(tǒng)配置為:?jiǎn)谓Y(jié)點(diǎn)2個(gè)12核CPU,共24核。主頻2.3 GHz,系統(tǒng)內(nèi)存為125 GB。 (1)案例模型1:均勻熱通量的管道層流流動(dòng),如圖8所示。 計(jì)算域?yàn)榘霃絉= 0.0025 m,長(zhǎng)度L=0.1 m的圓管道。Vx表示x方向的速度,τ表示剪切應(yīng)力,PI表示進(jìn)口壓力,PO表示出口壓力。網(wǎng)格劃分為非結(jié)構(gòu)網(wǎng)格,網(wǎng)格數(shù)量總計(jì)為5 080個(gè)。網(wǎng)格剖分如圖9所示。 Figure 8 Fluid computing domain of the case model 1圖8 案例模型1的流體計(jì)算域 Figure 9 Meshing of the case model 1圖9 案例模型1的網(wǎng)格劃分 幾何尺寸、材料屬性和物理模型如表1所示。 Table 1 Geometry,material properties and physical model of the case model 1表1 案例模型1的幾何尺寸、材料屬性和物理模型 將網(wǎng)格化模型分別用Fluent和YH-ACT進(jìn)行數(shù)值求解,得到在x=0截面上的溫度云圖。二者在x=0截面上的溫度分布結(jié)果幾乎相同,取出口截面中心點(diǎn)溫度和Fluent結(jié)果進(jìn)行對(duì)比,如表2所示。由表2可知,在出口中心點(diǎn)溫度對(duì)比中,YH-ACT的計(jì)算結(jié)果比目標(biāo)值偏小,相對(duì)誤差為0.3%。 (2)案例模型2:圓管湍流壓降,如圖10所示。 計(jì)算域?yàn)榘霃絉= 0.00125 m,長(zhǎng)度L=0.1 m的圓管道。網(wǎng)格劃分為非結(jié)構(gòu)網(wǎng)格,網(wǎng)格數(shù)量總計(jì)為4 500個(gè)。由于管道非常細(xì)長(zhǎng),顯示時(shí)長(zhǎng)度方向經(jīng)過(guò)縮放后網(wǎng)格如圖11所示。 Table 2 Temperature at the center of the exit section of the case model 2表2 案例模型2的出口截面中心點(diǎn)溫度對(duì)比 Figure 10 Fluid computing domain of the case model 2圖10 案例模型2的流體計(jì)算域 Figure 11 Meshing of the case model 2圖11 案例模型2的網(wǎng)格劃分 幾何尺寸、材料屬性和物理模型如表3所示。 Table 3 Geometry,material properties and physical model of the case model 2表3 案例模型2的幾何尺寸、材料屬性和物理模型 將網(wǎng)格化模型分別用YH-ACT和Fluent軟件進(jìn)行數(shù)值求解,得到在zy方向上x=0截面上的壓力云圖。二者在x=0截面上壓力云圖結(jié)果差距非常小,取進(jìn)出口截面壓差結(jié)果進(jìn)行對(duì)比,如表4所示可知,在進(jìn)出口截面壓差上YH-ACT的計(jì)算結(jié)果相比Fluent計(jì)算結(jié)果相對(duì)誤差為1.1%。 (3)案例模型3:T型管中的層流流動(dòng),如圖12所示。 計(jì)算域?yàn)長(zhǎng)=3.0 m,W=1.0 m,深度H=1.0 m的T型管。網(wǎng)格劃分為結(jié)構(gòu)網(wǎng)格,網(wǎng)格數(shù)量總計(jì)為72 000個(gè)。網(wǎng)格如圖13所示。 Table 4 Pressures of inlet and outlet of the case model 2表4 案例模型2的進(jìn)出口截面壓差對(duì)比 Figure 12 Fluid computation domain of the case model 3圖12 案例模型3的流體計(jì)算域 Figure 13 Meshing of the case model 3圖13 案例模型3的網(wǎng)格劃分 幾何尺寸、材料屬性和物理模型如表5所示。 Table 5 Geometry,material properties and physical model of the case model 3表5 案例模型3的幾何尺寸、材料屬性和物理模型 將網(wǎng)格化模型分別用YH-ACT和Fluent軟件進(jìn)行數(shù)值求解,得到在z=0截面上的y方向速度分量云圖。YH-ACT與Fluent在z=0截面上的y方向速度分量結(jié)果非常接近,取左邊直管中心線上y方向速度分量與Fluent計(jì)算結(jié)果相比,如圖14所示,最大相對(duì)誤差為1.4%。 Figure 14 The y-velocity at z=0圖14 z=0處y分量速度隨y坐標(biāo)變化曲線 本節(jié)選取案例3中的模型進(jìn)行網(wǎng)格加密后對(duì)YH-ACT進(jìn)行并行性能測(cè)試,計(jì)算時(shí)每個(gè)結(jié)點(diǎn)用24個(gè)進(jìn)程,最大計(jì)算規(guī)模達(dá)到400個(gè)結(jié)點(diǎn)共9 600個(gè)進(jìn)程。結(jié)點(diǎn)數(shù)為17 664 643,四面體單元個(gè)數(shù)為103 038 583。 模型穩(wěn)態(tài)情況下測(cè)試結(jié)果如表6和圖15所示,共100次迭代,最大計(jì)算規(guī)模達(dá)到9 600進(jìn)程。考慮程序主要耗時(shí)部分CFD Solver的計(jì)算時(shí)間,相比單結(jié)點(diǎn)24個(gè)進(jìn)程加速比為111.7,并行效率為27.9%。 Table 6 Speedup and parallel efficiency (steady state)表6 模型(穩(wěn)態(tài))的加速比及并行效率 Figure 15 Speedup and parallel efficiency (steady state)圖15 模型(穩(wěn)態(tài))測(cè)試的加速比及并行效率 模型瞬態(tài)情況下測(cè)試結(jié)果如表7和圖16所示,共100次迭代。從結(jié)果可以看出,最大計(jì)算規(guī)模達(dá)到9 600進(jìn)程,相比單結(jié)點(diǎn)24個(gè)進(jìn)程程序的加速比為37.2,并行效率為9.3%。 可以看到,YH-ACT有較好的可擴(kuò)展性。就穩(wěn)態(tài)模型而言,當(dāng)測(cè)試規(guī)模達(dá)到9 600個(gè)進(jìn)程時(shí),并行效率依然有28%左右。而同等網(wǎng)格規(guī)模的瞬態(tài)模型的并行效率會(huì)相對(duì)低一些,這與單個(gè)時(shí)間步的迭代次數(shù)設(shè)置及先后時(shí)間步之間的數(shù)據(jù)依賴等因素有關(guān)。 Table 7 Speedup and parallel efficiency (transient state)表7 模型(瞬態(tài))的加速比及并行效率 Figure 16 Speedup and parallel efficiency (transient state)圖16 模型(瞬態(tài))測(cè)試的加速比及并行效率 本文詳細(xì)描述了一種熱工流體力學(xué)并行應(yīng)用程序YH-ACT的設(shè)計(jì)、實(shí)現(xiàn)方案和測(cè)試結(jié)果。通過(guò)對(duì)程序的驗(yàn)證和測(cè)試可以看出YH-ACT具備與商業(yè)CFD軟件相當(dāng)?shù)挠?jì)算能力和精度,并行性能較好,具備大型超算平臺(tái)并行拓展能力,能夠滿足局部精細(xì)熱工水力分析的需求。4.3 多級(jí)并行架構(gòu)
4.4 多級(jí)并行通信優(yōu)化


5 并行應(yīng)用程序軟件架構(gòu)
5.1 YH-ACT程序架構(gòu)


5.2 GUI界面

6 驗(yàn)證與測(cè)試
6.1 功能驗(yàn)證












6.2 性能測(cè)試




7 結(jié)束語(yǔ)