大家好,小編最近的課題需要輸出RDF(徑向分布函數),小編就去lammps官網及網絡查找了如何用lammps輸出RDF,小編就把自己學到的用法在這裡跟大家分享,也算是小編學習過程中的一個筆記。
本教程也是小編現學現賣,不足之處請各位指出,希望能給讀者提供一定的幫助,讀者可結合實際需求,同時希望專業前輩提出不足,小編會和大家共同學習。
1.徑向分布函數概念
在統計力學中,多粒子系統(原子、分子、膠體……中, 徑向分布函數(又稱對關聯函數)描述粒子密度作為距參考原子的距離的函數如何變化。
如果給定粒子當做原點,體系平均粒子數密度為 ρ=N/V,則距原點為r處的局部時間平均的密度為 ρ*g(r) 。這是對均勻的各向同性系統的簡化定義。
簡言之,這是對於距參考粒子距離為r處找到粒子的相對概率的測量,參考態是理想氣體。一般的算法是計算在距參考原子 r 到 r+dr 這樣的殼層裡有多少粒子。
RDF的定義的定義式如下:
式中,V為系統的個數,N為系統中的粒子數,n(r)為納米粒子半徑dr處厚度下的原子數。
2.徑向分布函數意義
徑向分布函數通常用g(r,r')來表示。對於 |r-r'| 比較小的情況,g(r,r') 主要表徵的是原子的堆積狀況及各個鍵之間的距離。對於長程的性質,由於對於給定的距離找到原子的機率基本上相同,所以g(r,r')隨著|r-r'|的增大而變得平緩,最後趨向於恆值。通常定義 g(r,r')時,歸一化的條件為 |r-r'| 趨向於無窮大時,g(r,r') 趨向於一。通常,對於晶體,由於其有序的結構,徑向分布函數有長程的峰,而對於非晶物質(amorphous matter),則徑向分布函數一般只有短程的峰。
徑向分布函數通常被用來描述原子有序性及描述電子的相關性(指的就是給定一個電子,其他電子在此電子周圍出現的機率),也就是在RDF圖中,峰所在位置就是電子出現概率大的位置。
我們在lammps官網可以看到輸出RDF的具體語法
compute ID group-ID rdf Nbin itype1 jtype1 itype2 jtype2 ... keyword/value ...fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...舉例:compute 1 all rdf 100compute 1 all rdf 100 1 1compute 1 all rdf 100 * 3 cutoff 5.0compute 1 fluid rdf 500 1 1 1 2 2 1 2 2compute 1 fluid rdf 500 1*3 2 5 *10 cutoff 3. 在compute rdf命令中,Nbin為統計量(樣本量),數越多可能曲線會越光滑(一般200-500);itype1是徑向分布函數的中心原子, jtype1是被統計的原子。
在fix ave/time命令中,Nfreq必須是Nevery的整數倍,必須是非零。用compute rdf命令時,value1、value2 ... 為c_ID[1],c_ID[2],c_ID[3],輸出結果按列依次為序號,c_ID[1]為group到原點的距離,即x軸,c_ID[2]為g( r ),c_ID[3]為coor( r ),即 g( r )的積分,也就是輸出的數據以c_ID[1]為橫軸,以c_ID[2]或c_ID[3]為縱軸,就可以得到某一時刻的RDF曲線。 例如以下命令可用於輸出每1000步的rdf值,在截斷半徑範圍內,距離被分成200段:compute rdf all rdf 200 2 6 #rdf fix rdf all ave/time 1000 1 1000 c_rd1[1] c_rd1[2] c_rd1[3] file data.rdf mode vector本文將之前做的一個案例CuNi合金熔化模擬過程的1550K-2500K升溫過程的RDF輸出,添加的代碼為:
compute rdf all rdf 200fix saverdf all ave/time 100 100 10000 c_rdf[1] c_rdf[2] file data.rdf mode vector完整in文件如下:
units metalboundary p p p
atom_style atomic
read_data melting.in.dat
lattice fcc 3.65 region box block -30 30 -5 5 -5 5
mass 1 64.55mass 2 58.69
pair_style eam/alloypair_coeff * * CuNi.lammps.eam Cu Ni
region 1 block INF -0.01 -6 6 -6 6group left region 1region 2 block -0.01 INF -6 6 -6 6group right region 2
timestep 0.002velocity all create 1550.0 4928459 dist gaussianfix 1 all npt temp 1550 1550 0.1 iso 0 0 0.2
dump melt all atom 10000 dump.datrestart 50000 restart.*
thermo 100run 4000
unfix 1fix 1 right npt temp 1550 2500 0.1 x 0 0 0.2compute rdf all rdf 200fix saverdf all ave/time 100 100 10000 c_rdf[1] c_rdf[2] file data.rdf mode vectorrun 2000
unfix 1fix 1 right npt temp 2500 1550 0.1 x 0 0 0.2
run 44000
unfix 1fix 1 all nph iso 0.0 0.0 0.2 run 9500000最後,用記事本打開生成的data.rdf文件,用裡面的數c_rdf[1]及 c_rdf[2]繪圖,就可以得到如下的RDF曲線。
1.文中所需的data文件及勢文件已上傳至QQ群-lammps交流站。