收稿日期: 2016[KG*9〗11[KG*9〗30
作者簡(jiǎn)介: 席強(qiáng)(1994—),男,陜西漢中人,碩士研究生,研究方向?yàn)楹K畱?yīng)力腐蝕機(jī)理,(Email)xiqiang@#edu.cn1LAMMPS的Lattice命令
LAMMPS本身在建模方面是比較薄弱的,因此Lattice命令在LAMMPS建模中具有舉足輕重的地位.Lattice可以建立大多數(shù)晶格模型,在金屬、晶體、材料等相關(guān)領(lǐng)域的研究中使用比較頻繁.
Lattice命令可以定義一個(gè)其他指令可以使用的晶格.在LAMMPS中,一個(gè)晶格是空間中簡(jiǎn)單的點(diǎn)集,由基本原子構(gòu)成的可在三維空間中無(wú)限復(fù)制的晶胞(反映晶體對(duì)稱性的最小重復(fù)單元,也稱單胞)所組成.Lattice命令定義的晶格應(yīng)用在2處:第一,在模擬盒子內(nèi)部的格點(diǎn)上創(chuàng)建原子(可以為基本原子分配不同的原子類型)create_atoms command;第二,三維晶格中的晶格間距可以被其他命令,如create_box,region,velocity等,作為距離單元使用.
Lattice命令的決定參數(shù).一個(gè)晶格由晶胞、晶胞內(nèi)部的基本原子和變換參數(shù)(密度、平移規(guī)則、取向)決定.矢量a1,a2,a3是晶胞的棱矢量,在固態(tài)物理學(xué)里面用術(shù)語(yǔ)“基矢”來(lái)表示,應(yīng)用時(shí)應(yīng)基于此查找相關(guān)文獻(xiàn).在LAMMPS中不一定要用最小體積的原胞(最小的周期性重復(fù)單元)決定晶格參數(shù),比如在peri/pmb等介觀勢(shì)函數(shù)力場(chǎng)下晶粒大于原胞體積,在某些情況下又由基本原子決定.
原胞類型要對(duì)應(yīng)維度.晶格類型必須要與模擬的維度匹配.簡(jiǎn)單立方sc,體心立方bcc,面心立方fcc,六角密堆積hcp和金剛石diamond類型用于三維建模;四方sq,sq2 和六方hex類型用于二維建模;自定義custom類型既可以用于二維也可以用于三維建模.
Keyword的使用.origin選項(xiàng)指定在將單胞布置到模擬盒子中的時(shí)候,如何對(duì)其進(jìn)行上浮或者平移.參數(shù)x,y,z是分?jǐn)?shù)值(0≤(x,y,z)<1.0),意思是說(shuō)按著相應(yīng)方向上的晶格間距的分?jǐn)?shù)值進(jìn)行平移或者上浮.orient選項(xiàng)指定在將單胞布置到模擬盒子中的時(shí)候,如何對(duì)其進(jìn)行旋轉(zhuǎn),其實(shí)是設(shè)置坐標(biāo)軸放在哪個(gè)晶格方向上.所指定的3個(gè)晶格方向必須是相互正交并且滿足右手定則的.spacing選項(xiàng)用來(lái)直接設(shè)置晶格間距,只在特殊情況下使用.
2LAMMPS中重疊原子的處理
如果隨機(jī)給定初始條件,不可避免會(huì)產(chǎn)生原子重疊.模擬開(kāi)始時(shí)必須把重疊原子推開(kāi),否則模擬無(wú)法進(jìn)行.處理重疊原子和能量最小化有區(qū)別,因?yàn)橥崎_(kāi)原子不一定能量就最小.處理辦法目前主要有以下3種.
(1)pair_style soft command加上small timestep, soft style可使原子坐標(biāo)重疊力不會(huì)無(wú)窮大,再加上小的時(shí)間步,這樣原子一次移動(dòng)的距離不會(huì)太大(最好<0.1個(gè)單位),從而保證推開(kāi)重疊原子.
(2)fix nve/limit command可通過(guò)限制最大移動(dòng)距離來(lái)實(shí)現(xiàn)原子的分離,此辦法對(duì)勢(shì)能和時(shí)間步長(zhǎng)沒(méi)有特殊要求.
(3)minimize command可通過(guò)一定的算法使系統(tǒng)能量最小化,在某些時(shí)候可以用來(lái)推開(kāi)重疊原子,一般用于周期性模擬盒子,而且系統(tǒng)中沒(méi)有需要固定不動(dòng)的原子.
相比較而言,較為常見(jiàn)的是minimize command,但有些時(shí)候還是會(huì)報(bào)錯(cuò),所以這里推薦第二種辦法,使用方便且命令自身對(duì)模擬系統(tǒng)沒(méi)有特別的要求,較為通用.
3LAMMPS中的fix deform命令
一般地,fix deform命令用來(lái)改變體系形狀從而模擬非平衡動(dòng)力學(xué),可以通過(guò)多種方法產(chǎn)生非平衡行為.這里拋開(kāi)動(dòng)力學(xué)問(wèn)題不談,介紹其用于系統(tǒng)建模時(shí)的技巧和特殊用處.
用fix deform來(lái)設(shè)置體系密度的命令如下
fix 1 all deform 1000 x final -50.0 50.0 y final -50.0 50.0 z final -50.0 50.0 units box
其原理在于通過(guò)改變系統(tǒng)的體積來(lái)改變系統(tǒng)的密度.使用final style對(duì)于精確設(shè)定系統(tǒng)體積很有幫助,在建立模擬體系時(shí),如果體系只有單獨(dú)一個(gè),可以把邊界設(shè)置好;也可以把初始的體系密度設(shè)置很大,然后利用這個(gè)命令改變到自己所要的密度上,從而不再?gòu)膔ead.data中改變邊界值(如果這樣的話,對(duì)于跨邊界的bond會(huì)出錯(cuò)).這個(gè)技巧對(duì)于需要通過(guò)改變密度來(lái)模擬不同體系時(shí)非常方便,不用多次做初始化數(shù)據(jù)的工作.
在使用時(shí)需要注意以下幾點(diǎn).
(1)用命令改變長(zhǎng)度時(shí),一定要加上單位,最好不要默認(rèn),否則也可能出錯(cuò).
(2)最好在開(kāi)始時(shí)使用此命令來(lái)設(shè)定密度,因?yàn)楦淖兠芏群筮€有個(gè)趨平過(guò)程,如果中間改變的話,以前的模擬步數(shù)都要舍棄,這樣會(huì)增加模擬的時(shí)間.
(3)此命令可能會(huì)使系統(tǒng)產(chǎn)生宏觀速度,所以使用后最好用velocity command重新初始化速度.
(4)此命令是用從新標(biāo)度原子的方法來(lái)變化坐標(biāo)的,如果體系有剛性的物體或多個(gè)必須固定的原子,就不要用或者把這些原子先剔除,把其他的改變好后再放入體系.
4LAMMPS如何生成data文件
由于LAMMPS本身生成初始坐標(biāo)文件的能力無(wú)法很好地適應(yīng)不同的模擬方向,因而許多初始坐標(biāo)要自己寫(xiě)成data文件.LAMMPS對(duì)讀入的data文件有自己的格式要求,需要具備一定編程能力才能自主編寫(xiě)data文件,下面總結(jié)幾種編寫(xiě)data文件的方法.
(1)仔細(xì)閱讀手冊(cè)中關(guān)于data文件的章節(jié),明白data文件的格式及用法.先模擬例子中與自己領(lǐng)域相關(guān)的例子,用restart命令繼續(xù)計(jì)算.restart文件通過(guò)工具文件夾中的restart2date工具轉(zhuǎn)換成data文件,然后套用格式到自己的初始坐標(biāo)文件中.
(2)將工具文件夾中的msi2lmp.exe拷貝到指定文件夾下,在MS(Materials Studio)中建立好結(jié)構(gòu)模型后,在ds模型或者forcite模型中指定力場(chǎng)類型,export結(jié)構(gòu)保存為car格式,同時(shí)自動(dòng)有mdf格式的文件生成,將car和mdf文件以及力場(chǎng)文件拷貝到msi2lmp.exe所在的文件,運(yùn)行msi2lmp.exe,生成文件data.xxx.
(3)在MS中導(dǎo)出pdb格式文件,套用上面方法(1)中的固定格式.
在實(shí)際使用中,建議常使用第三種辦法,即得到坐標(biāo)文件→固定格式→修改,既可以避免在轉(zhuǎn)換過(guò)程中產(chǎn)生的錯(cuò)誤,又對(duì)自身模型有一個(gè)更深刻的理解,不能過(guò)分依賴現(xiàn)有程序.
在LAMMPS的使用中,遇到問(wèn)題先聯(lián)想已經(jīng)掌握的方法,再考慮應(yīng)用此方法的“副作用”并想辦法解決或避免,在此過(guò)程中一定要反復(fù)查閱手冊(cè)(http://lammps.sandia.gov/doc/Manual.html),最終形成自己的問(wèn)題解決辦法.
(摘自同濟(jì)大學(xué)鄭百林教授《CAE操作技能與實(shí)踐》課堂講義)