薛偉偉,程長征
(合肥工業(yè)大學(xué) 土木與水利工程學(xué)院,合肥 230009)
?
基于Ensight的科學(xué)計算結(jié)果可視化
薛偉偉,程長征
(合肥工業(yè)大學(xué) 土木與水利工程學(xué)院,合肥230009)
摘要:FORTRAN和C等高級語言使用廣泛,但計算結(jié)果多為數(shù)值文本。通過編寫數(shù)據(jù)接口,將FORTRAN邊界元法程序的數(shù)值計算結(jié)果轉(zhuǎn)換成Ensight輸入文件,得出計算結(jié)果的場圖像。這種方法具備視覺效果好、開發(fā)工作量低、對硬件圖形庫有較好支持等特點。同時,利用Ensight的功能,可進行數(shù)值觀察、添加等值線等操作。
關(guān)鍵詞:Ensight;FORTRAN;可視化;科學(xué)計算
目前,計算機數(shù)值模擬逐漸成為解決工程和科學(xué)問題的主要手段。由于計算機處理的問題越來越復(fù)雜,科學(xué)工作者已經(jīng)難于從大量的文本計算結(jié)果中直接觀察出需要的結(jié)果[1]??茖W(xué)數(shù)據(jù)可視化就是將計算結(jié)果以圖形圖像的方式顯示出來。
在科研和工程中FORTRAN或C等語言使用廣泛。FORTRAN和C等高級語言與MATLAB、Mathmatica等腳本解析類數(shù)學(xué)工具相比具有計算效率高的特點,但其結(jié)果展示的常見方式是通過文本輸出,而后者通過簡單的命令即可進行計算結(jié)果可視化[2]。雖然開發(fā)人員可以通過編寫代碼直接調(diào)用OpenGL等專業(yè)圖形接口進行圖像繪制,但開發(fā)難度大,工作量較大,容易讓從事理論驗證的科研工作者陷入重復(fù)性工作中,造成智力資源的浪費。
相比之下,使用成熟的科學(xué)可視化平臺進行結(jié)果顯示和二次處理是一種效果好且高效的方式,如使用Ensight或者VTK圖形庫及其衍生的Paraview等軟件進行二維和三維可視化實現(xiàn)[3]。這種開發(fā)方式可以對大規(guī)模問題進行快速的圖形化顯示,同時具備視覺效果好,可移植性高,對硬件圖形庫有較好的支持等優(yōu)點。這類工具簡化和封裝了圖像繪制的技術(shù)細節(jié),并且提供了許多專門用于視覺可視化的算法,開發(fā)工作量較低。例如使用Marching Cubes算法繪制三維等值面時,VTK中不要編寫代碼實現(xiàn)算法,同時也不需要對OpenGL進行顯式操作[4],只需要通過調(diào)用vtkMarchingCubes類對數(shù)據(jù)進行操作即可[5]。而在Ensight中這一操作更加簡單,僅僅通過菜單選取等值面添加功能并選取參數(shù)來源即可完成等值面的添加,同時用戶可以通過拖動鼠標完成等值面參數(shù)值的設(shè)定。
本文對U地埋管溫度場問題的FORTRAN邊界元法計算結(jié)果進行了數(shù)據(jù)處理,通過MATLAB編寫轉(zhuǎn)換接口程序[6],在Ensight中實現(xiàn)了其計算結(jié)果可視化。
1數(shù)據(jù)可視化的基本思路
數(shù)據(jù)的連續(xù)可視化主要包含兩個重要環(huán)節(jié):(1)離散數(shù)據(jù)的可視化;(2)圖形上離散點的連續(xù)化。
1.1數(shù)據(jù)的離散顯示
通常,已知坐標(x,y)表示為平面上的一個離散點,若我們將其顯示出來,并通過賦予離散點灰度或直接顯示物理量值等方式便可完成初步的可視化工作。圖1為一管狀溫度場的離散顯示,每個圓點為采樣點,灰度值表示其溫度。其在數(shù)據(jù)驗證和糾錯等環(huán)節(jié)已具備一定的實用性,但通?;叶戎档倪B續(xù)顯示會更加直觀,也與物理情形更加吻合。
1.2數(shù)據(jù)的連續(xù)顯示
雖然數(shù)值模擬中我們得到的結(jié)果大都是離散的,但通常離散點不能較好地表現(xiàn)物理場的連續(xù)性。為了表現(xiàn)物理場的連續(xù)性,有以下兩種處理方法。
方法一:使用更多的點對區(qū)間進行更細的分割,從而近似表現(xiàn)函數(shù)的連續(xù)變化。這種方法的優(yōu)缺點都很明顯,優(yōu)點是繪制的每個點都反映了真實的函數(shù)關(guān)系;缺點是這種方法為了使圖形上的離散點密集到產(chǎn)生連續(xù)感,需要的數(shù)據(jù)點數(shù)量很大,從而讓系統(tǒng)計算量大大增加。因此在實際中這種方法較少使用。
方法二:在離散點采樣的基礎(chǔ)上,使用插值的方法模擬計算出離散點之間像素的計算結(jié)果,并將其繪出,從而獲得連續(xù)的顯示效果。這種方法優(yōu)點明顯,繪制的數(shù)據(jù)面有良好的連續(xù)感,繪圖速度快,計算量小。其缺點是除采樣點外,其他繪制值只是真實值的近似[7]。
綜合來看,在實際應(yīng)用中我們往往使用第二種方式實現(xiàn)面和體的數(shù)據(jù)繪制,其插值算法通常為線性插值或者二次插值,數(shù)學(xué)原理較為簡單易懂[8]。
圖2為我們對圖1例子中的數(shù)據(jù)進行線性插值后的結(jié)果圖??梢钥闯雠c圖1的展示結(jié)果相比,離散的點構(gòu)成了面。雖然其初始信息相同,但運用插值對平面上色后可視化效果更符合實際情況。
圖1 U型槽溫度場結(jié)果的離散顯示
圖2 U型槽溫度場結(jié)果的連續(xù)顯示
2Ensight接口和轉(zhuǎn)換程序編寫
2.1Ensigh簡介
Ensight是由CEI公司開發(fā)的一款科學(xué)數(shù)據(jù)可視化軟件,具有良好的可移植性,能運行于Windows、Linux、Unix等多種平臺,其功能豐富,使用簡單[9]。其相對MATLAB等高級解析類語言或者Origin等工具進行后處理的優(yōu)勢在于顯示效果好,可快速進行豐富的三維操作,同時在計算結(jié)果充分的前提下進行等值線、等值面、粒子追蹤和流線繪制的操作和使用簡單,無需編寫代碼。
2.2Ensight接口介紹
Ensight作為專用的科學(xué)可視化平臺,數(shù)據(jù)接口豐富,其具備AcuSolve、ADINA、Airpak、ABAQUS、 ADAMS、ANASYS等數(shù)十款計算力學(xué)軟件的數(shù)據(jù)接口。對這些商用程序,我們可以在Ensight中直接讀取計算結(jié)果,進行圖像化操作和數(shù)據(jù)的二次處理。同時,Ensight具備自己的專有數(shù)據(jù)接口文件格式: Ensight5、Ensight6和Ensight gold。我們的目標是將FORTRAN或其他高級語言的文本計算結(jié)果轉(zhuǎn)化成以上任意一種格式的文件,實現(xiàn)讓Ensight進行科學(xué)數(shù)據(jù)可視化。以Ensight6格式為例,它需要的數(shù)據(jù)文件由以下三類文件組成,
一個案例配置文件(case文件):此文件包含了數(shù)據(jù)版本申明、幾何模型文件和數(shù)據(jù)文件的配置;
一個幾何模型文件(geo文件):文件中給出了所有節(jié)點的坐標以及網(wǎng)格和單元類型信息;
數(shù)個數(shù)據(jù)文件:每個物理量單獨組成一個數(shù)據(jù)文件,可以包含各類自定義的計算結(jié)果。
2.3接口轉(zhuǎn)換程序的編寫
本文使用MATLAB的字符處理功能編寫基于Ensight6標準的接口轉(zhuǎn)換程序[6]。為實現(xiàn)算例,編寫的代碼功能和流程如下。
2.3.1案例文件部分(case文件)編寫流程
(1)配置字符串信息,其中包含case文件需要的幾何文件和數(shù)據(jù)文件信息;
(2)生成case文件,并依據(jù)配置寫入相關(guān)信息。
2.3.2幾何文件部分(geo文件)
(1)讀取FORTRAN計算結(jié)果;
(2)提取字符串信息,其中包含geo文件需要的網(wǎng)格和單元配置信息;
(3)對FORTRAN的計算結(jié)果進行delaunay網(wǎng)格劃分,從而確定合適的面信息,將離散的數(shù)據(jù)點組合成合適的三角形單元;
(4)生成geo幾何文件,以Ensight6格式寫入節(jié)點和單元信息。
2.3.3數(shù)據(jù)文件部分
(1)配置字符串信息,其中包含case文件需要的配置信息;
(2)讀取FORTRAN計算結(jié)果;
(3)生成相應(yīng)后綴名的數(shù)據(jù)結(jié)果文件,以Ensight6格式寫入計算的結(jié)果值。
3垂直雙U型地埋管換熱器算例
本算例通過FORTRAN編寫的邊界元程序進行計算得到結(jié)果, 包含平面內(nèi)7 472個點的溫度數(shù)據(jù)。其物理情形為一個豎直雙地埋管,在管段上截取一水平微元段,建立地埋管的二維傳熱模型,如圖3。土壤外邊界溫度T=18°C,外邊界直徑d=8m,管中流體及內(nèi)壁溫度設(shè)為 35°C[10]。
圖3 雙U型地埋管橫截面示意圖
以下是我們生成的案例文件,其中example.geo為幾何文件名,Temperature_2u.Nsca為溫度標量數(shù)據(jù)文件名,Temp_De.Nvec為溫度梯度矢量數(shù)據(jù)文件名。
FORMAT
type: Ensight
GEOMETRY
model: example.geo
VARIABLE
scalar per node: Temperature Temperature_2u.Nsca
vector per node: Potential_derivative Temp_De.Nvec
以下是生成的幾何文件,利用了結(jié)果文件中的7 472個節(jié)點,由14 650個三角形單元組成。
This is the 2nd description line of the Ensight6 geometry example
This is the 1st description line of the Ensight6 geometry example
node id given
element id given
coordinates
7472
1-1.20000e-01-1.20000e-01 0.00000e+00
……
7472 2.50000e-02-1.25000e-02 0.00000e+00
part 1
2D
tria3
14650
1223522342308
2134514171418
……
14650511851915192
以下是生成的溫度梯度矢量數(shù)據(jù)文件,包含7 472個節(jié)點的計算數(shù)據(jù),溫度數(shù)據(jù)文件與其類似。
Per_node vector values for the Ensight6 geometry example
2.80610e+01 3.23241e+01 0.00000e+00 2.81033e+01 3.31175e+01 0.00000e+0……
2.83082e+01 3.72438e+01 0.00000e+00 2.83476e+01 3.80906e+01 0.00000e+00
生成如上文件后,在Ensight中可以打開案例文件。
打開案例文件進行圖像計算,可以獲得類似圖4的的初步結(jié)果演示。
圖5是面插值之前的網(wǎng)格,可以看見劃分的三角形單元。
圖4 Ensight中生成的單元網(wǎng)格演示(溫度單位:℃)
圖5 Ensight中顯示的單元網(wǎng)格細節(jié)
圖6是面插值并繪制等溫線之后的圖像,圖中我們設(shè)置了四個數(shù)據(jù)探針觀察相應(yīng)坐標的溫度。
Ensight中所有的對象均為三維體,如圖7,我們可以方便地對FORTRAN生成的二維物理場計算結(jié)果進行三維觀察。
圖6 繪制等溫線之后的溫度場圖像(溫度單位: ℃)
圖7 三維視角查看對象(溫度單位: ℃)
在圖8中我們設(shè)置了溫度剖面,同時將溫度映射成模型高度,生成了三維模型。
Ensight可以對物理量梯度進行計算。圖9為將溫度梯度作為變量進行矢量追蹤動畫時的截圖,箭頭方向為溫度梯度的指示方向。
圖8 U型地熱管熱場問題的三維展示(溫度單位: ℃)
圖9 溫度場中溫度梯度展顯示(溫度單位: ℃)
4總結(jié)
本文使用圖像處理工具Ensight實現(xiàn)了FORTRAN計算結(jié)果的可視化。借助基于硬件API的專業(yè)后處理平臺,通過編寫可重復(fù)使用的接口轉(zhuǎn)換程序,F(xiàn)ORTRAN計算結(jié)果可以得到更加快捷和全面的展示,計算數(shù)據(jù)檢驗也變得更加容易。使用FORTRAN等高級語言獲得的文本計算結(jié)果編制圖像,可以得到不弱于大部分商業(yè)計算力學(xué)的后處理模塊的展示效果。
參考文獻:
[1]Singular Paggi M. Hypersingular and Singular Free Electromagnetic Fields at Wedge Tips in Metamaterials[J]. Int J Solids Struct 2010; 47: 2062-2069.
[2]羅正平,江純偉. 基于Fortran和Matlab混合編程的EAST零場計算可視化[J]. 合肥學(xué)院學(xué)報:自然科學(xué)版,2007(3):22-25.
[3]Ramachandran P, Mayavi Varoquaux G. 3D Visualization of Scientific Data[J]. Computing in Science & Engineering, 2011, 13(2): 40-51.
[4]石瓊, 沈春林, 譚皓. 基于OpenGL的三維建模實現(xiàn)方法[J]. 計算機工程與應(yīng)用,2004(18):122-124.
[5]姚繼鋒. 科學(xué)計算可視化的方法與實現(xiàn)[J].高性能計算, 2012, 72(1): 4-13.
[6]張志涌. 精通MATLABR2011a[M].北京:北京航空航天大學(xué)出版社,2011:108.
[7]畢碩本, 張國建, 侯榮濤, 等. 三維建模技術(shù)及實現(xiàn)方法對比研究[J].武漢理工大學(xué)學(xué)報,2010(16):26-30,83.
[8]李建波. 有限元可視化算法的研究與程序開發(fā)[D].大連:大連理工大學(xué)計算機科學(xué)與技術(shù)學(xué)院,2003.
[9]房俊杰, 陸正剛, 孫效杰. 基于Ensight的軌道車輛運行可視化研究[J]. 內(nèi)燃機車, 2012(5):23-25,6.
[10] 朱利媛, 牛忠榮, 胡宗軍,等. 地源熱泵地埋管換熱性能的邊界元法分析[J].太陽能學(xué)報, 2015(4):936-942.
[責任編輯:張永軍]
Visualization of Scientific Data Using Ensight
XUE Wei-wei, CHENG Chang-zheng
(School of Civil Engineering, Hefei University of Technology,Hefei 230009,China)
Abstract:FORTRAN and C programs are extensively used as numerical calculation tools by researchers in various fields, and the numerical results are usually output in the text format. A field image can be obtained using Ensight via establishing the data interface of the Ensight software, and converting text results of a FORTRAN boundary element method example into a Ensight input file. The advantages of this technique are good visual effect,low development effort, better graphics library for hardware support and so on. In addition, observing the data and adding the equivalent line can be further accomplished in Ensight.
Key words:Ensight;FORTRAN;visualization; scientific data
中圖分類號:TP314
文獻標識碼:A
文章編號:1673-162X(2016)01-0041-05
作者簡介:薛偉偉(1986—),男,安徽蕪湖人,合肥工業(yè)大學(xué)土木與水利工程學(xué)院2013級碩士研究生;研究方向:土木工程中的計算力學(xué)。
基金項目:國家自然科學(xué)基金項目(11372094)資助。
收稿日期:2015-12-10