999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SiPESC的千萬節點規模FEM可視化系統設計與實現

2015-04-20 07:43:43寅,鵬,
大連理工大學學報 2015年4期
關鍵詞:可視化有限元模型

徐 良 寅, 李 云 鵬, 陳 飆 松

( 1.大連理工大學 工業裝備結構分析國家重點實驗室, 遼寧 大連 116024;2.大連理工大學 工程力學系, 遼寧 大連 116024 )

基于SiPESC的千萬節點規模FEM可視化系統設計與實現

徐 良 寅*1,2, 李 云 鵬1,2, 陳 飆 松1,2

( 1.大連理工大學 工業裝備結構分析國家重點實驗室, 遼寧 大連 116024;2.大連理工大學 工程力學系, 遼寧 大連 116024 )

實現了千萬節點規模的有限元模型高效率可視化系統,提出了相關算法、數據結構、關鍵技術與軟件設計方案.研發工作通過分析三維有限元模型特點,在SiPESC.POST通用有限元模型可視化系統基礎上,提出了基于拓撲結構的內部單元剔除技術與精化數據結構,并基于VBO快速顯示技術,實現了千萬節點規模有限元模型流暢顯示.通過與多個大型商業有限元軟件系統對比,展示了該系統在可視化效率及大規模問題適用性方面的優越性.

SiPESC.POST;千萬節點規模;可視化;內部單元剔除;VBO

0 引 言

隨著計算機計算能力的不斷提高,多核并行計算技術、GPU(graphic processing unit)計算技術等新技術的不斷普及,單機有限元分析規模不再局限于幾萬、幾十萬節點規模,達到以往必須借助大型服務器或集群進行分析計算的百萬乃至千萬節點規模.但與此同時,和有限元分析系統密切相關的有限元模型可視化系統卻往往滿足不了超大規模有限元模型可視化需求,即使大型商業有限元分析軟件如MSC.PATRAN、ANSYS等在顯示千萬節點規模有限元模型時也十分卡頓,大大降低了用戶使用體驗.

目前,在大規模數據可視化相關領域已開展了較多的研究工作.鄒靜等[1]針對三維有限元模型的特點,利用基于快速排序的重復元素剔除算法,實現了百萬節點規模模型顯示;孫青等[2]利用基于線性八叉樹的LOD(levels of detail)層次細節技術,實現了海量數據的大規模三維城市模型可視化;邵思睿等[3]采用并行處理和LOD技術,實現了大規模粒子模擬結果的可視化.

SiPESC.POST[4-5]系統是由大連理工大學運載工程與力學學部/工業裝備結構分析國家重點實驗室研發的面向超大規模有限元計算的通用可視化系統,基于平臺(微核心)+插件體系結構,具有良好的開放性和可擴展性.SiPESC.POST系統包含用于管理有限元數據的有限元模型模塊、用于管理顯示所需數據的顯示模型模塊、用于將有限元數據轉換為顯示數據的過濾器模塊、用于圖形顯示的渲染器模塊和用于整體控制的控制器模塊,已實現包括網格模型圖、結果云圖、位移變形圖等常規有限元模型可視化功能.本文在可行性分析的基礎上,綜合考慮有限元模型特點和當前硬件顯示性能,提出基于拓撲結構的內部單元剔除技術對過濾器模塊進行優化,利用VBO(vertex buffer object)快速顯示技術對渲染器模塊進行優化,以實現單機千萬節點規模有限元模型流暢顯示.

1 基本思路

從有限元模型特點來看,得益于計算機計算能力的大幅提升,以往用于簡化計算而大量使用的梁、桿、殼單元大多被實體單元所取代.這樣一來,顯示有限元模型時,如果可以剔除模型內部無法看見的點、線、面等元素,會大大降低顯示數據量.以圖1的標準立方體模型為例.

圖1 示例模型

模型完全由六面體單元組成,當節點數目達到千萬規模時,總的單元數約為986×104,表面可見單元約為27×104,僅占總單元數的3%左右.其他常規模型,根據單元類型不同,具體形狀不同,剔除內部元素后,數據量雖然減幅各不相同,但多能大幅降低顯示數據量.

計算機顯示性能可分為以下3個方面:

(a)硬盤容量

任何有限元模型文件初始時大多保存在硬盤上,如果硬盤都無法存下,顯示就無從談起.千萬節點規模的有限元模型文件(不包括計算結果)大小為1~2 GB.當前動輒TB級的硬盤,完全滿足文件存儲需要.

(b)內存容量

模型顯示的第一步,就是把模型文件導入內存,并轉換成圖形應用接口所規定的數據格式,以便顯示,因此內存容量也必須考慮.實測千萬節點規模的有限元模型內存用量為3~4 GB,考慮數據轉換過程中產生的中間數據,內存用量峰值可能達到5~6 GB,當前計算機8 GB內存已經普及,內存容量基本滿足.

(c)顯存容量

為了進一步加快顯示速度,最好的方法就是把轉換好的顯示數據保存到顯存里,這樣避免了顯示時頻繁的內存、顯存數據交換,提高顯示效率.參照SiPESC.POST系統顯示數據結構,每個點需15 B,每條邊需30 B,每個三角面需57 B.顯示一個帶邊線、頂點的完整三角形面片需192 B,對于目前最常見的1 GB顯存理論最多存儲約500×104個完整三角形面片.從先前有限元模型特點分析來看,若不剔除內部元素,1 GB顯存無法存儲所有面片,只能將顯示數據保存在內存中,大大影響了顯示速度.剔除內部元素后,顯存容量基本滿足.

2 關鍵技術

經過可行性分析可知,想要在單機上流暢地顯示千萬節點規模有限元模型,有賴于有限元模型內部元素的剔除和顯存的有效利用.針對這兩點,本文開發和使用了基于拓撲結構的內部單元剔除技術和基于VBO的圖形快速顯示技術.

2.1 基于拓撲結構的內部單元剔除技術

有限元模型形狀復雜多樣,不可能簡單通過單元位置坐標進行剔除.常規的有限元模型數據中,單元數據中含有節點連接關系,節點數據中卻僅含節點坐標數據,未含共用該節點的單元信息,使得有限元整體結構的拓撲連接關系不全.SiPESC.POST系統使用過濾器管線[6],如圖2所示,通過一個個獨立而有序的過濾器對有限元數據進行處理,并最終生成顯示所需數據.

圖2 過濾流程

過濾器模塊在設計之初,就考慮到可擴展性,采用了工廠方法設計模式[7]和注冊機制,如圖3所示,可在不修改已有代碼的基礎上,進行動態擴展.

圖3 過濾器模塊類關系

為了生成節點單元連接信息,可在節點過濾之前,添加拓撲信息生成過濾器.而生成該過濾器僅需由基類Filter類和FilterDescriptor類進行派生,并向FilterManager類進行注冊即可.

當節點單元連接信息生成后,剔除有限元模型內部元素就變得十分容易.SiPESC.POST中所有的體單元顯示時都會離散成三角形面片,剔除模型內部元素,就是剔除模型內部三角形面片.模型內部面片與表面面片的區分標準就是內部面片被相鄰的兩個單元共用,而表面面片僅被所屬單元本身使用.流程示例代碼如下:

//獲取3個頂點的節點單元連接關系,即每個節點上共用該節點的單元號

QVector〈int〉 nodeelem1,nodeelem2,nodeelem3;

nodeelem1=Node1.getElements();

nodeelem2=Node2.getElements();

nodeelem3=Node3.getElements();

//以第一個節點為基礎歷遍所有共用該節點的單元號

int samenum=0;

for(intk=0;k

{ //當3個節點同時含有一個單元號時,表明面片屬于該單元 if(nodeelem2.contains(nodeelem1.at(k))&&nodeelem3.contains(nodeelem1.at(k))) { samenum++; } //面片同時屬于兩個單元時,即為內部單元 if(samenum>1) break;

}

內部面片剔除后,顯示數據量大大減少,使得單機千萬節點規模模型顯示成為可能.

2.2 精化數據結構

為了進一步減少顯示數據量,對顯示數據結構進行了精化,剔除與顯示無關的數據項.精簡后的數據分為點、線、三角面3種基礎圖元.

頂點數據保存為頂點坐標數組和頂點顏色數組,結構如下:

邊線數據保存為邊線坐標數組和邊線顏色數組,結構如下:

面片數據保存為面片坐標數組、面片顏色數組和法線方向數組,結構如下:

精簡后的顯示數據不僅數據量大大減小,而且可以更快地導入顯存用于顯示.

2.3 基于VBO的圖形快速顯示技術

當顯示規模很小,如幾百、幾千個三角形面片,使用下面示例代碼依次繪制每個面片即可:

glBegin(GL_TRIANGLES); glColor3f(1.0,1.0,1.0); glVertex3f(x1, y1, z1); glVertex3f(x2, y2, z2); glVertex3f(x3, y3, z3); … glEnd();

當顯示規模提高到幾萬、幾十萬個三角形面片,大量且頻繁的圖形接口調用成為顯示瓶頸,大大降低了顯示效率,這時如下面代碼所示在內存中把顯示數據進行整合,整體繪制,就能進一步提升顯示效率.

void* data=faces.data();

glNormalPointer(GL_SHORT, 0, faceNormals.data());glVertexPointer(3, GL_FLOAT, 0, faceVertexes.data());glColorPointer(3, GL_UNSIGNED_BYTE, 0,

faceColors.data());

glDrawElements(GL_TRIANGLES, faceCount, GL_UNSIGNED_INT, data);

當顯示規模進一步提高到幾百萬、近千萬個三角形面片,內存中整合好的顯示數據量進一步增大,每次圖形顯示時,由內存到顯存的數據交換成為顯示瓶頸,大大降低了顯示效率.

VBO技術正是用來解決這一問題.VBO技術可將顯示所需數據預先保存在顯卡顯存中,顯卡繪制圖形時直接調用顯存中的數據,大大提升顯示效率.示例代碼如下:

//準備VBO

glBindBuffer(etarget, vboBuffers[faceIndexBuffer]);

glBufferData(etarget, size, data, usage);

glBindBuffer(atarget, vboBuffers[faceColorBuffer]);

glBufferData(atarget, size, data, usage);

glBindBuffer(atarget, vboBuffers[faceVertexBuffer]);

glBufferData(atarget, size, data, usage);

glBindBuffer(atarget, vboBuffers[faceNormalBuffer]);

glBufferData(atarget, size, data, usage);

//使用VBO

glBindBuffer(atarget, vboBuffers[faceNormalBuffer]);

glBindBuffer(atarget, vboBuffers[faceColorBuffer]);

glBindBuffer(atarget, vboBuffers[faceVertexBuffer]);

glBindBuffer(etarget, vboBuffers[faceIndexBuffer]);

glDrawElements(GL_TRIANGLES, faceCount, GL_UNSIGNED_INT, 0);

3 系統集成

可視化系統基于SiPESC平臺設計并實現,因此可與SiPESC平臺中的其他模塊相互協作,提供更多靈活、強大的功能.

3.1 腳本語言調用

傳統編程語言,如C、C++、Java等,大多為編譯式語言,即代碼編寫完成后無法立即執行,需編譯成可執行程序后才能運行.這樣一來,當軟件規模較大時,完全編譯一次耗時較長,給修改、調試帶來不便.

腳本語言則不同,其為解釋式語言,代碼編寫后可立即執行,簡單、靈活.

SiPESC平臺以C++語言開發,同時也提供了腳本語言支持,現已支持JavaScript和python兩種腳本語言.所有基于SiPESC平臺開發的模塊都能自動支持腳本語言調用.可視化系統也不例外.利用腳本語言豐富的功能擴展包,可大大增加系統的靈活性.

以下面JavaScript代碼

/** 創建MObjectManager對象 */

var omanager=new MObjectManager;

/** 獲取MesherSelectManager對象 */

var selectManager=omanager.getObject(″org.sipesc.ui.mesher.mesherselectmanager″);

var selectBuffer=selectManager.getSelectBuffer();

var selectItems=selectBuffer.getSelectItems(1);

print(″已選中的單元數:″+selectItems.length+″ ″);

for(vari=0;i

print(″模型ID:″+selectItems[i].getModelid()+″ 單元ID:″+selectItems[i].getId()+″ ″);

為例,可視化系統提供了點、線、面的拾取操作,通過腳本可獲得當前選中的單元,得到模型ID和單元ID.之后,通過模型ID、單元ID既可以得到計算結果進行曲線繪制、模型校核等操作,也可以得到模型坐標進行模型變換、子結構拼裝等操作.

3.2 工程數據庫

千萬節點規模有限元模型,僅單元網格數據就有幾個GB,加上計算結果,常常到達TB(1 024 GB)級,一般的軟件很難進行管理.SiPESC工程數據庫模型具有TB級數據管理能力.集成工程數據庫模塊,使得可視化系統無須考慮有限元數據儲存,專注于顯示性能提升.

4 應用實例

為驗證系統性能,選取了以下算例進行試驗.試驗機器內存8 GB,顯存1 GB.使用Fraps顯卡輔助軟件,測試顯示幀數.

4.1 千萬節點輪轂模型顯示

該模型包含1 004×104個節點,725×104個十節點四面體單元,模型文件大小為1.86 GB,整個顯示過程中,內存用量峰值為3.8 GB,穩定后內存用量為2 GB.若不進行內部元素剔除,按每個十節點四面體單元離散為16個三角形面片,共有三角形面片11 600×104個,每個完整三角形面片需192 B計算,需顯存20 GB,遠遠超出可用顯存容量,無法顯示.剔除內部元素后,表面三角形面片數僅為395 241個,需顯存72 MB,可流暢旋轉、放縮.分別測試了該模型在Patran、HyperMesh 和SiPESC.POST系統中的最大幀數:Patran 3幀,十分卡頓,即使在旋轉過程中,取消邊線以加速顯示,最大幀數也僅為4幀左右;HyperMesh有無邊線均為12幀,基本流暢,放縮時略有延遲;SiPESC.POST系統有邊線時20幀,流暢,取消邊線時38幀,十分流暢.具體見圖4.

4.2 千萬節點發動機模型顯示

該模型包含1 304×104個節點,931×104個十節點四面體單元,模型文件大小為2.41 GB,整個顯示過程中,內存用量峰值為5.1 GB,穩定后內存用量為4.5 GB.若不進行內部元素剔除,按每個十節點四面體單元離散為16個三角形面片,共有三角形面片14 896×104個,每個完整三角形面片需192 B計算,需顯存26 GB,遠遠超出可用顯存容量,無法顯示.剔除內部元素后,表面三角形面片數僅為654 579個,需顯存120 MB,可流暢旋轉、放縮.分別測試了該模型在Patran、HyperMesh和SiPESC.POST系統中的最大幀數:Patran 1幀,十分卡頓,即使在旋轉過程中取消邊線以加速顯示,最大幀數也僅為2幀左右;HyperMesh有無邊線均為6~7幀,比較卡頓;SiPESC.POST系統有邊線時12幀,基本流暢,取消邊線時28幀,十分流暢.具體見圖5.

(a) Patran中

(b) HyperMesh中

(c) SiPESC.POST中

(a) Patran中

(b) HyperMesh中

(c) SiPESC.POST中

5 結 語

本文在自主軟件平臺SiPESC上,進一步研發了面向千萬節點有限元模型的可視化系統.在SiPESC平臺的插件技術、過濾器設計框架及工廠軟件設計模式基礎上,提出了基于拓撲結構的內部單元剔除技術,精化了數據結構及管理方案.結合VBO快速顯示技術,實現了單機千萬節點規模有限元可視化功能.給出了基于SiPESC平臺的軟件集成思路與功能擴展實例.通過兩個千萬節點規模的可視化實例,與商業軟件進行了對比驗證,展示了本文研發可視化系統在顯示效率、大規模問題適用性方面的優越性.

[1] 鄒 靜,紀洪廣. 超大型三維有限元模型的快速可視化算法[J]. 圖學學報, 2012, 33(2):13-19.

ZOU Jing, JI Hong-guang. Fast visualization algorithm for huge 3D-finite element models [J]. Journal of Graphics, 2012, 33(2):13-19. (in Chinese)

[2] 孫 青,徐 霞. 基于八叉樹及LOD視相關大規模三維城市模型研究[J]. 科技通報, 2014, 30(2):91-94.

SUN Qing, XU Xia. Study of large-scale three-dimensional city model based on octree and view-dependent LOD technology [J]. Bulletin of Science and Technology, 2014, 30(2):91-94. (in Chinese)

[3] 邵思睿,郭 力. 大規模粒子模擬的后處理與可視化[J]. 計算機與應用化學, 2011, 28(9):1121-1125. SHAO Si-rui, GUO Li. Post-process and visualization for large-scale particle simulation [J]. Computers and Applied Chemistry, 2011, 28(9):1121-1125. (in Chinese)

[4] 徐良寅,李云鵬,陳飆松. 面向超大規模有限元計算的通用可視化系統SiPESC.POST的設計與實現[J]. 計算力學學報, 2015, 30(2):220-224.

XU Liang-yin, LI Yun-peng, CHEN Biao-song. Design and implementation of general visual system SiPESC.POST for large scale finite element computation [J]. Chinese Journal of Computational Mechanics, 2015, 30(2):220-224. (in Chinese)

[5] 張洪武,陳飆松,李云鵬,等. 面向集成化CAE軟件開發的SiPESC研發工作進展[J]. 計算機輔助工程, 2011, 20(2):39-49.

ZHANG Hong-wu, CHEN Biao-song, LI Yun-peng,etal. Advancement of design and implementation of SiPESC for development of integrated CAE software systems [J]. Computer Aided Engineering, 2011, 20(2):39-49. (in Chinese)

[6] Pharr M. GPU精粹2[M]. 北京:清華大學出版社, 2007:336-337.

Pharr M. GPU Gems 2 [M]. Beijing:Tsinghua Universtiy Press, 2007:336-337. (in Chinese)

[7] Gamma E, Helm R, Johnson R,etal. Design Patterns:Elements of Reusable Object-Oriented Software [M]. Boston:Addison-Wesley, 1994:116-118.

Design and implementation of visual system for finite element model with tens of millions of nodes based on SiPESC platform

XU Liang-yin*1,2, LI Yun-peng1,2, CHEN Biao-song1,2

( 1.State Key Laboratory of Structural Analysis for Industrial Equipment, Dalian University of Technology, Dalian 116024, China; 2.Department of Engineering Mechanics, Dalian University of Technology, Dalian 116024, China )

A high performance visual system for finite element model (FEM) with tens of millions of nodes is implemented, and the relevant algorithms, data structures, key techniques and software design framework are presented. Through the analyses of the features of 3D FEM and the general FEM visual system SiPESC.POST, the internal elements culling technology and refined data structures based on topology structure are proposed. And then, in conjunction with VBO rapid display technology, the developed visual system displays the FEM with tens of millions of nodes smoothly. Compared with several large commercial FEM software systems, the proposed system demonstrates its superiority in visual efficiency and feasibility for super large-scale problems.

SiPESC.POST; tens of millions of nodes; visualization; internal elements culling; VBO

2014-12-10;

2015-05-30.

國家自然科學基金資助項目(91315302, 11372064);高等學校學科創新引智計劃資助項目(B14013).

徐良寅*(1986-),男,博士生,E-mail:xly@mail.dlut.edu.cn.

1000-8608(2015)04-0339-06

O242.21

A

10.7511/dllgxb201504001

猜你喜歡
可視化有限元模型
一半模型
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
重要模型『一線三等角』
基于CGAL和OpenGL的海底地形三維可視化
重尾非線性自回歸模型自加權M-估計的漸近分布
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
3D打印中的模型分割與打包
磨削淬硬殘余應力的有限元分析
基于SolidWorks的吸嘴支撐臂有限元分析
主站蜘蛛池模板: 又大又硬又爽免费视频| 伊人激情久久综合中文字幕| 在线观看欧美精品二区| www.狠狠| 亚洲色婷婷一区二区| 午夜毛片免费观看视频 | 极品性荡少妇一区二区色欲| 日本午夜三级| 国产丝袜91| 国产噜噜在线视频观看| 亚洲一区色| 9999在线视频| Jizz国产色系免费| 国产成人精品一区二区三区| 91 九色视频丝袜| 国产肉感大码AV无码| 人妻精品全国免费视频| 91精品情国产情侣高潮对白蜜| 91精品久久久无码中文字幕vr| 青青草国产一区二区三区| 激情视频综合网| 97国产一区二区精品久久呦| 欧美日韩午夜| 1级黄色毛片| 精品色综合| 精品久久综合1区2区3区激情| 国产精品毛片一区视频播| 日韩第一页在线| 国产浮力第一页永久地址| 制服丝袜一区二区三区在线| 国产精品9| 四虎影视无码永久免费观看| 深夜福利视频一区二区| 国产精品私拍在线爆乳| 色综合狠狠操| 精品视频第一页| 亚洲一区二区三区在线视频| 色哟哟国产成人精品| 免费欧美一级| 国产在线精彩视频二区| 超级碰免费视频91| 成人久久18免费网站| 欧美成人区| 91年精品国产福利线观看久久| 另类欧美日韩| 久草视频精品| 国产成人综合亚洲网址| 成年看免费观看视频拍拍| 日韩国产一区二区三区无码| 天天色天天综合网| 国产成人禁片在线观看| 美女免费黄网站| 8090午夜无码专区| 国产成人精品视频一区二区电影 | 日韩国产无码一区| 久久久精品久久久久三级| 老司机久久精品视频| 亚洲中文字幕在线一区播放| 欧洲高清无码在线| 一级毛片无毒不卡直接观看| 亚洲欧美不卡视频| 婷五月综合| 免费福利视频网站| 亚卅精品无码久久毛片乌克兰| 欧美成人手机在线观看网址| 六月婷婷激情综合| 99资源在线| 国产一级二级三级毛片| 中文纯内无码H| 欧美日韩一区二区在线播放| 97国产在线观看| 色哟哟色院91精品网站| 国产高清国内精品福利| 经典三级久久| 国产美女叼嘿视频免费看| 亚洲人成网站18禁动漫无码| 亚洲第一黄片大全| 久久五月天综合| 亚洲福利片无码最新在线播放| 日韩一级毛一欧美一国产| 国产精品原创不卡在线| 欧美综合中文字幕久久|