||
能量窗口(outer window和inner/frozen window)是构造Wannier函数时非常重要的参数,设置过程繁琐(详见http://blog.sciencenet.cn/blog-2909108-1154273.html),且容易出错。在这里分享一个辅助确定能量窗口的脚本engwin.py。该脚本目前支持VASP,QE和FLEUR,下载地址为https://github.com/yhli1016/misc/tree/master/wannier90
在确定能量窗口的时候,有两类基本操作:给定能带指标求能量范围,和给定能量范围求能带数目。前者用于初步确定能量窗口的大概范围,后者用于能量窗口微调,直到outer window中能带数目不低于num_wann,inner window中能带数目不高于num_wann。
假设我们要拟合第5-8条能带,并将第3-4和第9-10条能带用于解纠缠,那么num_wann应该设为4。outer window的下限就应该是第3条能带的最低值,上限为第10条能带的最高值。inner window的下限为第5条能带的最低值,上限为第8条能带的最高值。但由于不同的能带在能量区间上往往会重合,这样设置的outer window中的能带数可能小于4条,导致如下错误:
又或者inner window中能带数大于4条,导致如下错误:
这时就需要微调能量窗口,直到outer window中能带数大于等于4,inner window中能带数小于等于4。
engwin.py实现了上述两种操作。确定给定能带的能量范围时,运行方式为:
[me@jacs scf]$ ./engwin.py EIGENVAL e 5 emin = -7.504688 emax = -4.671160
第一个参数"e"表明使用“确定能量范围”的功能,第二个参数表明关注第几条能带。输出结果中的emin和emax分别是该能带能量最低值和最高值。
确定给定能量范围内有多少能带时,运行方式为:
[me@jacs scf]$ ./engwin.py EIGENVAL n -1.5 2.5 ik = 1, nbnd = 12 ik = 2, nbnd = 10 ik = 3, nbnd = 10 ik = 4, nbnd = 12 ik = 5, nbnd = 8 ik = 6, nbnd = 8 ik = 7, nbnd = 8 ik = 8, nbnd = 6 ik = 9, nbnd = 10 ik = 10, nbnd = 10 ik = 11, nbnd = 12 ik = 12, nbnd = 8 ik = 13, nbnd = 8 ik = 14, nbnd = 8 ik = 15, nbnd = 8 ... ... ... ...
第一个参数"n"表明使用“确定能带个数”功能,后面的两个实数为能量范围的下限和上限。输出结果为每个k点在此能量区间内的能带数目。由输出结果可知,不同K点在统一能量区间内的能带数还是差别很大的。所以花功夫仔细调节。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-14 11:54
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社