3.5.8 能带与态密度计算总结#
我们总结一下能带图和电子态密度的计算
(1)首先有一个结构优化完的结构,并取标准原胞(用vaspkit-602生成)作为POSCAR。
(2)对原胞POSCAR进行静态自洽scf计算,得到CHGCAR文件。
(3)基于CHGCAR,分别做band和dos的nscf计算(ICHARG=11,读取CHGCAR)
算DOS时ISMEAR=-5,且k点密度要大,建议2πx0.02以上.(如果算不动,可以适当降低);并且NEDOS取大一些,建议2001。Band计算时ISMEAR不取-5,一般用0或1. band计算和dos计算是平行的,没有先后关系。Dos计算和band计算INCAR中建议开启LORIBIT=11,以获得原子/轨道投影数据。
(4)数据后处理+画图(这里采用的是vaspkit程序提取数据)
尤其要注意的是,在对band数据提取时,一定要从scf计算(或者dos计算)的DOSCAR中选取正确的费米能级(尤其是金属),不能直接从band计算生成的DOSCAR中读取费米能级。但有一些例外,对于一些半导体材料,我发现从scf或是dos的DOSCAR中读取费米能级,得到的能带仍然无法使得价带顶处在0eV位置,而是略有偏差。此时,我的建议是从vaspkit生成的BAND_GAP文件中读取价带顶(VBM)的能量值,并将以此作为FERMI_ENERGY.in中的费米能级,再重新运行vaspkit生成能带数据。但有时候vaspkit识别出来的VBM和CBM可能出现bug,需要依赖检验甄别。
态密度纵轴DOS的具体值是有物理含义的,因此其单位不可乱写,详细介绍在3.5.5(2)中。
(5)如果体系有磁性,或者要考虑加U等,那从relax开始的所有计算都需要在INCAR中加上这些模块的相应参数。
(6)能带计算时,有时候最上面一些能带可能呈现锯齿形,这是INCAR中NBANDS不够导致,在band计算那一步设置更大的NBANDS重新从band开始算即可。NBANDS默认取0.6倍的体系价电子数,可以考虑增加到0.7甚至0.8.
(7)当你熟练理解能带计算中倒空间路径时,可以不取标准原胞,而取晶胞进行能带计算。注意,此时的KPATH.in和标准原胞完全不一样。比如一个含2原子的bcc晶胞结构,其晶胞的KPATH.in应该用一个simple cubic结构的路径。可以手动建一个simple cubic的POSCAR,再用vaspkit303生成KPATH.in。
问题1:计算band和dos时如果不采用原胞,会怎么样?
算dos时采用n倍超胞得到的态密度数据就是原胞的n倍(由于计算精度可能略有差异),因此影响不大。但是算band时涉及布里渊区高对称点正确选取的问题,因此一般需要采用原胞,详见:http://vaspkit.cn/index.php/55.html。如果你是个经验丰富的老手,可以取晶胞,此时路径就不能取vaspkit根据当前POSCAR直接生成的KPATH.in
问题2:算DOS时ISMEAR一定要-5吗?
可以自行对比1和-5以及0时得到的band图结果。并且自行对比不同smearing方法下的dos数据图。一般情况下,ismear=-5得到的dos数据更合理,但对于某些d电子很多/分子体系,取-5会出现很多尖刺。如果只关心DOS图中峰的位置,那在dos计算中用ISMEAR=0也可以。但我个人测试时,发现ISMEAR=0和1的情况下,不断增大K点,并不能使得DOS在费米能级附近的曲线收敛,ISMEAR=-5可以。
问题3:直接从scf那一步中提取态密度数据可以吗?
可以。只要设置NEDOS=2000,LORBIT=11以输出更详细的态密度数据即可。但一般来说算态密度比一般的自洽计算需要更密的k点以获得收敛的结果,因此通常都会先做一步自洽得到CHGCAR,再基于该CHGCAR用更密的k点计算。直接一次性取很密的k点做dos计算也是可以的,此时DOS计算的INCAR取ICHARG=2即可。原则上态密度数据也是需要做k点的收敛性测试,当你不想测试时,用auto50或者vaspkit-的0.02密度对应的KPOINTS是个合适的选择。有些体系可能需要Auto100才能收敛。