蔣定國 曹 剛
(河海大學(xué)水利水電學(xué)院,南京 210098)
流體流動現(xiàn)象大量存在于自然界及多種工程領(lǐng)域中,所有這些過程都受質(zhì)量守恒、動量守恒和能量守恒等基本物理定律的支配,因此流體運(yùn)動的規(guī)律可由質(zhì)量、動量和能量守恒方程來描述.計(jì)算機(jī)沒有發(fā)明前,對方程經(jīng)過大量簡化后能夠得到一些線性問題解析解,但實(shí)際的流動問題大都是復(fù)雜的強(qiáng)非線性問題,無法求得精確的解析解.計(jì)算機(jī)的出現(xiàn)以及計(jì)算技術(shù)的迅速發(fā)展使人們直接求解控制方程組的夢想逐步得到實(shí)現(xiàn),從而催生了計(jì)算流體力學(xué)(CFD)這門交叉學(xué)科[1-4].隨著CFD的研究不斷深入,目前對于各種水流條件下的水力計(jì)算程序和軟件層出無窮.但在計(jì)算結(jié)果得出后,往往難以直觀地看出這些海量數(shù)據(jù)蘊(yùn)含著何種規(guī)律,于是,不斷有學(xué)者嘗試將計(jì)算成果與可視化軟件聯(lián)系起來[5-8],構(gòu)成數(shù)據(jù)的后處理系統(tǒng),其中最常見的就是Depht 3D、Tecplot等軟件.AVS/Express是一個(gè)可在各種操作系統(tǒng)下運(yùn)行可視化應(yīng)用程序的開發(fā)平臺[9],可通過封裝用戶自己開發(fā)的模塊,生成一個(gè)可以實(shí)現(xiàn)用戶特殊要求的運(yùn)行程序.
AVS/Express可識別的數(shù)據(jù)格式被稱為數(shù)據(jù)域其在可視化系統(tǒng)中具有舉足輕重的作用.
目前對水流及其輸運(yùn)方程的求解多采用有限體積法和有限元法,其要義就是將計(jì)算區(qū)域剖分成離散的網(wǎng)格,求解網(wǎng)格節(jié)點(diǎn)上的函數(shù)值,來代替連續(xù)函數(shù)的表達(dá)式.由于有限元的選取方式不同,計(jì)算產(chǎn)生的數(shù)據(jù)結(jié)果也會有不同的格式.而AVS提供的數(shù)據(jù)讀入模塊,對數(shù)據(jù)的格式有一定的規(guī)范.所以,要實(shí)現(xiàn)數(shù)據(jù)的可視化,首要的任務(wù)就是將原始數(shù)據(jù)轉(zhuǎn)換成AVS可以識別的數(shù)據(jù)域.
數(shù)據(jù)域是由網(wǎng)絡(luò)和數(shù)據(jù)組成,其中Mesh由網(wǎng)格和元胞信息組成,網(wǎng)格定義節(jié)點(diǎn)在空間坐標(biāo)中的位置,由 x、y、z 3個(gè)維度的坐標(biāo)來實(shí)現(xiàn);元胞信息是針對非結(jié)構(gòu)化網(wǎng)格而言的,它提供給系統(tǒng)關(guān)于元胞的信息,如每個(gè)元胞由多少節(jié)點(diǎn)組成,各節(jié)點(diǎn)的連接方式如何,在均勻網(wǎng)格中,這項(xiàng)信息可以忽略.圖1簡單地表明了數(shù)據(jù)域的組成關(guān)系.
圖1 AVS/Express數(shù)據(jù)域的組成
點(diǎn)數(shù)據(jù)和元胞數(shù)據(jù)既可以是一個(gè)或多個(gè)標(biāo)量值,也可以是一個(gè)或者多個(gè)矢量值,AVS/Express可識別的網(wǎng)絡(luò)結(jié)構(gòu)分為4種類型,有限體積法用到的Rectilinear Mesh和Uniform Mesh,而有限元法的則為Unstructured Mesh和Structured Mesh兩種類型.
一個(gè)完整的數(shù)據(jù)域文件,包括 *.fld文件和*.dat文件,前者是對數(shù)據(jù)進(jìn)行描述;后者是數(shù)據(jù)的實(shí)體,是一組按照*.fld中描述的順序排列而成的數(shù)據(jù)系列.
AVS/Express提供的數(shù)據(jù)讀入模塊保存在Main庫頁的DataIO子庫頁中,可以針對不同的數(shù)據(jù)保存格式選擇不同的模塊.鑒于本文的實(shí)例是由Fortran語言算出的結(jié)果,數(shù)據(jù)保存文件格式為.txt,所以用到的模塊是Rd_Txt_Columns,圖2為此模塊的實(shí)例化和網(wǎng)絡(luò)簡圖.
圖2 模塊網(wǎng)絡(luò)結(jié)構(gòu)簡圖
在對數(shù)據(jù)處理的過程中,往往只需要研究計(jì)算區(qū)域的局部性質(zhì),比如只需要了解回流區(qū)的含沙量分布,只需要觀察粘性底層的流場結(jié)構(gòu)等.因此需要對數(shù)據(jù)域進(jìn)行過濾.
AVS/Express提供了幾百個(gè)模塊[10],一般情況下,用戶可以借助這些模塊來完成程序開發(fā).但是,有些模塊還是需要用戶自行研發(fā),而模塊的開發(fā)是一個(gè)難點(diǎn),圖3為模塊的內(nèi)部組成結(jié)構(gòu).
圖3 模塊Echoreader的內(nèi)部組成結(jié)構(gòu)
下面為本文封裝的C程序代碼:
本工程實(shí)例采用的數(shù)據(jù)是灘坑水電站潰壩洪水風(fēng)險(xiǎn)評估計(jì)算數(shù)據(jù).灘坑水電站位于甌江右岸的最大支流——小溪的中游河段,潰壩洪水采用的計(jì)算方法見文獻(xiàn)[11],本例選取了潰壩后4 h的淹沒數(shù)據(jù)為研究對象.其網(wǎng)絡(luò)結(jié)構(gòu)圖、水深云圖、流速分量圖、流速矢量圖、流線圖分別見圖4~7.
用AVS/Express作為平臺來開發(fā)CFD數(shù)據(jù)后處理應(yīng)用程序,可以利用其面向?qū)ο蟮奶攸c(diǎn),用其自帶的各庫類模塊,也可以簡便靈活地新建自己的工程來添加用戶自己開發(fā)的模塊.同時(shí),其強(qiáng)大的可視化功能,使得以前在編程語言中無法表達(dá)的物理現(xiàn)象和規(guī)律躍然紙上,在分析數(shù)據(jù)時(shí)具有事半功倍的特效.但是,如果要求運(yùn)用Animator等模塊制作動畫,動態(tài)地顯示水流的過程,除了數(shù)據(jù)文件的處理過程較為冗長外,對計(jì)算機(jī)的配置要求也很高,這是它的局限性.盡管如此,AVS/Express仍不失為一個(gè)很好的開發(fā)平臺.
[1]龔光彩.CFD技術(shù)在暖通空調(diào)制冷工程中的應(yīng)用[J].暖通空調(diào),1999(6):25-27.
[2]譚洪衛(wèi).計(jì)算流體動力學(xué)在建筑環(huán)境工程上的應(yīng)用[J].暖通空調(diào),1999(4):33-38.
[3]沈 俊,傅立敏,黎妹紅等.CFD軟件及其在汽車領(lǐng)域的應(yīng)用[J].汽車研究與開發(fā),2000(5):26-28,43.
[4]張揚(yáng)軍,呂振華,徐石安等.汽車空氣動力學(xué)數(shù)值仿真研究進(jìn)展[J].汽車工程,2001(2):82-91.
[5]劉曉強(qiáng).科學(xué)可視化的研究現(xiàn)狀與發(fā)展趨勢[J].工程圖學(xué)學(xué)報(bào),1997(Z1):128-134.
[6]雷 勇,魏 濤,柳共青.CFD可視化研究與進(jìn)展[J].航空計(jì)算技術(shù),1999(1):8-11,19.
[7]劉曉波,華祖林,何國建.計(jì)算流體力學(xué)的科學(xué)計(jì)算可視化研究進(jìn)展[J].水動力學(xué)研究與進(jìn)展(A輯),2004(1):120-125.
[8]吳 杰,黃春生,范緒箕.基于OpenGL的CFD設(shè)計(jì)平臺中的流場可視化技術(shù)及其實(shí)現(xiàn)[J].工程圖學(xué)學(xué)報(bào),2004(2):65-72.
[9]周劍虹.AVS——先進(jìn)的可視化軟件系統(tǒng)[J].中國圖像圖形學(xué)報(bào),1998(9):879-881.
[10]AVS/EXPRESS入門[M].美國洛杉磯地球物理公司北京辦事處,1999.
[11]謝作濤,張小峰等.潰壩洪水?dāng)?shù)值模擬[J].水利水運(yùn)工程學(xué)報(bào),2005,6(2):9-17.