Ex18 谁偷走的我的机时?(三)

KPOINTS对计算时间的影响


继续前面的学习,本节讨论KPOINTS文件中K点的设置对计算时间的影响。本节图中的Linux命令不再详细介绍,大师兄默认大家已经基本掌握了其中的原理和窍门。VASP官网上还有其他的批量测试的脚本,大家现在也可以差不多能看懂了。比如Si计算的例子:https://cms.mpi.univie.ac.at/wiki/index.php/Fcc_Si


1 KPOINTS测试

1.1 准备测试模板

新建文件夹: 3,将之前的文件夹0复制过来后重命名为 1。

1.2 批量制备测试文件:

命令: for i in {2..6}; do cp 1 $i ; sed -i"s/1 1 1/$i $i $i/g" $i/KPOINTS ; done

文件夹1 代表KPOINTS为1 1 1 ,6 代表KPOINTS为 6 6 6 其他的类推。


1.3 批量提交任务:

备注:这里的qsuball 命令是把前面的批量命令放到 .bashrc 文件中了。不懂的请看Ex17的批量操作命令和Ex13中.bashrc文件中alias的使用方法。


2 测试结果分析

2.1 查看OUTCAR 中的K点信息

图中,我们找出可以通过grep 查询的字符:irreducible


2.2 批量查看所有测试的K点信息:

命令 grep irreducible 3/OUTCAR

从图中可以看出:

1)K点2 2 23 3 3 的计算中,生成的K点数目是一样的;类似地,4 4 45 5 5 具有同样地K点数目;

2)不难理解,相同的K点数目,其计算时间也是一样的;

3)计算时间随K点数目的增加也增加了。


师兄,为什么K点数目会存在奇数和偶数相同的关系?

原因在于K点生成的方法。当KPOINTS为偶数的时候,K点都在布里渊区的内部,而为奇数的时候,部分K点处在布里渊区的边界上。引用参考书中的一个表格和一段话:第三章第56-57页:


2.3 不同K点对能量的影响:


先不画图了,直接看能量吧:

当K点为 1 1 16 6 6 的时候,O$_2$分子的能量差别为: 0.0015 eV。可以忽略不计。在这里,你可以清晰地知道:为什么算气相分子的时候 gamma点(1x1x1)足够了。

对于其他slab或者体相材料的计算,K点怎么选择呢?我们看下面这一段话:

出处: https://wiki.fysik.dtu.dk/gpaw/exercises/surface/surface.html


再参考一下Quantumwise 网站的说明:

出处:http://quantumwise.com/forum/index.php?topic=2628.0

再次强调一下:浏览网站说明的时候,要养成这样的一种习惯,凡是看到Note这个单次,就要跟打了鸡血一般!前面的东西看不懂不要紧,Note后面跟的都是重点易出错的地方。


以上只是经验参数的说明,给我们提供一个大体的指导。这个参数在使用中,要注意我们前面提到的奇数和偶数的情况。而具体到我们的计算中,需要用什么数值,我们需要认真地测试检查一下,而不能直接就用图中的经验参数。

1)通过测试不同K点对体系能量的变化;(参考书中的例子)


2)查找参考文献的取值;


3)此外,不同K点之间的数据不能混用。比如计算CO在一个 (3x3) Cu(111)表面上的吸附能:

等号后面的前两项,必须要用同一个K点下计算出来的能量,如果$E{CO+slab}$ 用5x5x1 的K点, E(slab) 采用 3x3x1的K点能量,得出的结果必然是错的。


2.4 来自VASP官方的提醒:

出处: https://www.vasp.at/vasp-workshop/slides/accuracy.pdf

1)常见错误(一): 体系中ENCUT的取值不统一;

2)常见错误(二):采用不同KPOINTS计算出来的结果。

3)在关于Accuracy的这个pdf文件中,最后一行大家要谨记:TEST,TEST,TEST ….


3 扩展练习:

1 下载大师兄分享的压缩文件: 本节中所有的pdf文件和链接;大师兄QQ群文件下载,或者百度网盘:http://pan.baidu.com/s/1eSCGWeA

2 阅读参考书中第三章的内容,掌握K点的基本概念和一些选取的注意事项;

3 浏览本节中所有的网址。


4 总结:

1 K点数目越多,计算越准确,需要的时间也会相应地越多,大家要把握好准确度和时间的关系;

2 K点的确定,需要经验和测试相结合,经验为辅,测试为主。


5 补充:

VASP的新版本中,可以直接在INCAR中设置K点。也就是说,没有KPOINTS文件也可以正常计算,但这可能只适用于简单的K点情况,能带结算等需要制定K点路径的计算,我们还是需要KPOINTS文件的。