yhli0906的个人博客分享 http://blog.sciencenet.cn/u/yhli0906

博文

分享一个确定Wannier90能量窗口的脚本

已有 6838 次阅读 2020-12-22 22:46 |个人分类:QE使用经验|系统分类:科研笔记

能量窗口(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条,导致如下错误:

1.png

又或者inner window中能带数大于4条,导致如下错误:

2.png

这时就需要微调能量窗口,直到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点在统一能量区间内的能带数还是差别很大的。所以花功夫仔细调节。



https://wap.sciencenet.cn/blog-2909108-1263724.html

上一篇:多体微扰理论系列教程:Yambo编译
下一篇:分享一个管理环境变量的程序
收藏 IP: 202.114.78.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-23 15:08

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部