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

?

泛型設(shè)計(jì)的MC算法在計(jì)算材料學(xué)中的研究與應(yīng)用

2011-04-25 10:17:52王姝力羅迅
關(guān)鍵詞:蒙特卡羅柵格晶粒

王姝力,羅迅

(湖南師范大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,湖南長沙 410081)

隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)模擬技術(shù)在材料學(xué)領(lǐng)域的應(yīng)用越來越廣泛,眾多計(jì)算方法被用來估計(jì)各種材料學(xué)過程[1]。通過和應(yīng)用蒙特卡羅方法的其他領(lǐng)域的對比,如物理領(lǐng)域[2]、化學(xué)領(lǐng)域[3]等的對比,蒙特卡羅方法在材料學(xué)領(lǐng)域的應(yīng)用與他們有相似點(diǎn)也有相異點(diǎn)。相似點(diǎn)主要為都是運(yùn)用蒙特卡羅的隨機(jī)過程模擬實(shí)例,而不同點(diǎn)主要在于材料學(xué)領(lǐng)域中不可控制的物理因素很多。本文的主要內(nèi)容則集中在Monte Carlo方法對模晶生長過程的研究與模擬。所謂模晶生長(Template Grain Growth,縮寫為TGG),是材料學(xué)中的一種制備工藝的名稱。在原始粉末材料分散放置一些已結(jié)晶的模板,對整個(gè)樣品加熱加壓進(jìn)行燒結(jié),在這個(gè)過程中樣品就會進(jìn)行重結(jié)晶,形成新的結(jié)晶體。從直觀上看,就是已結(jié)晶的模板“長大了”。在材料學(xué)理論中,這一過程的機(jī)理還缺乏完善的描述機(jī)制,因此計(jì)算機(jī)模擬是研究該過程的一個(gè)重要手段[4]。其中,Monte Carlo方法是比較常用的一種模擬方法。因此,用于模擬TGG的Monte Carlo算法的改進(jìn)與變種也很多,如果為每一種TGG過程實(shí)現(xiàn)所有的Monte Carlo算法變種,勢必造成大量的重復(fù)勞動(dòng)。本文將泛型化程序設(shè)計(jì)思想引入到Monte Carlo算法構(gòu)造中。泛型化程序設(shè)計(jì)思想允許研究人員在實(shí)現(xiàn)新的算法變種時(shí),可以不必再重新構(gòu)造算法的所有細(xì)節(jié),而只需更改相關(guān)的模塊。這不但有助于提高工作效率,還有助于突出研究的重點(diǎn)內(nèi)容,幫助研究者將主要精力放在研究重點(diǎn)上。

1 基礎(chǔ)MC方法的應(yīng)用與實(shí)現(xiàn)

1.1 MC算法簡介

Monte Carlo方法本質(zhì)上是一種隨機(jī)抽樣的統(tǒng)計(jì)實(shí)驗(yàn)方法。文獻(xiàn)[5]中指出用于晶粒生長的MC方法的基本構(gòu)造原理,主要有4個(gè)關(guān)鍵點(diǎn):柵格網(wǎng)絡(luò)、抽樣方法、改變策略和鄰近點(diǎn)的選擇。算法的基本思想是:用數(shù)字來代替每個(gè)晶粒的取向,先隨機(jī)賦值,然后再隨機(jī)選擇一個(gè)晶粒,改變它的取向值,如果與周圍的晶粒的數(shù)值一樣,則合并成一個(gè)模板,然后繼續(xù)隨機(jī)選擇,直到所有的晶粒都選擇了一遍。這稱為一個(gè)Monte Carlo步。當(dāng)進(jìn)行到一定數(shù)量的Monte Carlo步時(shí)或者達(dá)到了某個(gè)終止條件時(shí),就可以停止模擬了。上述過程就是MC算法模擬TGG的整個(gè)流程。

1.2 MC算法的改進(jìn)

上述過程是最基本的MC算法流程,除此之外,更深入細(xì)致的研究還要考慮到其他各種影響因素。例如文獻(xiàn)[6]中提到了MC模擬步數(shù)與現(xiàn)實(shí)時(shí)間的關(guān)系,文獻(xiàn)[7]提到了無模板的晶體生長模擬。因此,對MC的基本算法進(jìn)行了如下改進(jìn):(1)使用六邊形柵格代替正方形柵格,增加了晶體之間的接觸,更靠近實(shí)際情況;(2)對晶粒取向的改變機(jī)制作出調(diào)整,既可以隨機(jī)選擇,也可以進(jìn)行強(qiáng)制性選擇,使得每一個(gè)晶粒都有一次機(jī)會改變其取向;(3)對于將要改變的取向值的選擇,既可以在所有的取向值中進(jìn)行隨機(jī)選擇(除了原值之外),也可以限定于只能選擇周圍晶粒的取向值;(4)對于能量計(jì)算,可以只計(jì)算與最近晶粒的能量,也可以計(jì)算與最近晶粒與第二鄰近晶粒的能量之和;(5)對于溫度的設(shè)定,溫度的不同對晶粒的取向變化可通過調(diào)整隨機(jī)參數(shù)來體現(xiàn)。

基礎(chǔ)MC算法的實(shí)現(xiàn)如圖1、圖2所示。圖1顯示的是模擬前的晶粒、模板分布情況;圖2顯示的是模擬結(jié)束之后的分布情況。用不同的灰度值來表示不同的取向值,可以很清楚地看到,模擬后晶粒進(jìn)行了合并與生長,原來較小的數(shù)量較多晶粒最后結(jié)合成了數(shù)量較少而體積更大的晶粒。

圖1 模擬前晶粒分布示意圖Fig.1 Schematic diagram of simulation before the grain distribution

圖2 模擬結(jié)束后晶粒分布示意圖Fig.2 Schematic diagram of simulation after the grain distribution

圖3顯示了為實(shí)現(xiàn)該算法而聲明的類的部分源代碼。

利用構(gòu)造函數(shù)對類進(jìn)行初始化(圖中并未顯示構(gòu)造函數(shù)的聲明),按照一定的規(guī)則調(diào)用MCS(void)函數(shù),執(zhí)行若干個(gè)蒙特卡洛步之后,模擬結(jié)束,此時(shí)可以計(jì)算晶粒的平均面積與平均半徑并進(jìn)行顯示。而在每一個(gè)蒙特卡洛步執(zhí)行時(shí),都需要調(diào)用能量計(jì)算函數(shù)與鄰近點(diǎn)選擇策略。

2 泛型化設(shè)計(jì)的實(shí)現(xiàn)、分析與討論

2.1 泛型化設(shè)計(jì)的實(shí)現(xiàn)

所謂泛型(Genericity),是指具有在多種數(shù)據(jù)類型上皆可操作的含意,與模板有些相似。在1.1和1.2的基礎(chǔ)上,對MC算法進(jìn)行泛型化設(shè)計(jì)改寫。編寫一個(gè)泛型架構(gòu)和模塊化函數(shù),將已實(shí)現(xiàn)的各種MC方法的變種(1.2中提到的)整合到一個(gè)平臺下。用MEC做一個(gè)簡易的控制界面,如圖4。泛型編程是將數(shù)據(jù)結(jié)構(gòu)參數(shù)化。完成了一個(gè)MC模型程序設(shè)計(jì)的泛型架構(gòu)的API接口,將各個(gè)功能模塊化,例如能量計(jì)算、鄰近點(diǎn)選擇、抽樣方法以及維數(shù),這些算法與數(shù)據(jù)結(jié)構(gòu)都加以模塊化和封裝化。在構(gòu)造新的MC方法變種時(shí),可以根據(jù)需要進(jìn)行“組裝”;也可以按照一定原型設(shè)計(jì)新的模塊,與原有結(jié)構(gòu)搭配。

圖3 MC算法實(shí)現(xiàn)的部分類聲Fig.3 Part of the class declaration of MC algorithm

具體的類聲明如圖5所示,其中的關(guān)鍵在于描述晶粒外形的數(shù)據(jù)泛型T與描述整個(gè)MC方法實(shí)施策略的泛型Type。在初始化時(shí),根據(jù)需要選擇合適的結(jié)構(gòu)體 Type即可決定整個(gè)MC方法的具體實(shí)現(xiàn)策略,例如柵格的選擇策略、鄰近點(diǎn)的選擇策略等等;而選擇好T即可決定該MC方法是采用正方形還是六邊形柵格,甚至是其他形狀的柵格,這影響了能量計(jì)算的具體實(shí)現(xiàn),以及模擬結(jié)束后面積與平均半徑的計(jì)算方法。

圖4 可視化的操作平臺Fig.4 A control platform which is visual

圖5 泛型化MC方法的類聲明[7]Fig.5 Generic class declaration of the MC method

2.2 算法的性能分析

泛型程序設(shè)計(jì)可以編寫完全一般化的程序,實(shí)現(xiàn)算法的可重復(fù)使用,提高了代碼的書寫速度,可節(jié)約大量的人力物力。當(dāng)然,在運(yùn)行某一具體策略的MC算法程序時(shí),其效率與普通的非泛型設(shè)計(jì)的程序還是一樣的,在算法復(fù)雜度上并不會有質(zhì)的提高,甚至由于代碼實(shí)現(xiàn)的復(fù)雜性,還會有所降低(當(dāng)然,這種降低也不會是本質(zhì)上的)。

表1顯示了利用泛型程序設(shè)計(jì)思想實(shí)現(xiàn)的MC算法對TGG過程的模擬,由于采用了泛型化設(shè)計(jì),預(yù)留了函數(shù)接口與類模板,因此可以很方便地實(shí)現(xiàn)各種模擬策略。從表1可以看到,泛型化MC算法運(yùn)行良好,可以很方便地實(shí)現(xiàn)各種模擬策略的組合。另一方面,通過對比非泛型MC算法也可以看出,當(dāng)外部條件保持一致時(shí),兩者在運(yùn)行 時(shí)間上并無本質(zhì)的區(qū)別。

表1 泛型MC算法和非泛型MC算法在時(shí)間上的對比[8]Table1 The comparison of generic MC algorithm and non generic MC algorithm in time

3 結(jié)論與討論

計(jì)算材料學(xué)中對TGG過程的模擬,由于理論上的多樣性與實(shí)際實(shí)驗(yàn)條件的復(fù)雜性,使得 MC模擬方法生出了許多變種。這實(shí)際上給研究人員研究與實(shí)現(xiàn)計(jì)算機(jī)模擬造成了一定的困難。本文在實(shí)現(xiàn)MC算法對TGG過程進(jìn)行模擬的基礎(chǔ)上,將泛型化設(shè)計(jì)思想應(yīng)用于算法設(shè)計(jì)與程序構(gòu)造。不但將算法的各個(gè)功能模塊化,而且還為各個(gè)模塊函數(shù)構(gòu)造了類模板與泛型參數(shù)。實(shí)驗(yàn)表明,該泛型化MC算法運(yùn)行良好,可以很方便地實(shí)現(xiàn)各種模擬策略,極大地節(jié)約了代碼構(gòu)造的時(shí)間、提高了效率。當(dāng)然,另一方面也需要說明,泛型化程序設(shè)計(jì)節(jié)約的是代碼構(gòu)建的時(shí)間,而不是程序運(yùn)行的時(shí)間,與非泛型化程序相比,在條件一致的情況下兩者在算法復(fù)雜度上并沒有質(zhì)的區(qū)別。

目前國內(nèi)研究蒙特卡羅算法的學(xué)者很多,但是對于泛型編程并且應(yīng)用到材料學(xué)中的研究很少。泛型蒙特卡羅算法[9]在材料學(xué)上的應(yīng)用是很有用的,尤其是在此基礎(chǔ)上進(jìn)行可視化[10]或者 3D化[11],就可以在進(jìn)行實(shí)際的燒結(jié)過程中對應(yīng)地實(shí)現(xiàn)計(jì)算機(jī)上的模擬,可以仔細(xì)地分析燒結(jié)過程中的每一步。

但是,由于燒結(jié)過程本身受到很多物理影響,比如:溫度、濕度。這個(gè)在計(jì)算機(jī)的模擬中不好體現(xiàn),所以我們的模擬只能近似模擬,而不能完全準(zhǔn)確的模擬。

[1]張朝暉.計(jì)算機(jī)在材料科學(xué)與工程中的應(yīng)用[M].長沙:中南大學(xué)出版社,2008:1-12.

[2]Binder,K,Monte Carlo methods in statistical phy sics[M].Berlin:Springer,1979:1-3.

[3]楊玉良,張紅東.高分子科學(xué)中的Monte Carlo方法[M].上海:復(fù)旦大學(xué)出版社,1993:9.

[4]刑建東.晶體定向生長[M].西安:西安交通大學(xué)出版社,2008:31-35.

[5]Y.T.Liu,X.J.Guan,X.M.Shen,etc.On The Monte Carlo Simulation of Normal Grain G rowth[J].ACTA M ETA LLURGICA SINICA(English Letters),2008,21(4):282-288.

[6]S.M.Hafez Haghighat,A.Karimi Taheri,An analy tical and experimental investigation on the normal g rain growth in metals using the M onte Carlo method[J].Materials and Desig n,2007,28:2533-2539.

[7]Corbett C.Battaile.T he Kinetic M onte Carlo method:Foundation,implementation,and application[J].Comput.Methods Appl.Mech.Engrg,2008,197:3386-3398.

[8]張海.基于蒙特卡羅方法的晶粒生長模擬系統(tǒng)研究[D].中南大學(xué),碩士學(xué)位論文,2007.

[9]O.M.Ivasishin,S.V.Shevchenko,N.L.Vasihev,ect.A 3-D M onte-Carlo(Potts)Model for Recrystallization and Grain Growth in Polycrystalline Materials[J].Materials Science and Engineering A,2006,433:216-232.

[10]O.M.Ivasishin,S.V.Shevchenko,S.L.Semiatin.Implementation of exact grain-boundary geometry into a 3-D Monte-Carlo(Potts)model for microstructure evolution[J].Acta Materialia,2009,57:2834-2844.

[11]A 3D Monte Carlo study of the effect of grain boundary anisotropy and particles on the size distribution of g rains after recrystallisation and grain g rowth[J].Computational Materials Science,2010,doi:10.1016/j.commatsci.2010(1):7.

猜你喜歡
蒙特卡羅柵格晶粒
基于鄰域柵格篩選的點(diǎn)云邊緣點(diǎn)提取方法*
甘草次酸球晶粒徑與體外溶出行為的關(guān)系
中成藥(2019年12期)2020-01-04 02:02:26
利用蒙特卡羅方法求解二重積分
超粗晶粒硬質(zhì)合金截齒性能表征參數(shù)的探討
WC晶粒度對WC-10% Co 硬質(zhì)合金組織和性能的影響
上海金屬(2015年1期)2015-11-28 06:01:11
不同剖面形狀的柵格壁對柵格翼氣動(dòng)特性的影響
探討蒙特卡羅方法在解微分方程邊值問題中的應(yīng)用
基于廣度優(yōu)先搜索的晶粒掃描方法
基于CVT排布的非周期柵格密度加權(quán)陣設(shè)計(jì)
復(fù)合型種子源125I-103Pd劑量場分布的蒙特卡羅模擬與實(shí)驗(yàn)測定
同位素(2014年2期)2014-04-16 04:57:20
尉氏县| 读书| 南靖县| 汉寿县| 河南省| 新巴尔虎右旗| 舟山市| 平定县| 江安县| 长海县| 清远市| 同仁县| 河间市| 长岭县| 温州市| 清流县| 三亚市| 耒阳市| 开封市| 璧山县| 砚山县| 忻城县| 德兴市| 桐城市| 宣化县| 丰顺县| 池州市| 蒲城县| 郑州市| 库车县| 京山县| 志丹县| 鸡西市| 高密市| 银川市| 繁峙县| 远安县| 赫章县| 布拖县| 咸宁市| 泰宁县|