对于含过渡金属或稀土金属元素的材料,使用DFT+U的方法可以更好地计算局域态电子(d/f轨道),即添加Hubbard-U参数,DFT+U方法可获得与实验比更准确的磁矩和带隙,abinit官网上有教程:https://docs.abinit.org/tutorial/dftu/。通常需要设置的参数如下:
usepawu 1 #use DFT + U method. one (for the FLL method) and two (for the AMF method)
lpawu 2 -1 -1 # 2 for d-orbit, 3 for f-orbit, -1 not use,角动量
upawu 4.0 0. 0. eV #不同元素的U值,这里是三个类型原子,第一个元素加入4 eV U值
#the screened Coulomb interaction between electrons
jpawu 0.0 0. 0. #J值, the screened exchange interaction
通常加入这4个参数设置即可,对于更复杂和精确的设置,加入dmatpawu 和usedmatpu参数,设置角动量分量的密度矩阵。
那么如何设置U值?一般查阅文献,根据经验,例如Fe原子,一般加4 eV,还可以进行测试,比如使用不同U值计算晶格常数的准确度确定U值,也可以利用Abinit里面的Cococcioni方法进行测试,例如首先运行:
#Unit cell
acell 3*5.42
chkprim 0 # 0: do not check if uc primitive
rprim 1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.00
#Spin polarization
nsppol 2 #1 unpolarized / 2 polarized
spinat 0 0 2.843062
0 0 2.843062
#Definition of the atom types
ntypat 1
znucl 26
#Definition of the atoms
natom 2
typat 2*1 # atomic types
xred
0.0 0.0 0.0
0.5 0.5 0.5
ecut 8 # Energy cutoff
pawecutdg 20 # pawecutdg > 2*ecut
nband 25 # Fe_2 minband=17
#Definition of the SCF procedure
nstep 15 # max number SCF cycles
tolvrs 10d-12
#Definition of the k-point grid
kptopt 1 # 1: automatic generation of k points
ngkpt 3 3 3 # n x n x n
nshiftk 1
shiftk 0.5 0.5 0.5
#Smearing
occopt 4
tsmear 0.05 eV
#DFT+U
usepawu 1 # 1 at lim dble cnt / 2 rnd m fld dle cnt
lpawu 2 # ang moments corrrected
#Save disk space & Miscelaneous
prteig 0
prtden 1 # This is the default value
#PAW atomic data
outdata_prefix = "tudet_1.o"
其次,把读取的波函数文件作为输入文件,运行:
# 2 atomic supercell
acell 3*5.42
chkprim 0 # 0: do not check if uc primitive
rprim 1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.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.0 0.0 0.0
0.5 0.5 0.5
ecut 8 # Energy cutoff
pawecutdg 40 # pawecutdg > 2*ecut
nband 25 # Fe_2 minband=17
#Definition of the k-point grid
kptopt 1 # 1: automatic generation of k points
ngkpt 3 3 3 # n x n x n
nshiftk 1
shiftk 0.5 0.5 0.5
#Smearing
occopt 4
tsmear 0.05 eV
#DFT+U
usepawu 1 # 1 at lim dble cnt / 2 rnd m fld dle cnt
lpawu 2 # ang moments 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.1 eV # default, size of the potential shift
macro_uj 1 # activate determination of U
pawujrad 2.66866 # optional, radius ASA-sphere to which U should be extrapolated
#Only to accelerate test
irdwfk 1 # default for macro_uj = 1
# nline 2
# nnsclo 2
tolvrs 10d-9 # default for macro_uj = 1
#Save disk space
prteig 0
prtwf 0
prtden 0
#PAW atomic data
indata_prefix = "tudet_1.o"
对于老版本的8点几的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
作为学习记录,本文仅供参考!