Ex44 p(1x1)Cu(111) 的优化计算

前面我们学习了Slab模型的单点计算,在此基础上,本节我们主要学习下怎么优化Slab模型。

1 修改Slab模型

前面单点计算的POSCAR不可以直接拿过来用吗?为什么要修改POSCAR文件?

这是因为在Slab模型中,要固定一部分原子来模拟体相,然后放开一部分原子来模拟表面。一般来说,表面的两层原子允许弛豫,而下面的那些原子则直接固定住。

这样做的物理意义在于:在真实的环境下,催化剂体相看做是不变的,只有表面的原子参与催化反应。

VASP中固定原子需要在POSCAR中进行操作。有两个关键点:

1)在POSCAR的第7行后添加一行,改行内容为Selective Dynamics,VASP只认第一个字母,你可以直接在这一行只加 S或者s。也可以换成其他的S开头的单词,比如SBSexy BigBroSuper BigBro等等;
2)在原子坐标后面加上 F 或者 T 表示固定或者放开,因为坐标有xyz三个数值,因此我们需要三个F或者T。我们可以通过设置允许原子在某一方向上移动,而其他方向上固定。

  • F F F表示xyz全部固定;
  • T T T 表示xyz全部放开,
  • F F T 表示 xy方向固定,只允许原子在z方向上移动。

这一点我们前面也已经讲过了,详见Ex24 频率计算的输出与POSCAR原子的固定。

注意:

  • 如果前面的POSCAR直接拿过来直接用,那么在优化过程中所有的原子都会被放开。回想一下我们计算Fe, Cu单胞的例子,计算中我们没有设置F或者T,晶胞尺寸和原子的坐标在优化过程前后都发生了变化。因此你不设置Selective 以及 F或者T,VASP默认是所有的原子都放开的。
  • Selective 和 F 或者 T同时出现,不要只设置Selective忘了FT,也不要只设置FT忘了Selective.

2 如何修改?

根据前面说,我们需要做的无非有两步,
1) 在第7行后加入Selective Dynamics
2) 在坐标后面加入T T T或者 F F F
我们在本节中,将底部的两层原子固定,上面两层放开。

实现本目的,有以下几种方式:

2.1)这个用文本编辑器就可以做到,很多编辑器都有列块模式,允许你同时添加N列到每行的最后。你可以使用下Notepad++Atom这些免费开源的软件来操作

2.2)使用p4vasp,详见前面的练习Ex24

2.3) 本节我们重温一下sed的用法,直接使用命令进行操作。

A) 在第 7行 后添加一行:

1
sed  -i  '7aSelective Dynamics'  POSCAR

7a 代表在第7行后面添加一行,a 是append的缩写。注意,a 和 Selective之间可以没有空格,也可以有空格,这里我们没有加空格。

B) 添加了Selective这一行之后,原子坐标的行数也发生了变化,为10-13行。

C) 第10,11行为底部的两层原子坐标,我们在最后面加上F F F

1
sed  -i  '10,11s/$/ F F F/g' POSCAR

注意: 第一个F前面有个空格。

d) 在12-13行最后面加上 T T T

1
sed  -i  '12,13s/$/ T T T/g' POSCAR

这样,我们就顺利完成POSCAR的改造了,可以用来进行slab的优化计算了。

3 KPOINTS 和 POTCAR

保持原来的样子不变

4 INCAR

优化的时候,我门回想一下要设置的东西:
4.1IBRIONPOTIM
IBRION可以使用 1 和2,我们这里用2。(1的话适合初始结构比较好的情况,这里我们也可以用。)
POTIM =0.1 官网默认值是0.5,个人感觉比较大, 0.1是一个很不错的选择。
4.2 EDIFFG = -0.01优化时以力作为收敛标准。注意 -0.01 已经很严格了,除非特殊需要,不要设置-0.001,这样你就会在QQ群里求助大家,为什么我优化的时候一直不收敛啊。如果设置-0.01,很多步过后仍然不收敛,可以尝试一下-0.02,也是一个很安全的选择。
4.3 NSW = 500 设置最大的优化步数。
4.4 ISIF = 2 slab 模型优化的时候,我们用ISIF =2 ,也就是VASP的默认值,不用设置, 最终INCAR如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
System = Cu111

ISMEAR = 1
SIGMA = 0.1
ALGO = FAST
ENCUT = 450
EDIFF = 1E-5

LDIPOL = .TRUE.
IDIPOL = 3

NWRITE = 0
LWAVE = .FALSE.
LCHARG = .FALSE.

IBRION = 2
POTIM = 0.1
EDIFFG = -0.01
NSW = 500

注意:
上一节我们提到Cu没有磁性,表述是不准确的,应该是纯净的Cu(111) slab模型中,Cu不需要考虑自旋。如果你算的是CuO(111)表面,则需要考虑自旋了。

5 提交任务

计算结束后,查看OUTCAR,OSZICAR的最后几行检查下是不是正常结束。

6 扩展练习

6.1 掌握本节提到的固定原子的三种做法:文本编辑器,p4vasp, sed, 当然啦,更可以直接使用Vim 这个强大的工具来执行
6.2 查看结构优化相关的这几个参数,复习下它们的VASP官网说明。
6.3 运行本文的例子,然后将EDIFFG设置成 -0.02或者-0.001进行测试,查看与-0.01的区别。
6.4 VASP官网查找表面能计算的案例,结合本节以及前面的学习,尝试算一下Cu(111)面的表面能。

7 总结

截止到本节为止,Slab模型的优化,你已经可以初步掌握了。请务必跟着节奏认真练习。后面我们会继续学习Slab模型的优化,现在感觉陌生没上手的也不用担心。认真总结一下,我们如何从Bulk模型,然后一步一步操作到Slab模型优化的。每一步中都有哪些该注意的细节。这些都掌握了,就可以大大提高你计算的成功率,进而节省时间和精力。