陳 爽 劉詩文 孫 燕 楊 釗 張 騏 王嘉瑞
(中國核動力研究設計院核反應堆系統(tǒng)設計技術(shù)重點實驗室,四川 成都610213)
在進行系統(tǒng)仿真計算時,全系統(tǒng)的三維仿真由于計算資源、研究周期等因素限制目前還難以實現(xiàn)。綜合考慮計算資源、模擬精度和速度要求,降低維度計算是較為常見的一種處理方式[1,2]。而低維度的系統(tǒng)仿真又過于依賴于經(jīng)驗法則,難以捕捉復雜結(jié)構(gòu)的流動特性。因此,通過不同維度模型的耦合計算,實現(xiàn)系統(tǒng)仿真與關鍵設備三維模擬相結(jié)合成為系統(tǒng)仿真計算的一個重要研究方向。
近年來隨著模擬仿真技術(shù)的發(fā)展,越來越多領域的研究人員致力于采用一維和三維耦合分析的思路來解決問題。Wei Li[4]等人開發(fā)了三維仿真軟件Fluent 和一維熱工水力軟件RELAP5的耦合接口程序;張寶亮等人[5]采用Boost 和Flowmaster 軟件對發(fā)動機及其冷卻系統(tǒng)的熱平衡進行聯(lián)合仿真以研究整車熱管理;Nobuyuki Yomoda[6]等人通過接口軟件CFDlink、MPCCI,實現(xiàn)了Flowmaster 和Fluent 聯(lián)合模擬。國內(nèi)外諸多學者在一/三維耦合計算領域開展了大量研究,實現(xiàn)了經(jīng)濟、快速分析。本文基于C#平臺開發(fā)了Flowmaster 和Fluent 的一/三維耦合程序,并通過Y 型管道模型對耦合程序進行了測試驗證。
一三維軟件雙向耦合,是將兩款軟件的計算結(jié)果分別作為對方的初始或邊界條件,并以此進行迭代計算,因此耦合接口程序的開發(fā)關鍵在于實現(xiàn)兩者之間的數(shù)據(jù)交換,要開發(fā)Flowmaster 和Fluent 的耦合接口程序,就必須從兩款軟件各自的特點出發(fā)。
Flowmaster 擁有出色的自動化功能(包括腳本文件、控制組件、圖形用戶界面和自動分析)和完備的二次開發(fā)接口,腳本文件和控制器組件可實現(xiàn)Flowmaster 模塊功能的擴展,圖形用戶界面和自動化分析可實現(xiàn)Flowmaster 與其他軟件連接,以實現(xiàn)自動化的操作和結(jié)果分析。而上述功能均可通過C++、C#和VB等計算機語言編寫相關程序?qū)崿F(xiàn),這是實現(xiàn)Flowmaster 外部控制的基礎。本文選用C#作為軟件的前臺程序開發(fā)平臺,通過引用特定模塊實現(xiàn)對Flowmaster 的自動化操作。
在耦合接口程序開發(fā)中,最為便捷的便是使用同一種編程語言實現(xiàn)對所有語句的編寫,然而Fluent 不支持C++、C#和VB等編程語言開發(fā)。應用Fluent 的腳本功能,通過Scheme 語言編寫的代碼可實現(xiàn)對Fluent 的二次開發(fā)和自動控制,進而完成修改邊界條件、控制計算始末和計算結(jié)果的輸出等操作。因此,本文選用Scheme 語言實現(xiàn)耦合程序?qū)luent 的外部控制。
以C#作為Flowmaster/Fluent 耦合程序的開發(fā)平臺,通過相繼調(diào)用Flowmaster 和Fluent 作為后臺服務程序的方式實現(xiàn)一三維耦合計算,耦合程序總結(jié)結(jié)構(gòu)框架如圖1 所示。Flowmaster 與Fluent 耦合程序在時間步進上采用顯式耦合方法,即在每個時間步長內(nèi)程序間僅進行1 次數(shù)據(jù)交換,按圖1 所示順序進行,直到整個耦合計算結(jié)束。
圖1 耦合程序總體結(jié)構(gòu)框架
在實現(xiàn)Flowmaster 和Fluent 外部控制的基礎上,通過C#前臺完成耦合計算數(shù)據(jù)的傳遞工作,整個數(shù)據(jù)傳遞過程采用單線程控制方式,數(shù)據(jù)交換的整體框架如圖2 所示。根據(jù)Flowmaster和Fluent 的特點可知,C# 對Flowmaster 的自動化操作、Scheme對Fluent 的外部控制均已實現(xiàn)。C#前臺可編譯可讀的Scheme文件,進而控制Fluent 運行計算及結(jié)果輸出,C# 前臺再讀取Fluent 輸出的txt 格式的結(jié)果文件,并將其傳遞給Flowmaster,從而實現(xiàn)兩軟件耦合計算數(shù)據(jù)的傳遞。
圖2 耦合程序數(shù)據(jù)交換框架
本文以Y 型管道耦合計算作為耦合程序的驗證計算模型,耦合計算模型和Y 型管道三維模型如圖3、圖4 所示。耦合過程中,F(xiàn)luent 的入口的流量及溫度來自于Flowmaster 壓力源(13)的計算數(shù)據(jù),并將計算得到的出口壓力傳遞回Flowmaster 流量源(15),進而完成耦合計算。
圖3 Flowmaster/Fluent 耦合計算模型
圖4 Fluent 計算模型
為了驗證系統(tǒng)運行動態(tài)變化時數(shù)據(jù)傳遞的有效性,在Flowmaster 計算模型的入口采用了隨時間變化的壓力源,且入口溫度隨時間變化。Flowmaster 和Fluent 在Y 型管進出口均進行了數(shù)據(jù)傳遞,根據(jù)計算結(jié)果,分別對比傳遞前后的數(shù)據(jù)以驗證數(shù)據(jù)傳遞的有效性。圖5 為Flowmaster 向fluent 傳遞數(shù)據(jù)過程中的前后數(shù)據(jù)對比,F(xiàn)lowmaster 壓力源(13)和Fluent 入口(mass-in)相互傳遞的質(zhì)量流量、總壓、溫度吻合良好。圖6 為Fluent 向Flowmaster 傳遞數(shù)據(jù)過程中的前后數(shù)據(jù)對比,F(xiàn)luent 出口(p-out1)向Flowmaster 流量源(15)傳遞流量、總壓、溫度吻合良好。由此可見,耦合程序有效地完成了Flowmaster 與fluent 之間的數(shù)據(jù)交換,實現(xiàn)了Flowmaster 與fluent 的一/三維耦合計算。
圖5 Y 型管道入口參數(shù)變化曲線
圖6 Y 型管道出口參數(shù)變化曲線
本文根據(jù)Flowmaster 和Fluent 軟件自身特點,通過外部控制程序?qū)崿F(xiàn)兩軟件的數(shù)據(jù)交換,進而建立了Flowmaster/Fluent耦合程序。并利用Y 形管模型進行Flowmaster/Fluent 耦合計算驗證,根據(jù)計算結(jié)果,耦合程序有效地實現(xiàn)了Flowmaster/Fluent的數(shù)據(jù)交換。