四时宝库

程序员的知识宝库

Abinit教程-DFT+U计算(dft +u)

对于含过渡金属或稀土金属元素的材料,使用DFT+U的方法可以更好地计算局域态电子(d/f轨道),通过添加Hubbard-U参数,DFT+U方法可获得与实验比更准确的磁矩和能带带隙,abinit官网上有教程:
https://docs.abinit.org/tutorial/dftu/

通常需要设置的参数如下:
usepawu1 #use DFT + U method. one (for the FLL method)and two (for the AMF method)lpawu2-1-1 # 2 for d-orbit, 3 for f-orbit, -1 not use,角动量upawu4.00.0.eV #不同元素的U值,这里是三个类型原子,第一个元素加入4 eV U值 #thescreened Coulomb interaction between electronsjpawu0.00.0. #J值, the screened exchange interaction

加入这4个变量即可,对于更复杂和精确的设置,加入dmatpawu 和usedmatpu参数,设置角动量分量的密度矩阵。upawu和jpawu分别设置U值和J值,默认为Hartree单位,所以要注明eV单位,不加U的原子设为0,lpawu设置需要加U的原子以及轨道类型。


那么如何确认U值大小?一般查阅文献,根据经验,例如Fe原子,一般加4 eV,不确定的原子可以进行测试,比如使用不同U值进行弛豫,计算晶格常数和晶胞大小,与实验值进行比较确定合适的U值,也可以通过计算材料的性质如磁性、介电常数等与实验值比较确定合适的U值,在Abinit中也可以利用Cococcioni方法进行测试,就像在VASP中貌似有cRPA方法可以估算U值,Cococcioni方法如下,以铁原子为例,首先运行:


#Unit cell acell 3*5.42 chkprim 0 # 0: donot check if uc primitive rprim 1.000.000.00 0.001.000.00 0.000.001.00
#Spin polarization nsppol 2 #1unpolarized / 2 polarized spinat 00 2.843062 00 2.843062
#Definition of the atom types ntypat 1 znucl 26
#Definition of the atoms natom 2 typat 2*1 # atomic types xred 0.00.00.0 0.50.50.5 ecut 8 # Energycutoff pawecutdg 20 #pawecutdg > 2*ecut nband 25 # Fe_2minband=17
#Definition of the SCF procedure nstep 15 # max number SCF cycles tolvrs10d-12
#Definition of the k-point grid kptopt 1 # 1: automatic generation of k points ngkpt 333 # n x n xn nshiftk 1 shiftk 0.50.50.5
#Smearing occopt 4 tsmear 0.05eV
#DFT+U usepawu 1 # 1 at limdble cnt / 2 rnd m fld dle cnt lpawu 2 # angmoments corrrected
#Save disk space & Miscelaneous prteig 0 prtden 1 # This isthe default value
#PAW atomic data outdata_prefix="tudet_1.o"


其次,把读取的波函数文件作为输入文件,运行:

# 2 atomic supercell acell 3*5.42 chkprim 0 # 0: donot check if uc primitive rprim 1.000.000.00 0.001.000.00 0.000.001.00 nsppol 2 
#Definition of the atom types ntypat 1 znucl 26
#Definition of the atoms natom 2 typat 2*1 # atomic types xred 0.00.00.0 0.50.50.5 ecut 8 # Energycutoff pawecutdg 40 #pawecutdg > 2*ecut nband 25 # Fe_2minband=17
#Definition of the k-point grid kptopt 1 # 1: automatic generation of k points ngkpt 333 # n x n xn nshiftk 1 shiftk 0.50.50.5
#Smearing occopt 4 tsmear 0.05eV
#DFT+U usepawu 1 # 1 at limdble cnt / 2 rnd m fld dle cnt lpawu 2 # angmoments corrrected nsym 48 #nsym&symrel: break cubic symmetry of crystal: allow #individual ionicoccupations symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0-1 0 0 0-1 -1 0 0 0 1 0 0 0-1 1 0 0 0-1 0 0 0 1 -1 0 0 0-1 0 0 0 1 1 0 0 0 1 0 0 0-1 1 0 0 0-1 0 0 0-1 -1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0-1 0 -1 0 0 0 0-1 0-1 0 1 0 0 0 0-1 0 1 0 -1 0 0 0 0 1 0-1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0-1 0 1 0 -1 0 0 0 0-1 0-1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0-1 -1 0 0 0-1 0 0 0-1 1 0 0 0-1 0 0 0 1 -1 0 0 0 1 0 0 0-1 -1 0 0 0 1 0 0 0 1 1 0 0 0-1 0 0 0 1 -1 0 0 0-1 0 0 0-1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 -1 0 0 0 0-1 0-1 0 -1 0 0 0 0 1 0-1 0 1 0 0 0 0-1 0 1 0 -1 0 0 0 0-1 0 1 0 1 0 0 0 0 1 0-1 0 1 0 0 0 0-1 0-1 0 -1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0-1 0 0 0-1 -1 0 0 0-1 0 0 0 1 -1 0 0 0 1 0 0 0-1 1 0 0 0-1 0 0 0-1 1 0 0 0 1 0 0 0 1 -1 0 0 0 1 0 0 0-1 -1 0 0 0-1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0-1 0-1 0 -1 0 0 0 0-1 0 1 0 -1 0 0 0 0 1 0-1 0 1 0 0 0 0-1 0-1 0 1 0 0 0 0 1 0 1 0 -1 0 0 0 0 1 0-1 0 -1 0 0 0 0-1 0 1 0 1 0 0 pawujat 1 # default,the atom on which U is determined pawujv 0.1eV # default, size of the potential shift macro_uj 1 # activatedetermination of U pawujrad 2.66866 #optional, radius ASA-sphere to which U should be extrapolated
#Only to accelerate test irdwfk 1 # defaultfor macro_uj = 1 # nline 2 # nnsclo 2 tolvrs 10d-9 # defaultfor macro_uj = 1
#Save disk space prteig 0 prtwf 0 prtden 0
#PAW atomic data indata_prefix="tudet_1.o"


对于老版本的Abinit,outdata_prefix和indata_prefix均读不出来,所以可以删掉这两行,要在第二次计算时读入第一次计算的文件,只需将abo.复制为abi.即可。


最后在输出的.out文件中找到计算的U值:

 URES ii nat r_max U(J)[eV] U_ASA[eV] U_inf[eV] URES 1 2 4.69390 3.86321 3.10851 2.71778 URES 2 16 9.38770 7.28015 5.85793 5.12160 URES 3 54 14.08160 7.60761 6.12142 5.35197 URES 4 128 18.77540 7.67652 6.17686 5.40045 URES 5 250 23.46930 7.69879 6.19478 5.41611

nat代表原子数,其中包含了不同的超胞,U(J)即为计算的U值。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接