画能带结构图

0.前言

画能带结构图有三种方法,VASP,QE,Wannier90。注意,后两者的开始两步是一样的,不要混淆。本文使用Wannier90画能带结构。
在这里插入图片描述

1.Wannier90教程01 Si的价带

这个教程前四步是qe的流程,上图黄色。1,5加后头的是Wannier90教程。
QE画的能带图是完整能带图,wannier90在教程01中只画了价带,所以看上去不太一样。PS。他们的单位应该也不一样。

01_自洽

&control
calculation = 'scf'
restart_mode = 'from_scratch'
prefix = 'si'
pseudo_dir = 'pseudo/'
outdir = 'out/'
/
&system
ibrav = 0
nat = 2
ntyp = 1
ecutwfc = 25.0
ecutrho = 200.0
/
&electrons
conv_thr = 1.0d-10
/
ATOMIC_SPECIES
Si 28. Si.pbe-n-van.UPF
ATOMIC_POSITIONS crystal
Si -0.25 0.75 -0.25
Si 0.00 0.00 0.00
K_POINTS automatic
10 10 10 0 0 0
CELL_PARAMETERS bohr
-5.1 0.0 5.1
0.0 5.1 5.1
-5.1 5.1 0.0

02_bands.in

&control
calculation = 'bands'  !能带计算
restart_mode = 'from_scratch'
prefix = 'si'
pseudo_dir = 'pseudo/'
outdir = 'out/'
/
&system
nbnd=12   !要计算多少个带,有8个电子,4个占据价带,这个数是依据他俩选的,但应该不是相加
ibrav = 0
nat = 2
ntyp = 1
ecutwfc = 25.0
ecutrho = 200.0
/
&electrons
conv_thr = 1.0d-10
diago_full_acc = .true. !空带也和占据态用一样的精度对角化
/
ATOMIC_SPECIES
Si 28. Si.pbe-n-van.UPF
ATOMIC_POSITIONS crystal
Si -0.25 0.75 -0.25
Si 0.00 0.00 0.00
K_POINTS crystal_b
3
0.5 0.5 0.5 50
0. 0. 0. 50
0.5 0. 0.5 50
CELL_PARAMETERS bohr
-5.1 0.0 5.1
0.0 5.1 5.1
-5.1 5.1 0.0

pw.x -nk 2 -in bands.in > bands.out

03_bandsx

&bands
prefix = ’si’
outdir = ’out/’
filband = ’bands.dat’
lsym = .false.
/
bands.x < bandsx.in > bandsx.out

生成bands.dat文件

04_plotband.x

执行 plotband.x 代码(以交互方式)并回答其问题。

[user@ln01 exm01]$ q-e-qe-6.8/bin/plotband.x 
     Input file > bands.dat
     
Reading   12 bands at    101 k-points
Range:   -5.6990   20.5850eV  Emin, Emax, [firstk, lastk] > -6.0 10  
!#Emin, Emax 

high-symmetry point: -0.3536 0.3536 0.3536   x coordinate   0.0000
high-symmetry point:  0.0000 0.0000 0.0000   x coordinate   0.6124
high-symmetry point: -0.7071 0.0000 0.0000   x coordinate   1.3195

output file (gnuplot/xmgr) > bands.xmgr!输入你想要的生成文件名和格式

bands in gnuplot/xmgr format written to file bands.xmgr                                                                                                                                                                                                                                                      
output file (ps) > bands.ps !输入你想要的生成文件名
Efermi > 6.3865
!费米能,见scf.out"highest occupied level (ev):     6.3865"
deltaE, reference E (for tics) 1.0 6.3865
bands in PostScript format written to file bands.ps  

最后得到一张简单的能带结构图,直接打开.ps文件,或者用.xmgr文件自己画是一样的。
在这里插入图片描述

05_nscf.in

&control
calculation = 'nscf'
restart_mode = 'from_scratch'
prefix = 'si'
pseudo_dir = 'pseudo/'
outdir = 'out/'
/
&system
nbnd= 4 !将带数改为价带数4,价电子数,这个值可以在赝势里找到
ibrav = 0
nat = 2
ntyp = 1
ecutwfc = 25.0
ecutrho = 200.0
/
&electrons
conv_thr = 1.0d-10
diago_full_acc = .true.
/
ATOMIC_SPECIES
Si 28. Si.pbe-n-van.UPF
ATOMIC_POSITIONS crystal
Si -0.25 0.75 -0.25
Si 0.00 0.00 0.00
CELL_PARAMETERS bohr
-5.1 0.0 5.1
0.0 5.1 5.1
-5.1 5.1 0.0
!在输入文件最后加K点坐标
/q-e/wannier90-3.1.0-par/utility/kmesh.pl 4 4 4 >> nscf.in
pw.x < nscf.in > nscf.out

06_ex1.win

设置wanniar90的输入文件ex1.win

use_ws_distance = .true.

num_bands        =   4 !和nscf中用的一样
num_wann         =   4 !没有解纠缠的话和上一个值一样
num_iter         =  100

iprint           =    2
num_dump_cycles  =   10
num_print_cycles =   10

!! To plot the WFs
! restart                =  plot
wannier_plot           =  true
wannier_plot_supercell =  3
! wannier_plot_list      =  1,5

!! To plot the WF interpolated bandstructure
bands_plot      =  true
begin kpoint_path
L 0.50000  0.50000 0.5000 G 0.00000  0.00000 0.0000
G 0.00000  0.00000 0.0000 X 0.50000  0.00000 0.5000
end kpoint_path

!! !! Bond-centred s-orbitals
begin projections
f=-0.125,-0.125, 0.375:s
f= 0.375,-0.125,-0.125:s
f=-0.125, 0.375,-0.125:s
f=-0.125,-0.125,-0.125:s
end projections

begin atoms_frac
Si -0.25  0.75  -0.25
Si  0.00  0.00   0.00
end atoms_frac

begin unit_cell_cart
 bohr
-5.10   0.00   5.10
 0.00   5.10   5.10
-5.10   5.10   0.00
end unit_cell_cart

mp_grid  =  4 4 4  !nscf用的那个网格
begin kpoints
XXX
end kpoints

其他参数含义参见
https://github.com/wannier-developers/wannier90/raw/v3.1.0/doc/compiled_docs/user_guide.pdf

/kmesh.pl 4 4 4 >> ex1.win
注意!这里会生成四列数据,但是我们只要前三列,填在XXX位置
begin kpoints
XXX
end kpoints

07_完成wannier计算

1.预处理

wannier90.x -pp ex1

这会产生一个 ex1.wout 文件和 ex1.nnkp 文件,包含来自 Wannier90 输入文件的相关信息

/pw2wannier90.x < pw2wan.in > pw2wan.out 
!注意,这一步不能加nk

由于我们想在真实空间中绘制 Wannier 函数,因此我们还需要真实空间网格上的 unk® 波函数。因此,我们还在 06_pw2wan.in 中设置了 write_unk 标志,这将生成一组名称为 UNK00001.1、UNK00002.1 的文件……
最后,代码还将生成一个 ex1.eig 文件,其特征值位于初始 4×4×4 k 网格上。(注意:这不是获得绝缘子的 MLWF (最大局部化 Wannier 函数/maximally-localised Wannier functions)所必需的,而仅用于插值和能带绘图例程)。
请注意,运行pw2wannier90.x 要有 ex1.nnkp 文件。
计算重叠矩阵 Mmn(将写入 ex1.mmn 文件)和 Amn 矩阵(文件 ex1.amn)

08_获得 MLWFs

wannier90.x ex1

结束后输出文件ex1.wout
输出文件中比较特别的信息
:<-- DLTA 收敛性
:Final State 您会找到最大局部化 Wannier 函数的中心和扩展
在这里插入图片描述

要检查获得的 MLWF 是否正确,通常需要:将 Wannier 插值能带结构与从头算进行比较: 您可以尝试将在前面的步骤中获得的 ab-initio 能带结构图(qebands.agr)与wannier插值能带结构图(文件 ex1_band.dat 和 ex1_band.gnu)进行比较

画图脚本:punplot

set xtics nomirr
set x2tics
set xrange [*:*] noextend
set x2range [*:*] noextend
plot 'qebands.agr' w l, 'ex1_band.dat' axes x2y1 w l

注意!自己画图的画要注意横坐标的坐标单位转换。
请注意,Wannier90 代码还在 ex1_band.kpt 文件中输出用于插值的 k 点列表,可用于在同一网格上绘制能带结构。
因为这个例子只做了价带,所以这个图里只有三条价带
wannier画出来的
wannier画出来的在这里插入图片描述
QE最开始画出来的

绘制实空间 Wannier 函数并检查它们是否为实数:如果您要求 Wannier90 绘制 Wannier 函数,它还会在 ex1.wout 文件的末尾打印它们中每个函数的虚部和实部的比率: 检查该值是否很小。

可视化 Wannier 函数,这些函数在文件 ex1_00001.xsf、…中输出。直接将文件拖进 VESTA。
在这里插入图片描述

2.Wannier90教程01 Si的价带和导带

01_改nsc.in

前面都是一样的,05要改一下

&control
calculation = 'nscf'
restart_mode = 'from_scratch'
prefix = 'si'
pseudo_dir = 'pseudo/'
outdir = 'out/'
/
&system
nbnd= 12 !原来只有价带数,是4,现在改为12
ibrav = 0
nat = 2
ntyp = 1
ecutwfc = 25.0
ecutrho = 200.0
/
&electrons
conv_thr = 1.0d-10
diago_full_acc = .true.
/
ATOMIC_SPECIES
Si 28. Si.pbe-n-van.UPF
ATOMIC_POSITIONS crystal
Si -0.25 0.75 -0.25
Si 0.00 0.00 0.00
CELL_PARAMETERS bohr
-5.1 0.0 5.1
0.0 5.1 5.1
-5.1 5.1 0.0

02_改ex2.win

ex1.win改成ex2.win
需要改的量:

  1. num_bands = 12
  2. num_wann = 12 !CHANGE!更改为正确数量的 Wannier 函数数量
  3. dis_froz_max = 6.5 !CHANGE!原来没有这个量,能隙内的冻结窗口,设置最大能量,使用练习 1 中获得的能带图来获取这个值。具体选择方法看https://blog.csdn.net/lielie12138/article/details/125006013 第七部分
  4. dis_win_max = 17 !CHANGE!原来没有这个量,将解缠结的最大能量(标志 dis_win_max)设置为足够大的能量,以便为每个 k 点包含足够的带; 17.0 eV 应该是一个合理的值(检查该值在能带图中的位置)。(说实话我没找到,大概是图画的不对,凑合吧)
  5. !! !! Bond-centred s-orbitals
    !CHANGE!
    !!将晶胞中每个 Si 原子的投影更改为 4 sp3 轨道
    begin projections
    Si:sp3
    end projections
    这些量的具体选择方法看https://blog.csdn.net/lielie12138/article/details/125006013 第七部分
    在这里插入图片描述
use_ws_distance = .true.

num_bands        =   12 !CHANGE!这里改了,改成了12
num_wann         =   12 !CHANGE!更改为正确数量的 Wannier 函数
num_iter         =  100

iprint           =    2
num_dump_cycles  =   10
num_print_cycles =   10

dis_froz_max = 1 !CHANGE!原来没有这个量,能隙内的冻结窗口,设置最大能量,使用练习 1 中获得的能带图来获取这个值。
dis_win_max = 17 !CHANGE!原来没有这个量,将解缠结的最大能量(标志 dis_win_max)设置为足够大的能量,以便为每个 k 点包含足够的带; 17.0 eV 应该是一个合理的值(检查该值在能带图中的位置)。


!! To plot the WFs
! restart                =  plot
wannier_plot           =  true
wannier_plot_supercell =  3
! wannier_plot_list      =  1,5

!! To plot the WF interpolated bandstructure
bands_plot      =  true
begin kpoint_path
L 0.50000  0.50000 0.5000 G 0.00000  0.00000 0.0000
G 0.00000  0.00000 0.0000 X 0.50000  0.00000 0.5000
end kpoint_path

!! !! Bond-centred s-orbitals
!CHANGE!
!!将晶胞中每个 Si 原子的投影更改为 4 sp3 轨道
begin projections
Si:sp3
end projections

begin atoms_frac
Si -0.25  0.75  -0.25
Si  0.00  0.00   0.00
end atoms_frac

begin unit_cell_cart
 bohr
-5.10   0.00   5.10
 0.00   5.10   5.10
-5.10   5.10   0.00
end unit_cell_cart

mp_grid  =  4 4 4  !nscf用的那个网格
begin kpoints
XXX
end kpoints

剩下的正常运行

03_输出检查

1.收敛标志
<‌<‌< Disentanglement convergence criteria satisfied >‌>‌>
2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值