張江溯,李旭東
(蘭州理工大學(xué)省部共建有色金屬先進(jìn)加工與再利用國(guó)家重點(diǎn)實(shí)驗(yàn)室,甘肅 蘭州 730050)
如今隨著工程問題復(fù)雜程度的日益增加,人們對(duì)材料的性能有了更高的要求,而材料的性能很大程度上由材料的微觀組織結(jié)構(gòu)所決定[1]。由于計(jì)算機(jī)科學(xué)技術(shù)迅速發(fā)展使得材料微結(jié)構(gòu)計(jì)算已成為人們的研究熱點(diǎn),其采取的主要手段就是數(shù)值材料技術(shù)、數(shù)字材料技術(shù)以及虛擬現(xiàn)實(shí)技術(shù)。它是從材料微觀結(jié)構(gòu)的幾何狀態(tài)、取向狀態(tài)和物性狀態(tài)3個(gè)角度來研究科學(xué)問題,揭示微觀組織結(jié)構(gòu)內(nèi)在規(guī)律[2]。
對(duì)于金屬材料變形的研究來說,構(gòu)造多晶體的微觀結(jié)構(gòu)尤為重要[3],它的建立是有限元模擬仿真分析的前提。它不同于宏觀建模,在建立微觀模型的過程中需要考慮更多的特征因素,比如晶粒大小、幾何結(jié)構(gòu)、分布特征以及晶體取向等[4-5],建立準(zhǔn)確的多晶體有限元模型對(duì)于研究多晶體的內(nèi)部變形以及微觀組織演變行為有著重要意義。
ABAQUS作為國(guó)際通用的有限元仿真軟件之一,它自身具備的二次開發(fā)接口有著強(qiáng)大的建模優(yōu)勢(shì),可以通過編寫接口腳本語言實(shí)現(xiàn)各種復(fù)雜幾何結(jié)構(gòu)的可視化[6]。同時(shí)也可以根據(jù)用戶自身的需求進(jìn)行前后處理的開發(fā)。
Voronoi圖最早是由俄羅斯數(shù)學(xué)家Georgy Fedoseevice Voronoi提出的,并在1908年對(duì)n維Voronoi圖作了相關(guān)的定義[7]。伴隨著科學(xué)技術(shù)的不斷發(fā)展,大規(guī)模的數(shù)學(xué)計(jì)算成為可能,因此Voronoi圖被廣泛地用于地理學(xué)、氣象學(xué)、結(jié)晶學(xué)、圖像處理、微結(jié)構(gòu)模擬和城市規(guī)劃等一些復(fù)雜的問題的處理中[8]。
二維Voronoi定義如下:令S屬于平面內(nèi)包含有n個(gè)任意分布的點(diǎn)集合,即S={p1,p2,…,pn},設(shè)
i,j=1,2,3,…,n
(1)
其中:d(p,pi)表示p和pi兩者之間的歐幾里得距離,像這樣的V(pi)就被稱為點(diǎn)pi的Voronoi結(jié)構(gòu)。
由定義可知,Voronoi圖實(shí)質(zhì)上就是對(duì)某一特定空間進(jìn)行剖分,并由空間剖分后的多邊形構(gòu)成,在每一個(gè)多邊形的區(qū)域內(nèi)都存在與之對(duì)應(yīng)的目標(biāo)點(diǎn),即該區(qū)域的發(fā)生元,在此多邊形所在的區(qū)域內(nèi)每一點(diǎn)到相對(duì)應(yīng)目標(biāo)點(diǎn)的距離要比到其他點(diǎn)的距離都近。三維Voronoi模型和二維模型原理相同,只是三維Voronoi模型的種子點(diǎn)布置的空間為三維空間。
ABAQUS作為國(guó)際公認(rèn)的大型通用非線性有限元軟件之一,隨著ABAQUS應(yīng)用領(lǐng)域及用戶的不斷拓展,軟件自身提供的功能往往不能滿足一些特殊的使用要求。為了進(jìn)步滿足不同用戶在軟件使用過程中不斷產(chǎn)生的新需求,ABAQUS軟件為用戶提供了開放的二次開發(fā)接口[9],其中包括基于Python語言的腳本接口,主要是能夠方便用戶根據(jù)自身的需求開發(fā)前后處理工具或復(fù)雜模型的建立等工作。
(1) 基于Voronoi圖的多晶體幾何模型構(gòu)造 多晶體材料微觀結(jié)構(gòu)的復(fù)雜性和多樣性使得我們對(duì)多晶體微觀組織進(jìn)行研究變得更加困難,而且要再現(xiàn)真實(shí)的多晶體材料的微結(jié)構(gòu)必須要體現(xiàn)實(shí)際多晶體微觀模型的分布特點(diǎn)、幾何構(gòu)型、晶粒尺寸以及晶粒的形狀。采用Voronoi圖的多晶建??梢暂^好地描述晶粒的內(nèi)部變形情況。此外Voronoi圖還可以利用種子分布的隨機(jī)性來控制多晶體的形態(tài),同時(shí)還可人為控制晶粒晶體學(xué)取向的分布,基于上述 Voronoi圖的建模優(yōu)點(diǎn),采用Voronoi原理借助Python語言來建立多晶體幾何模型。它的主要操作過程如下:
①首先在指定空間范圍內(nèi)生成一系列均勻分布的種子點(diǎn),然后對(duì)其進(jìn)行隨機(jī)擾動(dòng),擾動(dòng)程度由參數(shù)e來控制;②將生成的種子點(diǎn)存入列表xyz[]中,然后利用函數(shù)array()將該列表轉(zhuǎn)換為數(shù)組,并將數(shù)組帶入函數(shù)Voronoi()中;③利用屬性ridge_vertices輸出一系列邊界面上頂點(diǎn)的序號(hào),通過For in循環(huán)遍歷所有頂點(diǎn)并去除無限遠(yuǎn)的頂點(diǎn),只保留有限范圍內(nèi)的頂點(diǎn),然后在該范圍內(nèi),把頂點(diǎn)的序號(hào)轉(zhuǎn)換為頂點(diǎn)的實(shí)際坐標(biāo)值;④由于多邊形邊線要首尾相連,所以在尾部再附加上第一個(gè)頂點(diǎn),將生成的Voronoi數(shù)據(jù)信息存入文檔中備用;⑤在ABAQUS環(huán)境下通過Python腳本接口讀取上面所得到的數(shù)據(jù),并存放于多級(jí)列表中,以供后續(xù)程序調(diào)用;⑥利用WirePolyLine命令得到多面體各個(gè)面的邊,然后使用CoverEdges命令將已生成的邊組合成面;(7)利用AddCells命令從殼體生成實(shí)體,將各個(gè)多面體加入裝配體實(shí)例,此時(shí)得到一個(gè)完整的Voronoi多晶幾何模型,如圖1所示。
圖1 ABAQUS中生成Voronoi多晶幾何模型
(2) 晶界模型 當(dāng)進(jìn)行多晶體材料微結(jié)構(gòu)計(jì)算的時(shí)候,一般情況下忽略晶界,視其厚度為0,只有當(dāng)晶粒尺寸非常小時(shí),才會(huì)考慮晶界的厚度,因?yàn)榫Ы鐣?huì)影響到材料的整體性能,所以也要對(duì)晶界模型進(jìn)行合理設(shè)計(jì)。研究根據(jù)已經(jīng)生成的多晶體微結(jié)構(gòu)幾何模型,通過編寫Python程序,在原來體積大小的多晶體基礎(chǔ)上,對(duì)每個(gè)晶粒各個(gè)面偏移一定距離,讓晶粒之間產(chǎn)生一定距離的縫隙,從而實(shí)現(xiàn)了晶界模型的可視化。在完成偏移操作后,將所有晶粒裝配起來,然后與預(yù)先建立好的立方體進(jìn)行布爾差操作,最終得到晶界的幾何模型,整個(gè)過程如圖2所示。
圖2 晶界的模擬過程
將偏移后得到的微結(jié)構(gòu)幾何模型和構(gòu)造出的晶界模型進(jìn)行裝配,則完成對(duì)具有晶界微結(jié)構(gòu)的仿真。利用上述方法構(gòu)造得到的由800個(gè)晶粒所組成的多晶體微觀組織結(jié)構(gòu)如圖3所示,這為以后研究晶界對(duì)材料性能的影響以及晶界效應(yīng)等提供了有利的建?;A(chǔ)。
圖3 含晶界的多晶體微結(jié)構(gòu)模型
ABAQUS軟件的圖形用戶界面GUI基于ABAQUS GUI Toolkit,交互性好,易于用戶理解。ABAQUS人機(jī)交互功能是通過ABAQUS/CAE中2個(gè)各自獨(dú)立的執(zhí)行程序Kernel與GUI之間互相通信完成的交互[10]。
ABAQUS有限元分析通過圖形用戶界面GUI向用戶提示操作步驟,用戶使用GUI創(chuàng)建模型并顯示處理結(jié)果。用戶進(jìn)行任何操作,ABAQUS/CAE都會(huì)在內(nèi)部傳遞消息,并將結(jié)果反饋在用戶所建立的模型上。ABAQUS/CAE中Kernel和GUI之間的交互工作原理如圖4所示[11]。
再進(jìn)行GUI二次開發(fā)時(shí),用戶在GUI用戶界面輸入信息,內(nèi)核程序采集用戶輸入并進(jìn)行相應(yīng)操作,并反饋結(jié)果。因此在開發(fā)時(shí),GUI界面設(shè)置文件、內(nèi)核程序文件、GUI與內(nèi)核程序的通信文件都必不可少。
圖4 ABAQUS內(nèi)部GUI與Kernel的命令交互流程
基于上述開發(fā)GUI插件的原理,通過定制合理的參數(shù)對(duì)話框,編寫內(nèi)核Python程序開發(fā)出材料微結(jié)構(gòu)前處理建模多功能插件,大大提高了前處理建模效率。
為了能夠更好地表征多晶體內(nèi)部晶向的排布方式,需要為每個(gè)晶粒賦予晶體學(xué)取向,而多晶體材料細(xì)觀模型的結(jié)構(gòu)比較復(fù)雜,手動(dòng)對(duì)其進(jìn)行操作時(shí)需要反復(fù)切換模塊、點(diǎn)擊按鈕等,過程繁瑣,耗時(shí)費(fèi)力。為了能夠有效提高前處理建模效率,基于ABAQUS/CAE內(nèi)嵌的GUI插件開發(fā)輔助工具RSG對(duì)話框構(gòu)造器,定制合理的參數(shù)對(duì)話框,編寫內(nèi)核Python程序開發(fā)出了材料微結(jié)構(gòu)前處理建模插件Polycrystal Toolkit。該插件主要功能如下:
(1) 實(shí)現(xiàn)自動(dòng)賦予不同類型的晶體學(xué)取向,包括賦予任意取向、相同取向以及任意和指定取向。
(2) 支持晶體學(xué)取向的自動(dòng)替換,替換方式有3種:①替換所有晶粒的晶體學(xué)取向;②替換指定晶粒的晶體學(xué)取向;③替換除了指定晶粒外剩余晶粒的晶體學(xué)取向。
(3) 可以構(gòu)造指定晶界厚度的微觀組織結(jié)構(gòu)。
(4) 實(shí)現(xiàn)批量為每個(gè)晶粒賦予材料屬性。
(5) 支持晶粒的縮放。
(6) 批量為每個(gè)晶粒創(chuàng)建集合。
該插件程序開發(fā)流程如圖5所示。
插件Polycrystal Toolkit是由3個(gè)代碼文件以及2個(gè).png格式的圖片文件組成,文件包括:注冊(cè)文件(Polycrystal_plugin.py)、圖形界面文件(PolycrystalDB.py)、內(nèi)核執(zhí)行文件(Polycrystal.py)、多晶體晶界模型示意圖(Grain boundary model.png)和賦予晶體學(xué)取向后多晶體的示意圖(Orientation model.png)。
將以上5個(gè)文件存入文件夾并復(fù)制到ABAQUS工作目錄或者ABAQUS安裝目錄下的abaqus_plugins文件夾內(nèi),重新啟動(dòng)ABAQUS/
CAE主界面,就可以在“Plug-ins”下的子菜單中找到名為Polycrystal Toolkit的插件,點(diǎn)擊該菜單之后,則會(huì)進(jìn)入通過編寫內(nèi)核腳本自定義圖形界面,如圖6所示。
圖5 多晶體微結(jié)構(gòu)前處理建模插件程序開發(fā)流程
圖6 多晶體微結(jié)構(gòu)前處理建模插件
為了驗(yàn)證上述微結(jié)構(gòu)建模方法的有效性和準(zhǔn)確性,基于有限元仿真軟件ABAQUS分別對(duì)2種任意取向下的圓柱多晶體模型一端施加扭矩,進(jìn)行模擬,對(duì)比研究了多晶體應(yīng)力分布情況及內(nèi)部變形規(guī)律。首先通過設(shè)定參數(shù)并在ABAQUS中運(yùn)行插件構(gòu)造出晶??倲?shù)為400的多晶體圓柱模型A,并為其賦予了任意方向的晶體學(xué)取向。同理,借助插件中替換取向的功能來替換模型A的晶體學(xué)取向得到模型B,使用文獻(xiàn)[5]中晶體材料塑性本構(gòu)關(guān)系,且網(wǎng)格單元類型均為C3D4。
扭轉(zhuǎn)變形后的多晶體模型A和多晶體模型B應(yīng)力分布云圖如圖7所示。觀察圖7可以看出,多晶圓柱表面出現(xiàn)明顯的凹凸現(xiàn)象,應(yīng)力分布呈現(xiàn)出極度不均勻現(xiàn)象。這一現(xiàn)象主要是由當(dāng)?shù)匚⒂^組織結(jié)構(gòu)的幾何結(jié)構(gòu)以及初始取向的隨機(jī)分布造成的,而且最大應(yīng)力都處于晶粒邊界的位置,這是因?yàn)槎嗑w在受載變形的過程中,使得晶粒之間發(fā)生相互作用,所以在晶界處容易產(chǎn)生應(yīng)力集中。
圖7 扭轉(zhuǎn)變形后的模型應(yīng)力分布云圖
圖8為A、B 2個(gè)模型扭轉(zhuǎn)變形后的縱截面圖,顯而易見,多晶體的變形過程非常復(fù)雜。另外,圖8(a)和圖8(b)中相同晶粒的變形量是明顯不一樣的,而且同一晶粒越靠近多晶體表面其變形差異越明顯。綜上所述,變形中的多晶體微觀組織演化的復(fù)雜程度不但取決于晶粒的初始取向,還與晶粒之間的相互作用有關(guān)。結(jié)合上述現(xiàn)象與文獻(xiàn)[5]的模擬結(jié)果,對(duì)比可知其變形規(guī)律基本一致,充分驗(yàn)證了該種微結(jié)構(gòu)設(shè)計(jì)方法的有效性。
圖8 多晶體內(nèi)縱截面變形圖
借助ABAQUS的二次開發(fā)接口,編寫Python語言構(gòu)造出了基于Voronoi圖的多晶體微結(jié)構(gòu)模型以及前處理平臺(tái)的設(shè)計(jì),并采用該方法建立有限元模型結(jié)合仿真軟件ABAQUS分別對(duì)2種任意取向下的圓柱多晶體進(jìn)行變形模擬,得到如下結(jié)論:
(1) 通過編寫Python語言生成的Voronoi多晶模型可以很好地描述實(shí)際多晶體變形過程中內(nèi)部變形的不均勻性,驗(yàn)證了模型的有效性。
(2) 利用Python語言編寫內(nèi)核腳本程序,開發(fā)出的前處理插件Polycrystal Toolkit能夠有效提高材料微結(jié)構(gòu)前處理建模效率,為以后的織構(gòu)演化行為研究提供了有利的建模基礎(chǔ)。