許多人問我怎麼做奈米壓痕相關的模擬,我在這裡給出一個多層二維材料的算例,該算例是依賴於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

該指令碼計算的奈米壓痕的動圖:

我們另一個工作的奈米壓痕動圖,採用了另外的壓頭,為展現破壞過程,該動圖為截面圖詳細引數設定等相關工作發表後再進行補充: