本文总阅读量
文章目录
  1. 1. 简单说明
  2. 2. INCAR 的输入工作
  3. 3. INCAR的详解
    1. 3.1. SYSTEM
    2. 3.2. ISMEAR
    3. 3.3. SIGMA:
  4. 4. INCAR的保存

这一节,我们主要通过VASP官网中O原子的计算实例,来学习INCAR的文件准备工作。记住前面我们说的话,INCAR是纯文本。Windows用户,不要用记事本或者写字板打开。推荐使用Notepad++

简单说明

INCAR主要是告诉VASP我们要算什么以及计算的细节,INCAR准备的原则是:越简单越好不知道的,不理解的就不往里面放。 下面是给新手们的一些建议:

  • INCAR 中有很多参数,改变参数来控制计算细节,从而得到我们期望的结果。所以,记住:Rubbish in, Rubbish out。自己算什么,心里要有数。

  • 网上很多人发INCAR的教程,列了一堆参数进去,甚至长达两页,有些连默认值也放在里面了,恨不得把所有参数全部放进去。不过,请记住:那些令人眼花缭乱的只是唬人装逼用的,在实际计算中会严重拖你的后腿。

  • 熟知各个参数的数值意义,以及在不同计算任务中的设置至关重要。

  • 有人会说,那么多参数,怎么能记得过来? 放心,完全可以的。

    • 一方面,对于特定的体系,所需要的参数不同。如果你的课题比较稳定,那么你应该不会接触太多的参数。比如你专注于体系的能带结构,那么算过渡态的参数你就不会需要。

    • 另一方面,这些计算参数又不是一天两天能记住的,是一个长期积累的过程。随着时间的增长和个人经验的增加,自然而然地就记住了。

INCAR 的输入工作

打开编辑器,把下面几行挨个输入进去:

1
2
3
SYSTEM = O atom       # 氧元素符号,不是零!
ISMEAR = 0 # 是零,不是氧元素符号,对于分子或者原子,用0.
SIGMA = 0.01 # 对于分子或者原子,用0.01

INCAR的注意事项:

  • #后面写的是汉语,是给大家展示用的,大家在写的时候,最好不要把汉语写进去,有可能会出错!
  • #号后面的内容对计算不会造成影响,可以不用输入;

  • 每个参数后面跟着等号 =

  • 等号(=)前后可以有空格,也可以没有。ISMEAR=0 和 ISMEAR = 0 是一样的,

  • 写INCAR的时候,不要使用 tab,用空格替换tab;

  • 官网有些旧的文件可能用的不是 # 号,而是 !。 大家记住: ! 可能会出错。

INCAR的详解

SYSTEM

SYSTEM 后面是该计算的说明。你的这个任务算的是什么,目的是什么,体系是什么?等等,这写都可以随便写在里面。随便的意思就是可以任意写:

  • SYSTEM = O atom 和 SYSTEM = I LOVE BigBro 和 SYSTEM = VASP, 除了多出几个字符外,对计算没有什么影响。
  • 不建议大家在这一行里写一堆乱七八糟的东西。
  • 当然,这一行有或者没有,对计算结果不会有任何影响,看着不爽也可以直接删除。

ISMEAR

ISMEAR这一项,目前需要记住的是:

  • 1)不同的值对应的是不同的展宽方法
  • 2)对于分子,原子的计算用0

下面是VASP官网的一些解释,新手暂时看不懂不要紧,把需要记住的这两条死死记住就可以了。

  • 对于半导体和绝缘体体系,ISMEAR的值取绝对不能大于0, 一般用0;
  • 对所有体系,如果想获取更加精确能量的时候用-5:但使用-5的时候,K点数目小于3则程序会罢工;
  • K 点少,半导体或者绝缘体,那么只能用 ISMEAR = 0;
  • 在DOS能带计算中,使用ISMEAR= -5 用于获取精确的信息。
  • 对于金属来说,ISMEAR的取值一般为0,1;
  • 保守地说,ISMEAR = 0 (Gaussian Smearing) 可以满足大部分的体系(金属,导体,半导体,分子);
  • 如果不知道怎么取ISMEAR,1)直接用0;2)测试不同的值对计算的影响。

SIGMA:

SIGMA的取值和ISMEAR息息相关,也就是和ISMEAR这个参数同时出现,设定。下面是一些基本的介绍:

  • 如果用了ISMEAR = -5; SIGMA的值可以忽略,也可以不管。(对于所有体系都适用);

  • 对于金属: ISMEAR = 1 或者0,非金属: ISMEAR= 0 的时候,一般取 SIGMA = 0.10 即可,默认值是0.20。不放心的话,用0.05。

  • 对于气体分子,原子体系(也就是你把分子或者原子放到一个box里面):死死记住下面组合就可以了, ISMEAR = 0; SIGMA = 0.01。

不过很多人都不放心,为了保险想测试一番。标准是: SIGMA的取值要保证OUTCAR 中的 entropy T*S 这一项,平均到每个原子上,要小于 1-2 meV。检查的时候可以用这个命令:

1
grep 'entropy T'  OUTCAR

注意1:这里有两个单引号,不要输入的时候漏掉。

用这个命令,得出的能量除以体系中原子的数目(也就是平均到每个原子上),然后再和 0.001 eV 比较。如果小于,SIGMA取值OK,如果大于,再换个小点的数值进行测试。

注意2:这里的说的entropy,是因为ISMEAR展宽这个计算方法引入的,跟我们物理化学书里面的entropy完全是两码事。后面我们会介绍如何通过频率分析计算物理化学里面的Entropy。

INCAR的保存

输入完上面的几行,我们就可以保存INCAR文件了。这里需要注意的是:INCAR后面没有尾缀,所以:INCAR.txt是错误的。为避免这个问题:

  • Notepad++ 保存的时候,文件名为: INCAR,保存类型选择 Alltypes (.)。
  • 用Vim的筒子们直接将前面的内容保存成INCAR即可。

前面说了很多,对新手,可能会犯晕。不过不用担心,只要记住关键三点,我们就圆满完成本节的任务

  • INCAR是纯文本没有尾缀;
  • 算原子或者分子时:ISMEAR = 0, SIGMA = 0.01
  • Windows用户请使用Notepad++作为文本编辑器,不要使用自带的记事本或者写字板!
文章目录
  1. 1. 简单说明
  2. 2. INCAR 的输入工作
  3. 3. INCAR的详解
    1. 3.1. SYSTEM
    2. 3.2. ISMEAR
    3. 3.3. SIGMA:
  4. 4. INCAR的保存
/* */