Ex46 表面弛豫的计算结果分析以及Direct坐标转换脚本

前面一节我们回顾了一下表面弛豫的基本概念,对于大多数的金属体系来说, 表面弛豫一般发生在垂直方向上。将金属沿表面方向切成两份后,由于表面原子的配位数发生了变化, 我们可以想象:该表层原子与下面一层的结合能力会更强,从而降低体系的能量。具体体现在层间距和能量两个方面。我们先回顾一下Ex44中Cu(111)表面的练习。

1 结构优化前后变化

首先观察一下结构的变化, POSCAR的结构如下:(刚刚切好的,热乎的表面)

1
2
3
4
5
6
7
8
9
10
11
12
13
Cu\(1\1\1)
1.00000000000000
2.5717000960999998 0.0000000000000000 0.0000000000000000
-1.2858500480999999 2.2271576141999998 0.0000000000000000
0.0000000000000000 0.0000000000000000 21.2994003296000010
Cu
4
Selective
Cartesian
+0.0000000000 +0.0000000000 +0.0000000000 F F F
-0.0000128765 +1.4847792201 +2.0999078998 F F F
+1.2858629618 +0.7423784587 +4.1996028482 T T T
+0.0000000000 +0.0000000000 +6.2995107693 T T T

优化后的结构:冷却后的,转化为Cartesian坐标的CONTCAR)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Cu\(1\1\1)
1.00000000000000
2.5717000960999998 0.0000000000000000 0.0000000000000000
-1.2858500480999999 2.2271576141999998 0.0000000000000000
0.0000000000000000 0.0000000000000000 21.2994003296000010
Cu
4
Selective dynamics
Cartesian
+0.0000000000 +0.0000000000 +0.0000000000 F F F
-0.0000128765 +1.4847792201 +2.0999078998 F F F
+1.2858542192 +0.7423835062 +4.1890255872 T T T
+0.0000182442 -0.0000105333 +6.2592676588 T T T


表层原子的坐标从6.2995 $\AA$减小到6.2593 $\AA$。说明该层原子向体相收缩了。
第一、二层的原子间距(单位: $\AA$)为:
6.2995-4.1996 = 2.0999 (POSCAR)
6.2593-4.1890 = 2.0703 (CONTCAR),
前后变化了(2.0999-2.0703) / 2.0999 * 100% = 1.4 %
注意:这里没有区分正负号,一般来说,用负值表示向体相收缩!!!(详见参考书)

2 弛豫能量

那么怎么知道弛豫前后的能量变化呢? 这个问题很容易回答:

  • 第一步:我们对刚刚切好的表面算个单点计算;获得一个能量。
  • 第二步:用优化完的能量减去前面单点能结果即可。

实际计算过程中,第一步可以免去,因为在优化的时候,VASP会对初始结构计算一下,对应的为第一个离子步的能量。

1
2
3
4
5
6
7
8
9
10
11
qli@bigbro:~/test/cu/cu111/opt1$ grep '  without' OUTCAR  | awk '{print $7}'
-13.96892338
-13.96932426
-13.96974724
-13.97030280
-13.97016827
-13.97041579
-13.97047584
-13.97063103
-13.97082922
-13.97086603

所以,弛豫前后的能量(eV)变化为:
-13.97086603 - (-13.96892338) = -0.00194265

能量为负值,说明弛豫这个过程是放热的,也就是说刚刚切开的表面不稳定,表层原子向体相收缩后,体系能量降低,变得更稳定。
注意:这么做的时候,一定要先检查第一个离子步中的电子步是否收敛。比如:VASP默认的单个离子步中的电子步数为60步(NELM = 60),https://cms.mpi.univie.ac.at/wiki/index.php/NELM
如果你设置的的NELM为默认值,且第一个离子步中,到了60步还没有收敛,则该这一步的能量是不可以用的。
此时,你需要做的就是:

  • 尝试增大 NELM = 100 或者其他更大的数值, 对未优化的结构重新做个单点计算。
  • 收敛很困难的话,可以调节下ALGO这个参数。

3 dire2cart.py

本节讲的太少,留个转化Direct为Cartesian的脚本(dire2cart.py)作为补充。下载链接:

https://pan.baidu.com/s/1ScsLWhLAPpSul0SzYNPvpg。

上面CONTCAR的转化就是用的这个脚本。使用如下图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
qli@bigbro:~/test/cu/cu111/opt1$ ls
CONTCAR INCAR KPOINTS OSZICAR OUTCAR POSCAR POTCAR sub4 vasprun.xml
qli@bigbro:~/test/cu/cu111/opt1$ dire2cart.py POSCAR
###################################

# #

#for VASP 5.2 or higher versions #

# #

###################################

## This POSCAR has Direct Coordinations, Conversion is starting....

## POSCAR with Cartesian Coordiations is named as POSCAR_C

注意:

  • 如果你的POSCAR或者CONTCAR已经是Cartesian坐标了,这个脚本可以自动识别并终止转换。
  • 转化后的文件为:AAA_C, AAA是你要转化的文件(POSCAR或者CONTCAR)。

4 扩展练习