金属纳米接触案例
這里寫自定義目錄標題
- 預設與建模部分
- 預設條件
- 建模
- 參數計算與運行部分
- 計算原子的米塞斯應力
- 弛豫
- 定義原子位移
- 開始加載
- 卸載過程
in文件結構分析
預設與建模部分
預設:對仿真基礎環境,即預設條件進行設置。
建模:用lammps建模/用MS生成data文件并調用。
預設條件
定義單位制、原子形式、邊界形式;
units metal //設置單位制
atom_style atomic //設置原子形式
boundary p p p //設置邊界形式
模擬空間;
region box block -1 100 -1 100 -1 120 units box //模擬空間大小和位置
units lattice //定義晶格長
原子種類、質量;
create_box 5 box
mass 1 64.0
mass 2 64.0
勢函數;
pair_style hybrid/overlay eam
pair_coeff 1 * 2 1 * 2 eam Cu_u3.eam
pair_coeff 2 * 5 2 * 5 eam Cu_u3.eam
pair_coeff 1 3 * 5 none
近鄰表;
neighbor 2.0 bin
neigh_modify delay 10
時間步長;
timestep 0.01
建模
參數計算與運行部分
加卸載曲線、材料的變形、應力情況。
加卸載曲線:計算材料相互作用力,按壓痕位移記錄;
材料的變形:原子相對初始位置的位移;
應力:米塞斯應力算法;
計算原子的米塞斯應力
計算IT組和BSB組原子相互作用總力,記為f,存于c_f;
為便于收集數據,將c_f乘1.6記為df。
compute f IT force/tally BSB
variable df equal c_f*1.6
// lammps中compute命令算得的讀數存于“c_命令名”并調用;
// variable命令(人為定義的變量)以“v_變量名”調用。
計算每個原子的米塞斯應力;
用compute stress/atom命令定義計算1,生成數組“c_1[1]~c_1[6]”,得到原子在xyz三方向上的拉應力分量,和xy、yz、xz三面上的剪應力分量;
用variable定義每個原子的半徑R,并計算原子體積v;
用variable von atom計算每個原子的米塞斯應力。
compute 1 all stress/atom NULL
variable R equal 128.9
variable v equal 4/33.1415926(v_R/100)^3
variable von atom abs(sqrt(((c_1[1]/v_v-c_1[2]/v_v) ^ 2+(c_1[2]/v_v-c_1[3]/v_v) ^ 2+(c_1[3]/v_v-c_1[1]/v_v) ^ 2+6*((c_1[4]/v_v) ^ 2+(c_1[5]/v_v) ^ 2+(c_1[6]/v_v)^2))/2))
弛豫
讓模型在不變的初始條件下運行至一個比較穩定的狀態后再進行進一步操作。
設置初始速度:
用velocity設置所有原子(all)速度,以滿足體系溫度為0.01K;
定義X、Y、Z初速度為0;
定義z方向壓頭的位移。
velocity all create 0.01 31415926 rot yes dist gaussian
variable X equal 0.0
variable Y equal 0.0
variable Z equal 0.0
variable z equal -(-70+xcm(ID,z))
設置輸出信息的頻率和內容:
thermo設定時間步數為10000的倍數時輸出一次信息;
thermo_style設定每行信息依次為:步數step、壓痕位移v_z、加載v_df、體系溫度temp。
thermo 10000
thermo_style custom step v_z v_df temp
原子的軌跡運算:
系綜:為了求解原子軌跡,對體系條件進行設定以確保充足的條件,這些體系條件成為系綜。
fix1 定義ID組的速度;
fix2、3、4 設定IT、BSB、BST組的系綜為nve、nve、nvt;
nve系綜:原子總數、體積、總能量不變;
nvt系綜:原子總數、體積、體系溫度不變;
fix5 定義固定層BS組速度分量均為0。
fix 1 ID move variable NULL NULL NULL v_X v_Y v_Z
fix 2 IT nve
fix 3 BSB nve
fix 4 BST nvt temp 0.01 0.01 0.01
fix 5 BS move linear 0.0 0.0 0.0
弛豫運行10000步。
run 10000
定義原子位移
用compute計算BSB和IT組原子的相對位移;
用variable計算z方向位移,記為d;
設置壓頭加載時z方向的移動速度。
compute 2 BSB displace/atom
compute 3 IT displace/atom
variable d atom abs(c_2[3] * (type == 3)+ (( c_3[3]-(xcm(ID,z)-50))+40)*(type==2))
variable Z equal -0.1
將原子信息按間隔寫入文件in.dump中,包括:原子號(id)、原子種類(type)、原子坐標(x、y、z)、原子米塞斯應力(v_von)、相對位移(v_d);
dump 1 all custom 100 in.dump id type x y z v_von v_d
開始加載
開始加載過程,由于需要輸出加載曲線需要的信息,設定每50步輸出一次。
thermo 50
為保證讀數漸變,將時間步數置零;
reset_timestep 0
加載過程運行25000步;
run 25000
卸載過程
壓頭z方向速度換向,并運行25000步;
variable Z equal 0.1
reset_timestep 0
run 25000
總結
- 上一篇: 联想thinkpad bios密码破解,
- 下一篇: 7.exchange2013实战操作之收