Ex2.7 输入文件的检查

VASP输入文件的检查,不论对于老司机,还是新手菜鸟来说,都是一个非常关键的,不能忽略的计算步骤。

我们要时刻牢记DFT计算的核心法则:Rubbish in, Rubbish out。当你给VASP输入一堆垃圾的时候,最好的结果就是VASP罢工,我们有机会可以重新修改再提交。如果VASP不罢工,就会给你一些垃圾的结果供你分析,然后在垃圾结果的基础上,你分析的头头是道,却不知道从根本上你就已经错了,路已经走偏了。 所以输入文件的检查是避免输入垃圾input的最后一道关卡。另外一点是,当前热门的大模型训练也是遵循的这一个原则,数据的好坏是一个成功大模型的重要保障。好的大模型肯定有一个高质量的数据作为支撑,垃圾的数据是训练不出好的大模型的。这就类似三字经开头的:人之初,性本善,性相近,习相远。思路扯回来,下面我们围绕着VASP的几个关键输入文件罗列一下Rubbish的一些特征。

前面我们已经讲到四个输入文件:INCAR, KPOINTS, POSCARPOTCAR,此外,还有一个提交任务的脚本script,总共五个文件。可以用一句话来帮助记忆:I Kick PPs , 翻译过来就是我踢屁股我踢PP。当然,你也可以把Kick 换成Kiss,只要方便记忆就行。

1 INCAR:

1.1 INCAR 中的参数的书写是不是正确? 比如 IBRION = 5 ,写成 IBRIOM = 5 。这样的低级拼写错误一定要避免。如何避免呢? 可以针对自己的体系,把一些常用计算类型的INCAR提前保存起来,用的时候直接复制,尽量避免重新输入的这一过程,从而减少拼写错误的出现。

1.2 我们算的是什么体系,对应的参数是否设置正确?

  • 比如对于分子体系,ISMEAR = 0, 你使用了适用于金属体系的ISMEAR = 1
  • 有磁性,初始磁矩设置会加快收敛的速度,你设置了没?
  • 有些DFT+U的计算,U值是否跟POSCAR中的元素一一对应,同样适用于上一点

1.3 我们算的是什么任务,对应的参数是否设置正确。

  • 算NEB,INCAR中 IMAGE的数目跟实际的是否一致?用VTST还是VASP自带的optimizer?
  • 算频率,IBRION = 5NFREE 以及 POTIM 设置了没? NCORE 等参数有没有删掉?
  • 算Bader电荷,DOS等电子结构分析的时候,哪些参数需要注意?
  • 优化结构的时候,怎么样才能保证电子结构和几何结构优化顺利进行?

2 KPOINTS

  • KPOINTS越大,计算速度越慢,可以说是对计算速度影响最大的一个因素。很多人为了加快计算速度,去INCAR中调试ENCUT等参数,效果甚微。
  • VASP 的计算可以分为粗算和精算两种,前者就是马马虎虎算一下,快读得到一个more or less good 的结果去进行下一步的精算。 因为不管是VASP还是其他计算软件,在保持计算参数不变的情况下,结构所具有的物理化学意义越合理,电子结构收敛的也就越快,几何结构也是如此。 因此,在粗算这一步的时候,我们的目标就是快速通过VASP得到一个比较合理的模型结构,对于参数的选择并不是很严格,此时就可以play with the KPOINTS 来极大的加快自己的计算速度。
  • 在计算吸附的时候,我们需要用到slab+species 和 slab 的能量,那么计算这两个模型的时候, KPOINTS是否一致?
  • 能带计算的时候,K-Path是否设置合理?
  • 对于六方晶系的金属,比如Ru, KPOINTS需要 Gamma centered,写对了没?
  • 当体系的模型变大(小)的时候,KPOINTS 有没有相应的改变?
  • 还有其他的,后面再继续补充。

3POSCAR

  • POSCAR 是我们理论计算的模型结构文件,模型对不对,是否合理,这是一个很有技术含量的活(后面会单独写一个章节进行介绍),即使对于单原子能量的计算,依然有很多人不看说明书,在那里瞎算。
  • 明确计算的体系以及模型的大小;
  • 明确计算的具体任务,优化还是算频率等;在做表面计算的时候,经常需要固定和放开表面的原子。优化的时候需要放开,算频率的时候则需要固定住。有时候拿优化的结果,直接算频率就会得到一些意外的惊喜,本来一小时的工作,一天都算不完。

4 POTCAR

  • POTCAR 的选择是否合理? 有没有参考VASP的推荐说明
  • POTCAR 中元素的顺序是否跟POSCAR中的一致? 这也是大家经常出现的错误。
  • POTCAR 有没有在计算文件中?很多人忘记放POTCAR就直接提交任务,这也是经常出现的一个错误。

5 scripts

  • 提交任务的脚本,使用的节点数,核数要估算好。
  • 计算需要的内存Memory 有时候也需要设置的大写,比如VASP最新的ML功能,内存小了就容易出错。
  • 有些服务器具有不同的partition,你的任务是否提交到正确的那个上了?
  • 如果KPOINTS 是 3x3x1,用vasp_gam 版本就会出错。
  • 计算结束后,可以放一些后处理的脚本或者清理文件的命令,这些命令是否准确?

小结:

对于新手来说,本节内容只是简单介绍一些需要的注意事项,但是我们连O原子的计算还没实战,说这些着实有些太超纲了,如面熟练了再回来看一看。只要对下面两点有印象就好准备输入文件的时候牢牢记住Rubbish in, Rubbish out 这一个核心法则:

  • 提交任务之前按照 I Kick/Kiss PPs 这一口诀,再次检查输入文件。