HSE 杂化泛函计算电子性质 vasp能带处理
HSE 计算电子性质
众所周知,普通的semi-local(主要是指LDA 和GGA)方法计算带隙是有问题,一般低估1-2 个电子伏特。解决的办法就是用更精确的GW 或杂化泛函的方法。由于目前广泛使用的软件是VASP,而VASP 是很难使用GW 方法计算带隙的,所以这里主要讲用杂化泛函(HSE)的方法计算带隙。HSE 的理论实际是很简单的,大家可以自己找找资料,实在不懂的话,可以联系我。我这里主要讲操作流程和一些技巧。
一般来说分为以下几个部分。这里以PBE 函数为例说明,首先,用PBE函数进行正常的自恰计算,这里需要输出波函数和电荷密度;其次,用HSE函数进行自恰计算,这里最好用ALGO=damp;第三,用HSE 函数进行自恰计算,去除ALGO 参数,这里使用DAV 算法;最后,计算能带和态密度。
注意,有时可以将第三步和第四步合并。
第一步
INCAR
SYSTEM = scf
ENCUT = 500
EDIFF = 1e-5
IBRION = -1
ISIF = 2
NSW = 0
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
#Wavefunction and charge
LWAVE = T
LCHARG = T
这里是正常计算,不多讲。
第二步
SYSTEM = scf
ENCUT = 500
EDIFF = 1e-5
IBRION = -1
ISIF = 2
NSW = 0
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
#Wavefunction and charge
LWAVE = T
LCHARG = T
LHFCALC = .TRUE.
HFSCREEN = 0.2
ALGO = Damped
TIME = 0.4
这里可以看出,多加的是后四行。
LHFCALC = .TRUE. #这里采取杂化泛函方法。
HFSCREEN = 0.2 #0.2 是HSE06; 0.3 是HSE03
ALGO = Damped
TIME = 0.4
后两行是为了更好的收敛,有的时候DAV 方法不收敛。值得注意的是,这种方法计算的本征矢量会有问题,即每个k 点能带的顺序会乱七八糟。但电荷密度和波函数是没有问题的。
第三步
SYSTEM = scf
ENCUT = 500
EDIFF = 1e-5
IBRION = -1
ISIF = 2
NSW = 0
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
#Wavefunction and charge
LWAVE = T
LCHARG = T
LHFCALC = .TRUE.
HFSCREEN = 0.2
在第二步的基础上,使用DAV 算法计算,好处是收敛较快,本征矢量没有任何问题。这一步的DOS 是没有问题的。
第四步,计算能带
首先说INCAR,
SYSTEM = scf
ENCUT = 500
EDIFF = 1e-5
IBRION = -1
ISIF = 2
NSW = 0
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
#Wavefunction and charge
LWAVE = T
LCHARG = T
LHFCALC = .TRUE.
HFSCREEN = 0.2
和第三步没有差别。主要是k点的设置,由于HSE 方法无法从电荷密度进行非自恰,所以只能用自恰的方法计算能带。
通常是先把IBZKPT 拷贝成KPOINTS,
Automatically generated mesh
75
Reciprocal lattice
# (此处省略大量k点数据)
这里第二行75,意味着一共有75 个k 点,接下来会有这75 个k 点,后面跟着的是权重(如果大家不理解什么是权重,可以联系我)。这些权重为0的,即为想计算的能带k 点。大家仔细观察,就能体会出它是能带的k 点了,因为k 点是连续的。这里权重是0,意味着在自恰计算的时候,不会计算这些k 点,但是计算完后,会输出这些本征值。达到计算能带的目的。
之后,我的方法是在EIGENVAL 里删除自恰的k 点信息,之后就可以用正常的能带处理程序处理了。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)