国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于HYPERMESH的六面體網(wǎng)格局部加密插件開發(fā)

2018-09-10 08:21:41鄭燕娟李庚袁
企業(yè)科技與發(fā)展 2018年3期

鄭燕娟 李庚袁

【摘 要】為了解決HYPERMESH前處理軟件無法實(shí)現(xiàn)六面體網(wǎng)格局部加密的問題,利用Tcl/tk語言開發(fā)了六面體網(wǎng)格局部加密插件,在HYPERMESH中實(shí)現(xiàn)了六面體網(wǎng)格的局部加密功能,擴(kuò)充了HYPERMESH的六面體網(wǎng)格劃分功能。實(shí)例結(jié)果表明,該插件可自動(dòng)對(duì)選擇的六面體網(wǎng)格進(jìn)行加密,極大地提高了HYPERMESH軟件六面體網(wǎng)格的劃分效率和質(zhì)量。

【關(guān)鍵詞】局部加密;HYPERMESH;Tcl/tk;六面體網(wǎng)格

【中圖分類號(hào)】TP391.72 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-0688(2018)03-0083-04

0 引言

在有限元分析中,同一個(gè)模型以同樣大小的單元尺寸劃分,六面體網(wǎng)格數(shù)要比四面體網(wǎng)格數(shù)少得多,加上六面體網(wǎng)格在計(jì)算精度、劃分網(wǎng)格數(shù)量及抗畸變程度等方面比四面體網(wǎng)格具有明顯的優(yōu)勢[1-2],因此六面體網(wǎng)格是有限元分析的首選網(wǎng)格。

在點(diǎn)接觸、裂紋等有限元分析中,需要分析的區(qū)域往往占整個(gè)模型的很小一部分,而為了得到較準(zhǔn)確的結(jié)果,常常需要在應(yīng)力集中的地方劃分較小的網(wǎng)格尺寸,但如果全部模型都用較小的網(wǎng)格尺寸,特別是在整體模型較大的情況下,會(huì)使模型單元總數(shù)很多,需要較多的計(jì)算資源,甚至超過計(jì)算機(jī)所能承受的范圍。通常的做法是在應(yīng)力集中的區(qū)域使用較小的網(wǎng)格,其他區(qū)域使用較大網(wǎng)格,在它們之間用過渡單元來連接,保證網(wǎng)格之間的連續(xù)性。國內(nèi)外許多學(xué)者致力于六面體網(wǎng)格過渡算法的研究[4-6],并開發(fā)了相應(yīng)軟件實(shí)現(xiàn)六面體網(wǎng)格的劃分及自動(dòng)過渡加密,但由于是獨(dú)立的軟件,開發(fā)工作量巨大,所以普通個(gè)人或單位難以完成。

HYPERMESH是一款劃分六面體網(wǎng)格分功能十分出色的商用軟件[3],能夠滿足大多數(shù)網(wǎng)格的劃分,但尚不能在網(wǎng)格尺寸相差較大的六面體網(wǎng)格之間自動(dòng)劃分六面體過渡網(wǎng)格。Ito等人提出的六面體網(wǎng)格加密算法,單元質(zhì)量高,過渡單元少。本文以Ito等人提出的加密算法為基礎(chǔ),在HYPERMESH環(huán)境中通過Tcl/tk語言實(shí)現(xiàn)六面體網(wǎng)格的自動(dòng)過渡加密,充分利用HYPERMESH軟件劃分六面體網(wǎng)格的優(yōu)勢,同時(shí)降低開發(fā)難度。

1 過渡網(wǎng)格加密算法

在網(wǎng)格劃分中,很多情況下都是要對(duì)一段連續(xù)的區(qū)域進(jìn)行細(xì)化,如模擬圓球壓平板的接觸分析中,應(yīng)力集中的區(qū)域占整個(gè)模型的很小一部分,常常要在接觸點(diǎn)附近區(qū)域細(xì)化網(wǎng)格,以保證整體有限元模型不會(huì)太大,并得到較準(zhǔn)確的模擬結(jié)果(如圖1所示)。

上述有限元模型中,與細(xì)化區(qū)域網(wǎng)格相鄰的網(wǎng)格單元有共點(diǎn)、共邊、共面3種情況(如圖2所示)。

此時(shí)只需要用到Ito等人提出的加密算法模板中的邊加密、面加密,加上對(duì)加密單元進(jìn)行全加密即可,共點(diǎn)情況不需要處理,加密模板如圖3所示,A、B、C、D、E、F、G、H是原網(wǎng)格單元的8個(gè)頂點(diǎn),字母加黑表示加密點(diǎn)。根據(jù)每個(gè)網(wǎng)格含有的黑點(diǎn)個(gè)數(shù)來判斷該網(wǎng)格應(yīng)使用哪種對(duì)應(yīng)的加密方式(見表1)。

2 程序設(shè)計(jì)

2.1 HYPERMESH二次開發(fā)介紹

HYPERMESH的前處理功能十分強(qiáng)大,提供了功能豐富的二次開發(fā)接口[7]。按開發(fā)程度可分為宏命令、Tcl/tk腳本、process manager流程3個(gè)等級(jí)。鑒于本文僅開發(fā)六面體網(wǎng)格過渡加密功能,使用特定模板即可對(duì)六面體網(wǎng)格進(jìn)行加密,只需要用到邏輯判斷和條件控制,故利用Tcl/tk腳本及HYPERMESH軟件自帶的函數(shù)來完成開發(fā),即通過HYPERMESH的API函數(shù)及Hm命令可以實(shí)現(xiàn)所需的功能。關(guān)于API函數(shù)及Hm命令的功能和用法,讀者可以在HYPERMESH的幫助文檔中找到詳細(xì)的說明[8-9]。本開發(fā)程序中主要用到的API函數(shù)或Hm命令見表2。

2.2 程序流程

首先,根據(jù)用戶需求,用戶單擊命令按鈕后,程序彈出選擇網(wǎng)格單元的面板,提示用戶選擇需要加密網(wǎng)格單元。其次,用戶選擇需要加密的網(wǎng)格單元后,程序提取加密網(wǎng)格單元及其節(jié)點(diǎn)編號(hào),檢測過渡層和加密網(wǎng)格單元中含有加密節(jié)點(diǎn)的個(gè)數(shù)N,考慮到網(wǎng)格加密模板只能對(duì)六面體網(wǎng)格進(jìn)行加密,對(duì)所檢查的網(wǎng)格網(wǎng)格類型進(jìn)行判斷,若是六面體網(wǎng)格,則根據(jù)單元所含有的加密節(jié)點(diǎn)個(gè)數(shù)N使用表1對(duì)應(yīng)的加密模板進(jìn)行加密,若不是六面體網(wǎng)格,則返回提示用戶重新選擇六面體網(wǎng)格進(jìn)行加密(如圖4所示)。

2.3 實(shí)現(xiàn)功能步驟

(1)創(chuàng)建六面體網(wǎng)格加密命令按鈕。在HYPERMESH軟件中,專門預(yù)留了用戶自定義的按鈕面板文件userpage.mac,位于軟件啟動(dòng)目錄或者安裝目錄路徑下,在該文件中添加*createbutton函數(shù)便可創(chuàng)建一個(gè)快捷按鈕,實(shí)現(xiàn)與HYPERMESH無縫結(jié)合。圖5為HexRemesh27命令按鈕。創(chuàng)建代碼如下:

*createbutton(5,”HexRemesh27”,6,1,20,YELLOW,”Remesh the elements”,”EvalTcl”,”HexRemesh27.tcl”)

該代碼目的為在第5頁面第6行第1列創(chuàng)建一個(gè)寬度為20、名稱叫HexRemesh27的按鈕,用戶點(diǎn)擊該按鈕后執(zhí)行HexRemesh27.tcl程序。

(2)為用戶提供選擇加密網(wǎng)格單元的面板。通過*createmarkpanel函數(shù)實(shí)現(xiàn)用戶點(diǎn)擊加密命令后提供選擇加密單元的面板。實(shí)現(xiàn)代碼如下:

*createmarkpanel elems 1 “Select elements:”

(3)提取加密網(wǎng)格單元中的節(jié)點(diǎn)號(hào)。HYPERMESH會(huì)把用戶選擇的網(wǎng)格單元放在名字為mark的集合1中,通過利用hm_getmark命令可提取出單元號(hào),再結(jié)合foreach函數(shù)和hm_nodelist命令可以方便地循環(huán)提取各個(gè)單元的節(jié)點(diǎn)號(hào)[10]。

(4)檢測各網(wǎng)格單元中所包含的加密節(jié)點(diǎn)數(shù)。一般情況下,要加密的網(wǎng)格單元只占總模型的一小部分,如果程序?qū)δP椭兴械木W(wǎng)格單元都逐一檢測,程序的運(yùn)行時(shí)間會(huì)很長??紤]到過渡處的網(wǎng)格最多需要加密單元外的一層,故可以只檢測需要加密的網(wǎng)格單元及其外一層的網(wǎng)格單元即可,特別是總模型很大的時(shí)候,這樣可以減少程序的運(yùn)行時(shí)間,提高程序的運(yùn)行效率。同樣,利用foreach函數(shù)和hm_nodelist命令進(jìn)行循環(huán)檢測各個(gè)網(wǎng)格單元的加密點(diǎn)數(shù)。

(5)加密六面體網(wǎng)格單元。根據(jù)六面體網(wǎng)格單元中所含的加密節(jié)點(diǎn)數(shù),使用對(duì)應(yīng)的六面體網(wǎng)格加密模板加密網(wǎng)格單元。從圖3中可看出,加密模板有以下特點(diǎn):全加密模板就是把一個(gè)六面體網(wǎng)格分為27個(gè)一樣大小的六面體網(wǎng)格單元,邊加密模板和面加密模板以這27個(gè)小六面體網(wǎng)格單元的節(jié)點(diǎn)為基礎(chǔ)節(jié)點(diǎn)連接生產(chǎn)過渡網(wǎng)格單元。這27個(gè)小六面體網(wǎng)格單元的頂點(diǎn)是以原六面體網(wǎng)格加密單元的8個(gè)節(jié)點(diǎn)為基礎(chǔ)生成的,故要先確定加密網(wǎng)格單元的8個(gè)節(jié)點(diǎn)與模板中的8個(gè)節(jié)點(diǎn)相對(duì)應(yīng),才能進(jìn)行加密,這也是程序的關(guān)鍵步驟。

通過HYPERMESH的API函數(shù)或Hm命令是可以獲取單元節(jié)點(diǎn)的坐標(biāo)的,但在不知道加密單元空間位置和六面體單元形狀不理想的時(shí)候,要確定待加密六面體網(wǎng)格的8個(gè)節(jié)點(diǎn)與加密模板六面體網(wǎng)格的8個(gè)節(jié)點(diǎn)對(duì)應(yīng)起來則是困難的。

首先,我們可以通過*findfaces命令生成六面體單元的6個(gè)面單元來輔助判斷,以邊加密模板為例說明。?譹?訛確定節(jié)點(diǎn)AB。AB兩點(diǎn)是容易確定的,觀察模板可以發(fā)現(xiàn),A和B位置是可以調(diào)換的,只需找出加密單元的加密點(diǎn),一點(diǎn)標(biāo)記為A,另一點(diǎn)標(biāo)記為B即可。?譺?訛確定節(jié)點(diǎn)CDEF。確定AB節(jié)點(diǎn)后,EF和DC的位置也是可以調(diào)換的。找出含有AB 2個(gè)節(jié)點(diǎn)的2個(gè)面單元(命名為1、2號(hào)面單元),先對(duì)1號(hào)面單元分析,AB節(jié)點(diǎn)知道了,另外2點(diǎn)以MN字母表示,通過hm_getangle命令獲取∠BAM和∠BAN的角度來判斷,大者是∠BAD,小者是∠BAC,CD節(jié)點(diǎn)即可找到。對(duì)于另一個(gè)含AB的面單元,同樣判斷即可找到EF節(jié)點(diǎn)。?譻?訛確定節(jié)點(diǎn)GH。在包含BCF節(jié)點(diǎn)的面單元的第4個(gè)節(jié)點(diǎn)就是G,剩下一個(gè)就是H點(diǎn)。

至此,待加密六面體網(wǎng)格單元的8個(gè)節(jié)點(diǎn)與加密模板六面體網(wǎng)格的8個(gè)節(jié)點(diǎn)一一對(duì)應(yīng),通過*createnodesbetweennodes命令在A、B、C、D、E、F、G、H 8個(gè)節(jié)點(diǎn)之間創(chuàng)建所需節(jié)點(diǎn),再通過*createelement命令連接相應(yīng)節(jié)點(diǎn)即可創(chuàng)建出邊加密的過渡單元。

其次,再來看面加密模板確認(rèn)的步驟:生成待加密六面體網(wǎng)格單元的6個(gè)面單元;找出含有4個(gè)加密點(diǎn)的面單元;在確認(rèn)有4個(gè)加密點(diǎn)的面單元中找出邊長最短的邊,作為AB;接下來,按照邊加密的步驟即可找出C、D、E、F、G、H點(diǎn);生成面模板所需節(jié)點(diǎn)和單元。

最后,看全加密模板的確認(rèn)步驟:生成待加密六面體單元的6個(gè)面單元;選出其中一個(gè)面單元,再以面加密模板步驟分析即可找出待加密六面體的8個(gè)節(jié)點(diǎn)A、B、C、D、E、F、G、H。生成全加密模板所需節(jié)點(diǎn)和單元。

通過上述步驟,可以確定待加密六面體網(wǎng)格的8個(gè)節(jié)點(diǎn)與3種加密模板的8個(gè)節(jié)點(diǎn)一一對(duì)應(yīng),并生成對(duì)應(yīng)的加密網(wǎng)格單元,即細(xì)化加密后的六面體網(wǎng)格單元。

3 應(yīng)用實(shí)例

3.1 圓球壓平板網(wǎng)格模型細(xì)化

圓球壓平板屬于點(diǎn)面接觸的有限元分析,接觸面積相對(duì)于整體模型的尺寸來說是很小的一部分,為了獲得較準(zhǔn)確的接觸應(yīng)力及變形量,需要在接觸區(qū)域劃分尺寸較小的六面體網(wǎng)格單元,同時(shí)為減少計(jì)算資源,在接觸區(qū)域外劃分尺寸較大的六面體網(wǎng)格單元(如圖7所示)。

3.2 圓柱體外層網(wǎng)格細(xì)化

圓柱體是有限元分析中典型的零件特征,與其他零件相互作用的區(qū)域是其外表面,在劃分有限元網(wǎng)格的時(shí)候總希望其表層的網(wǎng)格細(xì),圓柱內(nèi)部網(wǎng)格大一些,以減小網(wǎng)格模型的數(shù)量,但由于圓柱的形狀是內(nèi)小外大,所以普通處理很難劃出理想的網(wǎng)格。若用本文開發(fā)的程序,則可以很方便地實(shí)現(xiàn):首先對(duì)圓柱體劃分等大的六面體網(wǎng)格單元,然后選擇圓柱體外圈的一層六面體網(wǎng)格進(jìn)行加密,加密前后的四分之一有限元模型(如圖8所示)。

3.3 回轉(zhuǎn)支承網(wǎng)格劃分

有限元法是研究回轉(zhuǎn)支承的一種重要方法,足夠小的網(wǎng)格單元尺寸是獲得足夠精確結(jié)果的保證。圖9所示是010.20.200系列回轉(zhuǎn)支承二十四分之一普通六面體網(wǎng)格劃分模型。通過2次使用本文開發(fā)的六面體網(wǎng)格加密插件進(jìn)行加密劃分,使整體模型的網(wǎng)格數(shù)較少,同時(shí)在接觸區(qū)域使用局部加密,保證了有限元模型的準(zhǔn)確性。

4 結(jié)論

本文利用Ito等人提出的六面體網(wǎng)格過渡加密模板,利用Tcl/tk語言在HYPERMESH環(huán)境中開發(fā)了六面體網(wǎng)格單元自動(dòng)過渡加密的插件,實(shí)現(xiàn)了自動(dòng)加密的功能。加密插件充分利用了HYPERMESH軟件劃分六面體網(wǎng)格的優(yōu)勢,同時(shí)加密插件也增強(qiáng)了HYPERMESH軟件劃分六面體網(wǎng)格的能力。該插件可以大幅減少有限元模型的單元和節(jié)點(diǎn),特別是在需要局部細(xì)化加密的六面體網(wǎng)格有限元模型中,節(jié)約了大量計(jì)算資源,為有限元分析得到準(zhǔn)確的結(jié)果提供保障。本文開發(fā)的六面體網(wǎng)格加密方法,難度系數(shù)低,其他類型的六面體網(wǎng)格加密模板也可以通過這種方法實(shí)現(xiàn),如Schneiders的27分法模板和8分法模板[6]、黃麗麗的8分法模板[6],同時(shí)也可以在其他六面體網(wǎng)格劃分軟件如ICEM中進(jìn)行開發(fā),以滿足不同的加密需求。

參 考 文 獻(xiàn)

[1]BenzleyS E,Perry E,Merkley K,et al.Acomparison of all hexahedral and all tetrahedral finite element meshes for elasticandelasto plasticanalysis[C].Proceedings of the 4th International Meshing Roundtable,Albuquerque,1995:179-191.

[2]關(guān)振群,宋超,顧元憲,等.有限元網(wǎng)格生成方法研究的新進(jìn)展[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2003,15(1):1-14.

[3]賀李平,龍凱,肖介平.ANSYS 13.0與HYPERMESH 11.0聯(lián)合仿真有限元分析[M].北京:機(jī)械工業(yè)出版社,2012.

[4]Zhang Y J,Bajaj C.Adaptive and quality quadrilateral hexahedral meshing from volumetric data[J].Computer Methodsin AppliedMechanicsandEngineer-ing,2006,195(9/12):942-960.

[5]Ito Y,Shih A M,Soni B K.Octree basedreasonable quality hexahedral mesh generation using a new set of refinement templates[J].International Journalfor Numerical Methods in Engineering,2008,77(13):1809-1833.

[6]黃麗麗,趙國群,王忠雷.柵格法三維六面體網(wǎng)格局部加密算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2010(6).

[7]王鈺棟,金磊,洪清泉.HYPERMESH&HyperView應(yīng)用技巧與高級(jí)實(shí)例[M].北京:機(jī)械工業(yè)出版社,2012.

[8]Altair Engineering,Inc.HYPERMESH 10.0 Users Guide[Z].2009.

[9]Altair Engineering,Inc.HYPERMESH 10.0 Reference Guide[Z].2009.

[10]Brent B Welch.Tcl/Tk組合教程[M].北京:電子工業(yè)出版社,2011.

[責(zé)任編輯:鐘聲賢]

宁河县| 达拉特旗| 大新县| 广州市| 三河市| 德钦县| 庆元县| 屏东县| 巨野县| 雷山县| 香格里拉县| 巴南区| 和静县| 静乐县| 闽侯县| 石渠县| 龙井市| 寻乌县| 绍兴市| 东台市| 靖州| 北川| 西华县| 江源县| 杂多县| 辉县市| 淳安县| 元阳县| 县级市| 枣强县| 河源市| 高碑店市| 民乐县| 郸城县| 仲巴县| 浑源县| 淮阳县| 象州县| 巴塘县| 耿马| 碌曲县|