Ex07 VASP的输出文件(三)
CONTCAR
、OSZICAR
我们已经大体了解了一下,这一节我们我们学习VASP的另一个极其重要的输出文件:OUTCAR
。前面我们介绍到OSZICAR
中包含了体系结构优化,电子结构迭代收敛的简单信息。OUTCAR
中也包含这些信息,而且比OSZICAR
的内容更加详细。此外,计算的参数设置(INCAR
中有的,以及默认的),K点的设置,赝势的基本信息,VASP
的版本,体系的几何结构以及电子性质相关的内容,计算的时间等,也都包含在OUTCAR
中。所以说,OUTCAR
是关于我们当前计算的一个非常全面的,多方位的信息汇总。
信息太多,VASP官网也没有对OUTCAR
一个很详细地描述,大部分都是穿插在INCAR的计算参数中介绍的。这是因为(本人自己瞎猜的):
VASP
可以计算的性质很多,每一个特定的任务都有其对应的输出内容,这就导致了OUTCAR
的复杂多样性,比如说优化结构、频率、声子谱,能带、DOS
等计算等,这些都会有特定的输出,需要用户根据自己的计算内容去学习;- 另外一个原因就是里面的条目太多了,每一项单独解释都需要花费大量的时间。
信息多,就会容易让人眼花缭乱,不知所措。本节,我们就理一理思路,揭开OUTCAR
神秘的面纱,让大家心里不至于那么恐慌。之前我们说过,VASP
有很多输出文件,日常用的也就那么几个,有些估计等你文章发表了都不一定能用上。这也同样适用于OUTCAR
中的信息,虽然多,但大部分基本用不到。
首先要告诉大家的是,VASP
各个输出部分之间用很长的横杠分割(——————————-),当你看到横杠的时候,就知道要进入结果的下一个部分内容了。举个OUTCAR开头
的例子。
1 | vasp.5.4.4.18Apr17-6-g9f103f2a35 (build Sep 22 2017 10:53:27) complex |
VASP
的版本信息,在多少个核上运行。所以,如果你不知道,自己的任务是VASP哪个版本计算的,也不知道如何去VASP
的安装目录查找版本信息,可以运行一下,然后在OUTCAR
的开头去找。可以看到,后跟着一堆-
,说明要进入下一部分内容(计算体系,参数)的描述了。分别是:POTCAR
,POSCAR
,KPOINTS
,以及INCAR
的信息。
1 | ----------------------------------------------------------------------------- |
基本上每次运行的时候,(即使你的输入是正确的),VASP
都会输出一个大大的WARNING
来吓唬你,不用担心,无视即可。但如果你的计算失败了,这个警告信息或许(个人感觉基本没用)对你排查错误可能会有所帮助。 WARNING
下面是POTCAR
的基本信息,如果你想通过OUTCAR
查看POTCAR中
的元素时,可以使用下面的命令:
1 | grep POTCAR OUTCAR |
ZVAL
是该POTCAR
中对应元素的价电子,这里氧原子含有6个外层价电子。你可以自行对比下POTCAR
中的内容。再往下,就是POSCAR
的内容:坐标格式,原子位置,以及晶胞的形状大小。
1 | -------------------------------------------------------------------------------------------------------- |
体系的对称性以及点群操作相关的信息,在这里我们的体系是立方体,为O_h
的点群,有48个对称操作。群论的知识大师兄早已原封不动地还给老师了,在这里就不再详细介绍了…
K点信息:想查看K点个数:grep irreducible OUTCAR
或者 grep irre OUTCAR
1 | Subroutine IBZKPT returns following result: |
下一部分就是INCAR
的参数:
1 | SYSTEM = O atom |
计算参数详情(默认的参数值以及代表的意义也列出来了,这个地方大家仔细看下, 一些不常见的参数,VASP
会自动采用默认值。上面给我们的启示就是:不懂就不要写,默认就可,很多默认的参数也没必要在INCAR
里面再额外写一遍!强调一下,不知道的参数,不要瞎往INCAR
里面放!新手的话经常会加一些乱七八糟的参数,导致计算错误。)
在统计完任务的基本输入后,VASP
会总结一下本计算的文字描述,任务类型,体系大小,K点数目,计算所需的内存等信息。然后开始进入正式的计算部分:
1 | -------------------------------------------------------------------------------------------------------- |
对于O原子的计算来说,就是一个离子步内,电子步的迭代。这里我们只展示一个电子步的迭代信息即可,剩下的格式是一样的。大家在自己查看的时候注意能量在不同迭代步数中的变化。
1 | --------------------------------------- Iteration 1( 1) --------------------------------------- |
每一电子步完成后,输出结果同时在OSZICAR
中更新一行。
其中各项的具体含义:
alpha Z and the Ewald energy define the electrostatic interaction of the ions in a compensating electron gas. The alpha Z component deals with the divergent parts (G=0). The following parts are the Hartree and exchange correlation energy as defined in the Kohn-Sham Hamiltonian. The entropy part stems from the smearing (using the free energy as variational parameter, electronic entropy), EBANDS from Kohn-Sham eigenvalues, and EATOM is the reference energy for the potential (which is defined in the POTCAR file).
(摘自:https://cms.mpi.univie.ac.at/vasp-forum/viewtopic.php?t=273)
迭代结束,输出主要的结果:费米能级以及能带信息。
Band 1
对应的是2个 2s 电子,
Band 2-4
对应的是4个2p电子。固体物理中,费米能级对应的是最高电子占据轨道的能量,也就是HOMO
,大家可以对比下band 2-4
的能量和费米能级的能量。
1 | -------------------------------------------------------------------------------------------------------- |
费米能级的获取:grep E-fermi OUTCAR
各个方向力的大小,体系的坐标(和CONTCAR
是一样的),以及体系的能量。下面第一行的意思是达到了我们设置的收敛标准,迭代停止了。(后面我们会详细介绍收敛相关的事项,大家先有个印象。)
1 | ------------------------ aborting loop because EDIFF is reached ---------------------------------------- |
上面的能能量有好几个,很多人不知道该用哪一个。前面我们讲解OSZICAR
的时候,告诉大家要使用E0后面的那个数值,那么在OUTCAR
中与E0
对应(相同)的是energy(sigma->0) =
后面的那个。所以,在今后的学习中,我们不要再提问使用OUTCAR中的哪个能量的问题了。提取能量的命令:
1 | grep without OUTCAR | tail -n 1 |
之所以用tail -n 1
是为了保证我们取的是最后一步的能量。O原子肯定就一步,但以后优化结构的时候,就有很多步了。这里有一点需要注意的是:前面出现了一个entropy
,也就是熵。但这个Entropy
是采用ISMEAR
方法而导致的,与物理化学中的熵这个概念不一样,如果你要计算熵,则需要通过计算频率,然后通过公式求解。看不懂不要紧:记住这里的Entropy
不是物化书中的就OK。
再往下是实际计算的内存和时间等信息,看到下面,说明计算正常结束了。
1 | -------------------------------------------------------------------------------------------------------- |
分析完前面的内容,大家会发现:具体到里面各项的含义以及各个细节上,还有很多值得讨论的地方,比如群论,薛定谔方程求解过程,POTCAR
的相关信息等。对于新手来说,看完本节,能大体浏览下来,知道各个部分包含什么内容就很不错了。
总结
本练习中,带领大家粗略浏览了一遍OUTCAR
各部分的信息。大家在浏览的时候时刻要思考:
- 这部分包含的什么内容,具有什么物理或者化学意义?
- 怎么用
grep 关键词
获取有用的信息等。 - 怎么获取体系的能量;知道用众多能量中的哪一个。
- 如何将
OUTCAR
的内容与计算的输入和输出文件关联起来。 - 由于计算内容的多样性,对于
OUTCAR
的详细解释,需要很多的时间和精力去完成补充。一次性解释清楚是不可能的事情,所以在后续的计算过程中,我们还会结合具体的例子进行讲解。
一般来说,等你计算上手之后,OUTCAR
里面的很多内容,可能等课题结束或者毕业了,都不会用到。更进一步说,你可能都不需要打开OUTCAR
了。因此,完全不用担心里面的很多内容不理解。但,这不是我们偷懒的理由,如果你想把VASP
学好,学精,这些都需要自己下功夫去琢磨,理解。