• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      HAJIF軟件前后處理模塊設(shè)計(jì)與實(shí)現(xiàn)

      2016-11-25 20:48黃河姚剛段世慧
      計(jì)算機(jī)輔助工程 2016年5期
      關(guān)鍵詞:后處理有限元

      黃河++姚剛+段世慧

      摘要: 為滿足國(guó)產(chǎn)有限元軟件HAJIF對(duì)大規(guī)模可視化的前置建模和后置數(shù)據(jù)處理功能的迫切需求,基于面向?qū)ο蟮某绦蛟O(shè)計(jì)思想設(shè)計(jì)并實(shí)現(xiàn)具有高度靈活性的前后處理模塊.提出層次化、組件式的軟件設(shè)計(jì)架構(gòu).在前處理功能設(shè)計(jì)方面,引入準(zhǔn)C++標(biāo)準(zhǔn)Boost庫(kù),解決模型數(shù)據(jù)的持久化和內(nèi)存管理問(wèn)題;采用節(jié)點(diǎn)相關(guān)面法以及OpenGL深度緩存機(jī)制大大提升模型顯示效率.在后處理功能設(shè)計(jì)方面,建立物理場(chǎng)量值與顏色的對(duì)應(yīng)關(guān)系,并構(gòu)建結(jié)構(gòu)變形比例放大因子計(jì)算公式.研究表明:面向?qū)ο蟮某绦蛟O(shè)計(jì)方法可以大大提高開(kāi)發(fā)效率和前后處理模塊的可維護(hù)性.

      關(guān)鍵詞: HAJIF; 前處理; 后處理; 有限元; 面向?qū)ο蟪绦蛟O(shè)計(jì)

      中圖分類(lèi)號(hào): TP317.4 文獻(xiàn)標(biāo)志碼: B

      0 引 言

      商業(yè)化的CAE軟件,如Abaqus和Nastran等,大多具有友好的前后處理模塊.HAJIF是航空工業(yè)集團(tuán)研發(fā)的大型有限元分析軟件,其功能涵蓋靜力、模態(tài)、屈曲等通用計(jì)算以及優(yōu)化、靜彈、顫振、熱應(yīng)力分析等專(zhuān)用求解計(jì)算功能.[1]近年來(lái),隨著數(shù)值分析方法的逐步完善,尤其是計(jì)算機(jī)運(yùn)算速度的飛速發(fā)展,整個(gè)HAJIF計(jì)算系統(tǒng)求解規(guī)模越來(lái)越大,求解效率也越來(lái)越高,但由于缺少對(duì)大規(guī)模模型的前后處理功能,HAJIF軟件的長(zhǎng)遠(yuǎn)發(fā)展與市場(chǎng)銷(xiāo)售受到制約,因此,增強(qiáng)可視化的前置建模和后置數(shù)據(jù)處理功能十分迫切.

      在分析有限元前后處理特點(diǎn)的基礎(chǔ)上,提出以有限元數(shù)據(jù)結(jié)構(gòu)為中心構(gòu)建前后置程序架構(gòu)的思路,借助主流的程序設(shè)計(jì)語(yǔ)言C++,采用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,設(shè)計(jì)開(kāi)發(fā)前后置模塊HAJIF_PrePost,并重點(diǎn)對(duì)其中的關(guān)鍵功能技術(shù)進(jìn)行探討,如底層數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、模型數(shù)據(jù)持久化、大規(guī)模網(wǎng)格與云圖顯示技術(shù)等.

      1 總體架構(gòu)

      HAJIF_PrePost模塊采用層次化的三層體系架構(gòu),見(jiàn)圖1.底層是數(shù)據(jù)層,負(fù)責(zé)有限元模型數(shù)據(jù)的管理以及圖形顯示數(shù)據(jù)管理,是前后置模塊的基礎(chǔ);中間層是業(yè)務(wù)層,承上啟下,串聯(lián)界面層與數(shù)據(jù)層,負(fù)責(zé)具體功能接口的定義實(shí)現(xiàn)、模型卡讀寫(xiě)、圖形處理、數(shù)據(jù)處理等,是前后置模塊的核心;最上面層是界面層,主要提供數(shù)據(jù)顯示、交互及建模功能,并負(fù)責(zé)各個(gè)求解模塊的界面定義和任務(wù)管理.

      出于開(kāi)放性的考慮,HAJIF_PrePost模塊遵循面向?qū)ο?、模塊化的軟件構(gòu)建技術(shù),按照高內(nèi)聚低耦合的原則,以庫(kù)函數(shù)的方式形成一系列基礎(chǔ)服務(wù)組件即動(dòng)態(tài)鏈接庫(kù),不同功能組件通過(guò)約定的接口協(xié)同工作、傳遞數(shù)據(jù),整個(gè)架構(gòu)由一個(gè)主程序和多個(gè)基礎(chǔ)服務(wù)組件構(gòu)成,見(jiàn)圖2.

      2 前處理關(guān)鍵功能設(shè)計(jì)

      2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

      利用C++面向?qū)ο罄^承的重要特性,建立HAJIF_PrePost模塊完整的前后處理類(lèi)層次結(jié)構(gòu).[2-3]分別構(gòu)建Element,Node,Material,Property,Load和Bound等基類(lèi),用于對(duì)有限元單元、節(jié)點(diǎn)、材料、屬性、載荷和邊界等數(shù)據(jù)的公共部分進(jìn)行封裝.在設(shè)計(jì)好基類(lèi)后,可以派生出更加具體的子類(lèi),例如:由載荷類(lèi)可以派生出力矩類(lèi)、溫度類(lèi),由屬性類(lèi)可以派生出桿元類(lèi)、梁元類(lèi)和殼元類(lèi)等.

      為實(shí)現(xiàn)有限元數(shù)據(jù)的可擴(kuò)展性,HAJIF_PrePost模塊采用工廠設(shè)計(jì)方法模式,通過(guò)工廠對(duì)象接口,將實(shí)際創(chuàng)建工作推遲到子類(lèi)中,使系統(tǒng)在不修改工廠接口的情況下引進(jìn)新的產(chǎn)品.如:分別定義單元類(lèi)ElementSet,材料類(lèi)MaterialSet,屬性類(lèi)PropertySet和載荷類(lèi)LoadSet等8個(gè)工廠接口,然后通過(guò)定義模型管理類(lèi)FemManager存儲(chǔ)管理相應(yīng)的工廠類(lèi).以種類(lèi)相對(duì)較多的單元類(lèi)為例,其數(shù)據(jù)結(jié)構(gòu)見(jiàn)圖3.

      2.2 模型數(shù)據(jù)管理

      模型數(shù)據(jù)管理是CAE軟件前后處理的基礎(chǔ):一方面需形成統(tǒng)一的數(shù)據(jù)庫(kù)文件,將內(nèi)存中的模型數(shù)據(jù)進(jìn)行存檔;另一方面能根據(jù)用戶需要快速方便地進(jìn)行內(nèi)外部數(shù)據(jù)的交換.基于C++標(biāo)準(zhǔn)庫(kù)的I/O流框架雖然提供富有彈性且易于使用的流處理機(jī)制,但不具備快速對(duì)模型對(duì)象進(jìn)行序列化存儲(chǔ)、存檔的能力.準(zhǔn)C++標(biāo)準(zhǔn)Boost Serialization能以庫(kù)的形式為C++提供這個(gè)重要的功能,可以序列化C++中的各種類(lèi)型,同時(shí)Serialization庫(kù)把存檔的格式與類(lèi)型的序列化完全分離開(kāi)來(lái),任意的數(shù)據(jù)類(lèi)型都可以采用任意的格式保存,非常靈活.[4]由于HAJIF_PrePost模塊是按照面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì)的,因此可以應(yīng)用Serialization庫(kù)將模型對(duì)象轉(zhuǎn)換為一個(gè)字節(jié)流進(jìn)行存儲(chǔ)或者傳輸,在需要時(shí)再恢復(fù)成與原狀態(tài)一致的等價(jià)對(duì)象.

      僅僅依靠Boost Serialization進(jìn)行模型對(duì)象的序列化與反序列化,會(huì)存在內(nèi)存泄露的問(wèn)題,特別是在反序列化時(shí)雖然分配內(nèi)存但是卻沒(méi)有合理的地方釋放,采用外部釋放又存在釋放不完全的風(fēng)險(xiǎn),故引入Boost庫(kù)的智能指針Share_ptr進(jìn)行內(nèi)存管理.以材料對(duì)象為例,在材料類(lèi)集合對(duì)象映射表中存儲(chǔ)其智能指針,偽代碼如下.

      2.3 大模型網(wǎng)格的可視化

      有限元模型是由三維網(wǎng)格單元組成的,隨著建模精度的逐漸提高,網(wǎng)格單元數(shù)量級(jí)可能上億.由于在三維模型可視化過(guò)程中需要顯示的只是所選擇的計(jì)算區(qū)域外表面的信息,因此大模型網(wǎng)格的可視化問(wèn)題就轉(zhuǎn)化為快速判斷在三維網(wǎng)格中哪些單元面是外表面,以及哪些外表面可見(jiàn)的問(wèn)題.

      針對(duì)單元內(nèi)外面問(wèn)題,眾所周知,由于在三維模型網(wǎng)格中內(nèi)部單元面屬于并只屬于2個(gè)單元,外部單元面只屬于某一個(gè)單元.組建結(jié)構(gòu)外部單元面的一般方法為先形成結(jié)構(gòu)中所有單元的單元面,然后對(duì)各個(gè)單元面進(jìn)行比較,節(jié)點(diǎn)組成完全相同的面即為內(nèi)部單元面,其余的即為外部單元面.[5-6]隨著網(wǎng)格單元數(shù)目的增加,這種方法的運(yùn)算量將呈幾何級(jí)數(shù)增加.為提高模型的顯示速度和效果,采取如下更高效的節(jié)點(diǎn)相關(guān)面方法.

      (1)建立節(jié)點(diǎn)相關(guān)面列表,F(xiàn)(n)=F1,F(xiàn)2,…,其中:n為節(jié)點(diǎn)編號(hào),F(xiàn)i代表一個(gè)單元面,例如單元號(hào)為154的四面體的1面為154.1,2面為154.2.

      (2)對(duì)非空的F(n)列表的各個(gè)相關(guān)面進(jìn)行比較,剔除節(jié)點(diǎn)組成完全相同的面,剩下的即為節(jié)點(diǎn)相關(guān)的外表面.

      在提取出外表面后,需要把三維模型信息經(jīng)過(guò)某種投影變換在二維顯示的表面上繪制出來(lái).投影變換會(huì)失去深度信息,導(dǎo)致圖形的二義性.要消除二義性,就要在繪制時(shí)消除實(shí)際不可見(jiàn)的面,對(duì)三維模型的內(nèi)部單元和被遮擋的外部單元進(jìn)行消隱.HAJIF_PrePost模塊應(yīng)用基于OpenGL的幀緩存圖形消隱技術(shù),即OpenGL的深度緩存.深度緩存保存每個(gè)像素的深度值,深度通常用視點(diǎn)到物體的距離來(lái)度量,有較大深度值的像素會(huì)被較小深度值的像素替代,即遠(yuǎn)處的物體被近處的物體所遮擋.[7]深度緩存也稱(chēng)為Z-buffer.在實(shí)際應(yīng)用中,常用x和y度量屏幕上水平與垂直距離,而用z度量眼睛到屏幕的垂直距離,如果像素的z坐標(biāo)值小于深度緩沖區(qū)中的深度值,則深度緩沖區(qū)中的深度值被z坐標(biāo)值替代,即只保留距離觀察點(diǎn)近的圖形元素所對(duì)應(yīng)的像素,也就是說(shuō)他們沒(méi)有被其他元素遮擋住并最終在眼前顯示.對(duì)有限元模型每個(gè)顯示對(duì)象的每個(gè)面上的每個(gè)點(diǎn)都進(jìn)行上述處理后,即可得到消除隱藏面的有限元模型.某機(jī)翼盒段結(jié)構(gòu)三維網(wǎng)格模型見(jiàn)圖4.

      3 后處理關(guān)鍵功能設(shè)計(jì)

      3.1 彩色云圖繪制

      有限元數(shù)值結(jié)果主要包括位移、應(yīng)力和應(yīng)變等信息,相應(yīng)的后處理程序以彩色云圖的繪制為主要內(nèi)容,以便能快速準(zhǔn)確地掌握模型中物理量的客觀分布以及極值的大小和位置等.

      在計(jì)算結(jié)果平滑云圖的繪制過(guò)程中,彩色云圖繪制的關(guān)鍵之一是建立物理場(chǎng)量值與顏色的對(duì)應(yīng)關(guān)系.[8-9]通常,有限元計(jì)算結(jié)果數(shù)值較大且危險(xiǎn)的部位用紅色表示,數(shù)值結(jié)果較小且相對(duì)安全的部位用藍(lán)色表示.在HAJIF_PrePost模塊中彩色云圖的配色主要采用RGB方案,最小場(chǎng)值配色為藍(lán)色,最大場(chǎng)值配色為紅色,場(chǎng)值中值配色為綠色,物理量場(chǎng)值和顏色呈線性分布,見(jiàn)圖5.最后,通過(guò)OpenGL繪圖命令對(duì)模型進(jìn)行著色,并進(jìn)行繪制和填充,填充后的彩色云圖使有限元分析數(shù)據(jù)的描述更為直觀.某機(jī)翼盒段模型應(yīng)力云圖見(jiàn)圖6.

      3.2 變形圖繪制

      由于載荷作用,工程結(jié)構(gòu)會(huì)產(chǎn)生各自由度方向上的變形,經(jīng)有限元分析后體現(xiàn)為離散節(jié)點(diǎn)的位移.將節(jié)點(diǎn)位移以變形圖形式表現(xiàn)出來(lái),有助于更直觀、更準(zhǔn)確有效地評(píng)價(jià)結(jié)構(gòu)的受力變形或振動(dòng)情況.[10]但是,離散結(jié)構(gòu)的節(jié)點(diǎn)位移相對(duì)于結(jié)構(gòu)尺寸要小得多,若直接將節(jié)點(diǎn)位移疊加到節(jié)點(diǎn)坐標(biāo)上并進(jìn)行離散結(jié)構(gòu)單元的重繪,由此得到的離散結(jié)構(gòu)變形圖幾乎看不出整體結(jié)構(gòu)的變形情況,因此需要對(duì)節(jié)點(diǎn)位移進(jìn)行適當(dāng)程度的放大.基于此,在HAJIF_PrePost模塊中將最大的節(jié)點(diǎn)位移放大到結(jié)構(gòu)尺寸的f倍,取f為0.15~0.2,模型變形圖的比例換算因子

      4 算 例

      為驗(yàn)證HAJIF軟件前后置模塊的實(shí)際性能,選取飛機(jī)機(jī)身結(jié)構(gòu)進(jìn)行驗(yàn)證.機(jī)身模型見(jiàn)圖8.該有限元模型包含928 768個(gè)節(jié)點(diǎn),由231 600個(gè)桿元和694 800個(gè)四邊形單元等近百萬(wàn)個(gè)單元組成,在8GB內(nèi)存、2GB顯存的計(jì)算機(jī)上,應(yīng)用操作流暢,顯示效果良好,滿足使用要求.計(jì)算結(jié)果見(jiàn)圖9.

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

      (1)通過(guò)封裝基本數(shù)據(jù)類(lèi)派生出高級(jí)類(lèi)的方法,建立面向?qū)ο蟮南到y(tǒng)架構(gòu),符合現(xiàn)代軟件的設(shè)計(jì)思想,大大提高HAJIF_PrePost模塊開(kāi)發(fā)效率和可維護(hù)性,對(duì)于提高軟件質(zhì)量以及縮短開(kāi)發(fā)周期具有現(xiàn)實(shí)意義.(2)HAJIF_PrePost模塊具有操作簡(jiǎn)單、功能全面、可擴(kuò)展性強(qiáng)等特點(diǎn),給用戶帶來(lái)直觀的感受和操作的便利,提升國(guó)產(chǎn)CAE軟件HAJIF的競(jìng)爭(zhēng)力,具有廣闊的發(fā)展前景,為進(jìn)一步市場(chǎng)開(kāi)拓打下堅(jiān)實(shí)的基礎(chǔ).

      參考文獻(xiàn):

      [1] 孫俠生, 段世慧, 陳煥星. 堅(jiān)持自主創(chuàng)

      新 實(shí)現(xiàn)航空CAE軟件的產(chǎn)業(yè)化發(fā)展[J]. 計(jì)算機(jī)輔助工程, 2010, 19(1): 1-6. DOI: 10.3969/j.issn.1006-0871.2010.01.003.

      SUN X S, DUAN S H, CHEN H X. Keeping independent innovation, implementing industrialization development of aviation CAE software[J]. Computer Aided Engineering, 2010, 19(1): 1-6. DOI: 10.3969/j.issn.1006-0871.2010.01.003.

      [2] 魏守水, 張合寶, 姜春香, 等. 面向?qū)ο笪⒘黧w有限元分析軟件的設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2008, 25(10): 27-29. DOI: 10.3969/j.issn.1000-386X.2008.10.011.

      WEI S S, ZHANG H B, JIANG C X, et al. The design of object-oriented finite element analysis software for microfluid[J]. Computer Applications and Software, 2008, 25(10): 27-29. DOI: 10.3969/j.issn.1000-386X.2008.10.011.

      [3] 魏泳濤, 于建華, 陳君楷. 面向?qū)ο笥邢拊绦蛟O(shè)計(jì)——基本數(shù)據(jù)類(lèi)[J]. 四川大學(xué)學(xué)報(bào)(工程科學(xué)版), 2001, 33(2): 17-21. DOI: 10.3969/j.issn.1009-3087.2001.02.005.

      WEI Y T, YU J H, CHEN J K. Object-oriented approach to the finite element programming: basic data classes[J]. Journal of Sichuan University(Engineering Science), 2001, 33(2): 17-21. DOI: 10.3969/j.issn.1009-3087.2001.02.005.

      [4] 羅劍鋒. Boost程序庫(kù)探秘——深度解析C++準(zhǔn)標(biāo)準(zhǔn)庫(kù)[M]. 北京: 清華大學(xué)出版社, 2012: 373-424.

      [5] 徐良寅, 李云鵬, 陳飆松. 面向超大規(guī)模有限元計(jì)算的通用可視化系統(tǒng)SiPESC.POST的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算力學(xué)學(xué)報(bào), 2015, 32(2): 220-224. DOI: 10.7511/jslx201502013.

      XU L Y, LI Y P, CHEN B S. Design and implementation of general visual system SiPESC.POST for large scale finite element computation[J]. Chinese Journal of Computational Mechanics, 2015, 32(2): 220-224. DOI: 10.7511/jslx201502013.

      [6] 林庚浩, 馬天寶, 寧建國(guó). 三維有限差分計(jì)算中大規(guī)模網(wǎng)格生成及顯示技術(shù)[J]. 計(jì)算機(jī)輔助工程, 2012, 21(4): 1-5. DOI: 10.3969/j.issn.1006-0871.2012.04.001.

      LIN G H, MA T B, NING J G. Large-scale grid generation and display technology in 3D finite difference computation[J]. Computer Aided Engineering, 2012, 21(4): 1-5. DOI: 10.3969/j.issn.1006-0871.2012.04.001.

      [7] 簡(jiǎn)學(xué)東, 陸玲, 莫桂花. Z緩沖消隱算法的改進(jìn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2007, 24(9): 149-150. DOI: 10.3969/j.issn.1000-386X.2007.09.053.

      JIAN X D, LU L, MO G H. An improvement to Z-buffer hidden surface remove algorithm[J]. Computer Application and Software, 2007, 24(9): 149-150. DOI: 10.3969/j.issn.1000-386X.2007.09.053.

      [8] 李建波, 陳健云, 林皋. 針對(duì)三維有限元數(shù)據(jù)場(chǎng)的精確后處理算法[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2004, 16(8): 1169-1175. DOI: 10.3321/j.issn:1003-9775.2004.08.024.

      LI J B, CHEN J Y, LIN G. Precise visualiztation algorithm for the post-processing of 3D finite element model[J]. Journal of Computer Aided Design & Computer Graphics, 2004, 16(8): 1169-1175. DOI: 10.3321/j.issn:1003-9775.2004.08.024.

      [9] 周偉, 田紅旗, 高廣軍. 一種有限元科學(xué)計(jì)算可視化方法[J]. 工程圖學(xué)學(xué)報(bào), 2010, 31(5): 112-117. DOI: 10.3969/j.issn.1003-0158.2010.05.019.

      ZHOU W, TIAN H Q, GAO G J. Visualization in scientific computation of FEM[J]. Journal of Engineering Graphics, 2010, 31(5): 112-117. DOI: 10.3969/j.issn.1003-0158.2010.05.019.

      [10] 倪昱, 金建海, 單威俊. 艦船綜合水動(dòng)力分析虛擬試驗(yàn)系統(tǒng)中試驗(yàn)結(jié)果的可視化關(guān)鍵技術(shù)研究[J]. 船海工程, 2013, 42(2): 8-12. DOI: 10.3963/j.issn.1671-7953.2013.02.003.

      NI Y, JIN J H, SHAN W J. Key techniques of visualization of virtual experimental result in ship hydrodynamic performance analysis system[J]. Ship & Ocean Engineering, 2013, 42(2): 8-12. DOI: 10.3963/j.issn.1671-7953.2013.02.003.

      猜你喜歡
      后處理有限元
      有限元基礎(chǔ)與應(yīng)用課程專(zhuān)業(yè)賦能改革與實(shí)踐
      基于有限元的Q345E鋼補(bǔ)焊焊接殘余應(yīng)力的數(shù)值模擬
      將有限元分析引入材料力學(xué)組合變形的教學(xué)探索
      大型壓濾機(jī)主梁的彈性力學(xué)計(jì)算及有限元分析設(shè)計(jì)
      大型壓濾機(jī)主梁的彈性力學(xué)計(jì)算及有限元分析設(shè)計(jì)
      起重機(jī)吊臂振動(dòng)模態(tài)的有限元分析
      海冰與海洋平臺(tái)碰撞分析中的可視化方法
      基于Python的Abaqus二次開(kāi)發(fā)在空間可展單簧片結(jié)構(gòu)仿真分析中的應(yīng)用
      基于UG的變螺距螺旋槽建模及數(shù)控加工編程
      銀鏡反應(yīng)和后續(xù)處理的實(shí)驗(yàn)改進(jìn)
      神木县| 永昌县| 双桥区| 宣恩县| 巴彦淖尔市| 榆树市| 越西县| 泗洪县| 怀来县| 永兴县| 甘肃省| 多伦县| 封丘县| 长武县| 长海县| 东莞市| 格尔木市| 怀集县| 保山市| 华亭县| 临城县| 屯门区| 黔东| 福鼎市| 孙吴县| 中卫市| 丹阳市| 枣强县| 延吉市| 建湖县| 江山市| 峨眉山市| 张家川| 辰溪县| 郯城县| 寿宁县| 高碑店市| 开原市| 洛南县| 明溪县| 黄大仙区|