本来一开始打算用QE来算的,结果QE新版本bandup都不支持,banduppy例子都报错无语子,还是VASP吧。
他这里给了四步作为参考,但是实际上主要就是跑一个均匀网格点的自洽,和一个高对称点上的非自洽,然后做反折叠
首先第一步得到超胞CHGCAR
输入文件参考BANDUP的example的第一步,提交任务之后得到CHGCAR
。
然后第二步主要是为了得到超胞非自洽计算的K点路径,这一步需要分别给出单胞和超胞的晶格坐标文件prim_cell_lattice.in
与supercell_lattice.in
。还有单胞的高对称K点路径
Kpoints along some high symmetry directions on the pcbz of Si (diamond structure)
23 27 9 29
Line-mode
Reciprocal
0.500 0.500 0.500 1 ! L
0.000 0.000 0.000 1 ! G
0.000 0.000 0.000 1 ! G
0.500 0.000 0.500 1 ! X
0.500 0.000 0.500 1 ! X
0.625 0.250 0.625 1 ! U
0.375 0.375 0.750 1 ! K
0.000 0.000 0.000 1 ! G
命令是bandup kpts-sc-get -no_symm_avg
这一步会生成KPOINTS_supercell.out
文件后面会用到。
-no_symm_avg
这个标签是为了减少需要计算的k点个数,减小计算量和WAVECAR大小。
然后是第三步
这一步利用前面第一步生成的电荷密度来计算高对称点的波函数
INCAR为
SYSTEM = Graphene
Flags which affect the runtime for parallel jobs (and don't change the results)
ALGO = Fast
LPLANE = .TRUE.
Start parameter for this Run:
ISTART = 0 ! job : 0-new 1-cont 2-samecut
ICHARG = 11 ! charge: 1-file 2-atom 10-const
LWAVE = T ! Write the WAVECAR file
LCHARG = F ! Do not write CHGCAR
Electronic Relaxation
EDIFF = 1E-7
Ionic Relaxation
IBRION = -1
ISIF = 2
NSW=0
Band Structure related values
ISMEAR = 0 ! Gaussian smearing
SIGMA = 0.025
NBANDS = 48
Precision
PREC = Normal
for consistency with static (total_energy) run:
NGX = 24; NGY = 24; NGZ = 24
NGXF = 48; NGYF = 48; NGZF = 48
ln -s ../step_1/CHGCAR CHGCAR
POSCAR POTCAR与第一步的一样,K点从第二步那个复制过来
cp ../step_2_*/KPOINTS_supercell.out KPOINTS
然后提交任务得到波函数WAVECAR
第四步就要开始做能带反折叠了,这一步其实就是一句命令,但是例子没有给它是怎么设置前边得到的波函数的信息的。这句命令是
bandup unfold -emin -13 -emax 6 -dE 0.050 -no_symm_avg
会生成一个unfolded_EBS_not-symmetry_averaged.dat
文件,画出来就行了。
Quantum Espresso
其实步骤也是差不多的,不同的地方主要在于首先bandup读取波函数的方式还是QE老的格式,QE在6.4开始采用了全新的存储方式,在此之前的版本也必须编译的时候加上一个标签
configure --disable-xml
而之后的版本有一个人开发了banduppy
声称能够解决问题,我还没试过。
另外不同的地方就在于第四步需要加一个指定prefix和outdir的标签
bandup unfold -qe -prefix TiSe2 -outdir ../step_3*/outdir -emin -2 -emax 2 -dE 0.005 -no_symm_avg