一個奈米壓痕的例子
許多人問我怎麼做奈米壓痕相關的模擬,我在這裡給出一個多層二維材料的算例,該算例是依賴於lammps平臺的簡單算例,這個算例的相關工作已經發表:
Nanotechnology 31 (2020) 165706,
如果該算例有助於您的研究,請引用我們我們的工作,連結如下:
奈米壓痕是一個典型的力學測試方法,無論是怎樣的體系,我們應當思考的建模和計算有以下幾個要點:
力的載入
邊界條件
物理量的統計
三層GaTe奈米片的奈米壓痕模型
力的載入關係到選擇怎樣的壓頭,這取決於所模擬的實驗中的實際情況,如我們的封面圖所示,在這裡我們用了一個圓柱形的壓頭。在我們還未發表的工作,也有采用稜錐的壓頭,之後如果工作發表了,可以進行補充。載入方式自然可以選擇力載入和位移載入,一般來說,位移載入是更加便捷和可控的。
因為奈米壓痕一般發生在基底上,因此基底承擔了支撐作用,在本算例中,二維材料採用了固定邊界條件,在具體情況中當然也可以採用其他邊界條件。
除了壓強,溫度這些狀態量的統計,奈米壓痕中最重要的兩個物理量就是力和位移,在這裡我們直接統計壓頭的位移和壓頭所收到的力,這裡有兩個非常重要的關鍵詞,就是在lammps中計算group的質心位移和質心力,參見variable命令中的關鍵詞:xcm和fcm,連結如下:
此外,非常重要的就是考慮模型中的剛體設定,這樣會大大簡化計算的難度和速度,在這裡,壓頭和基底都被設為了剛體。
下面,直接給出該算例區域性in檔案,對關鍵設定我進行了註釋,全部in檔案、data檔案和sw勢函式檔案我放在以下連結中,方便大家重複結果。連結如下(提取碼為4610):
#
units metal
dimension
3
atom_style atomic
neighbor 0。3 bin
variable simname index 3layers_GaTe_free
#2 structure
boundary f f f
#定義系統整體的邊界條件
read_data
${
simname
}
。data
mass
1
127。60
mass
2
69。72
mass
3
127。60
mass
4
69。72
mass
5
127。60
mass
6
69。72
mass
7
127。60
mass
8
69。72
mass
9
127。60
mass
10
69。72
mass
11
127。60
mass
12
69。72
#重原子為金屬Ga原子,輕原子為Te原子,1~12為模型中的三層奈米片
mass
13
28。086
mass
14
15。999
#基底的SiO2
mass
15
12。011
#C壓頭
group C
type
15
group SiO
type
13
14
group TMD subtract all SiO C
#3 variables
variable temperature equal
1
#我們的計算中沒有考慮溫度效應,因此用了很低的溫度
variable pressure equal 0。0
variable tstep equal 0。001
#時間步是1fs
variable srate equal 1。e8/1。e12
#定義壓頭下降的速度
variable disC equal xcm
(
C,z
)
#計算壓頭下行位移
variable forC equal fcm
(
C,z
)
#計算壓頭所受力
#4 potentials
pair_style hybrid/overlay sw lj/cut 10。0
pair_coeff * * sw gate。sw Te1 Ga1 Te2 Ga2 Te1 Ga1 Te2 Ga2 Te1 Ga1 Te2 Ga2 NULL NULL NULL
#LJ potential for GaTe layers interactions
pair_coeff 1 5 lj/cut 0。01727 3。98396
#LJ potential paramters for Te-Te
pair_coeff 1 6 lj/cut 0。00877 2。79198
#LJ potential paramters for Te-Ga
pair_coeff 1 7 lj/cut 0。01727 3。98396
pair_coeff 1 8 lj/cut 0。00877 2。79198
pair_coeff 2 5 lj/cut 0。00877 2。79198
#LJ potential paramters for Ga-Te
pair_coeff 2 6 lj/cut 0。00445 1。6
#LJ potential paramters for Ga-Ga
pair_coeff 2 7 lj/cut 0。00877 2。79198
pair_coeff 2 8 lj/cut 0。00445 1。6
pair_coeff 3 5 lj/cut 0。01727 3。98396
#LJ potential paramters for Te-Te
pair_coeff 3 6 lj/cut 0。00877 2。79198
#LJ potential paramters for Te-Ga
pair_coeff 3 7 lj/cut 0。01727 3。98396
pair_coeff 3 8 lj/cut 0。00877 2。79198
pair_coeff 4 5 lj/cut 0。00877 2。79198
#LJ potential paramters for Ga-Te
pair_coeff 4 6 lj/cut 0。00445 1。6
#LJ potential paramters for Ga-Ga
pair_coeff 4 7 lj/cut 0。00877 2。79198
pair_coeff 4 8 lj/cut 0。00445 1。6
pair_coeff 5 9 lj/cut 0。01727 3。98396
pair_coeff 5 10 lj/cut 0。00877 2。79198
pair_coeff 5 11 lj/cut 0。01727 3。98396
pair_coeff 5 12 lj/cut 0。00877 2。79198
pair_coeff 6 9 lj/cut 0。00877 2。79198
pair_coeff 6 10 lj/cut 0。00445 1。6
pair_coeff 6 11 lj/cut 0。00877 2。79198
pair_coeff 6 12 lj/cut 0。00445 1。6
pair_coeff 7 9 lj/cut 0。01727 3。98396
pair_coeff 7 10 lj/cut 0。00877 2。79198
pair_coeff 7 11 lj/cut 0。01727 3。98396
pair_coeff 7 12 lj/cut 0。00877 2。79198
pair_coeff 8 9 lj/cut 0。00877 2。79198
pair_coeff 8 10 lj/cut 0。00445 1。6
pair_coeff 8 11 lj/cut 0。00877 2。79198
pair_coeff 8 12 lj/cut 0。00445 1。6
#zero parameter for lammps calculate running
pair_coeff
5
13
lj/cut
0
3。90498
pair_coeff
6
13
lj/cut
0
3。90498
pair_coeff
7
13
lj/cut
0
3。90498
pair_coeff
8
13
lj/cut
0
3。90498
pair_coeff
5
14
lj/cut
0
3。90498
pair_coeff
6
14
lj/cut
0
3。90498
pair_coeff
7
14
lj/cut
0
3。90498
pair_coeff
8
14
lj/cut
0
3。90498
pair_coeff
9
13
lj/cut
0
3。90498
pair_coeff
10
13
lj/cut
0
3。90498
pair_coeff
11
13
lj/cut
0
3。90498
pair_coeff
12
13
lj/cut
0
3。90498
pair_coeff
9
14
lj/cut
0
3。90498
pair_coeff
10
14
lj/cut
0
3。90498
pair_coeff
11
14
lj/cut
0
3。90498
pair_coeff
12
14
lj/cut
0
3。90498
#LJ parameters for interactions between GaTe layer with substrate of SiO
pair_coeff
1
14
lj/cut 0。01733 3。90498
pair_coeff
1
14
lj/cut 0。00671 3。56698
pair_coeff
2
14
lj/cut 0。00880 2。71300
pair_coeff
2
14
lj/cut 0。00340 2。37500
pair_coeff
3
13
lj/cut 0。01733 3。90498
pair_coeff
3
14
lj/cut 0。00671 3。56698
pair_coeff
4
13
lj/cut 0。00880 2。71300
pair_coeff
4
14
lj/cut 0。00340 2。37500
#LJ parameters for interactions between the Si atom and O atom inside the substrate
pair_coeff
13
13
lj/cut 0。01740 3。82600
pair_coeff
13
14
lj/cut 0。00673 3。48800
pair_coeff
14
14
lj/cut 0。00260 3。15000
#LJ parameters for the interactions between indentor and GaTe nanosheets
pair_coeff
1
15
lj/cut 0。00886 3。69198
#LJ potential parameters for Te-C
pair_coeff
3
15
lj/cut 0。00886 3。69198
pair_coeff
5
15
lj/cut 0。00886 3。69198
pair_coeff
7
15
lj/cut 0。00886 3。69198
pair_coeff
9
15
lj/cut 0。00886 3。69198
pair_coeff
11
15
lj/cut 0。00886 3。69198
pair_coeff
2
15
lj/cut 0。00450 2。50000
#LJ potential parameters for Ga-C
pair_coeff
4
15
lj/cut 0。00450 2。50000
pair_coeff
6
15
lj/cut 0。00450 2。50000
pair_coeff
8
15
lj/cut 0。00450 2。50000
pair_coeff
10
15
lj/cut 0。00450 2。50000
pair_coeff
12
15
lj/cut 0。00450 2。50000
#LJ potential parameters between substrate with indentor
pair_coeff
13
15
lj/cut 0。00890 3。61300
#LJ potential parameters for Si-C
pair_coeff
14
15
lj/cut 0。00344 3。27500
#LJ potential parameters for O-C
#LJ potential parameters for interactions between carbon atoms inside the indentor
pair_coeff
15
15
lj/cut 0。00455 3。4000
#LJ potential parameters for C-C
#5 relaxation
timestep
${
tstep
}
fix
1
TMD nvt temp
${
temperature
}
${
temperature
}
0。1
velocity SiO
set
0
0
0
velocity C
set
0
0
0
fix
2
SiO setforce
0
0
0
#固定基底
dump
1
all custom
1000
${
simname
}
_relaxation。lammpstrj id
type
x y z
thermo
1000
thermo_style custom step temp etotal
run
100000
#6 loading
reset_timestep 0
fix
4
C move linear
0
0
-0。05
#壓頭下移速度設為0。05 A/ps
#下面採用每2000步平均,也就是每2ps輸出一次壓頭的平均座標和所收到的力
fix
5
all ave/time
1
2000
2000
v_disC v_forC file
${
simname
}
。nanoindentation。dat
thermo
1000
thermo_style custom step temp v_disC v_forC
dump
2
all custom
1000
${
simname
}
_loading。lammpstrj id
type
x y z
run
400000
該指令碼計算的奈米壓痕的動圖:
我們另一個工作的奈米壓痕動圖,採用了另外的壓頭,為展現破壞過程,該動圖為截面圖詳細引數設定等相關工作發表後再進行補充: