本文为由小强撰写的《VASP实用教程》第55篇,全系列约60篇,将在近期陆续更新。
1. 硅-G0W0能带结构插值
注:这个例子需要yambo的ypp后处理代码的最新版本。
- 概要:在G0W0水平上对从多体微扰理论中得到的硅的能带结构进行插值。使用yambo代码,准粒子修正(QP)被加到Kohn-Sham特征值上,而波函数保持不变。
- 目录:examples/example23/
- 输入文件
– silicon.scf 用于基态计算的PWSCF输入文件
– silicon.nscf 在统一网格上获得Bloch状态的PWSCF输入文件
– silicon.gw.nscf 用于在有许多空带的缩小网格上获得Bloch状态PWSCF输入文件
– silicon.pw2wan pw2wannier90的输入文件
– silicon.win wannier90的输入文件
– silicon.gw.win wannier90的输入文件(G0W0步骤)
– yambo.in yambo输入文件
– ypp.in ypp输入文件
【1】将输入文件从INPUT目录复制到一个工作目录(如WORK)。
【2】运行PWSCF获得硅的基态
pw.x < silicon.scf > scf.out
【3】运行PWSCF以获得Bloch状态的缩减网格。使用一个8×8×8的带,有很多带。(用yambo进行G0W0需要很多空带)。
pw.x < silicon.gw.nscf > nscf.gw.out
【4】使用k_mapper.py工具来寻找4×4×4统一网格到8×8×8缩小网格的索引
./k_mapper.py 4 4 4 "../examples/example23/WORK/nscf.gw.out"
使用输出结果来完成yambo.in输入文件(还需要指定要在多少个带上计算QP校正,这里你可以使用1到14的所有带)。然后,应该得到类似以下的内容:
1| 1| 1|14|
3| 3| 1|14|
5| 5| 1|14|
13| 13| 1|14|
…
【5】进入si.save目录并运行p2y。会创建一个SAVE文件夹,可以把它移到/WORK/目录中。
【6】从/WORK/目录中运行G0W0计算(记住,我们使用的是8×8×8的网格,但只在4×4×4的网格上计算QP校正。)
Yambo
【7】运行PWSCF获得统一k点网格上的Bloch状态
pw.x < silicon.nscf > nscf.out
【8】运行wannier90生成一个所需的重叠列表(写进silicon.nnkp文件)
wannier90.x -pp silicon
【9】运行pw2wannier90来计算Bloch状态之间的重叠,即初猜的投影(分别写在silicon.mmn和silicon.amn中)。
pw2wannier90.x < silicon.pw2wan > pw2wan.out
【10】运行wannier90计算MLWF
wannier90.x silicon
此时应该已经在DFT水平上得到了硅的插值能带。
【11】运行ypp计算(输入ypp)
此时应该得到一个名为silicon.gw.unsorted.eig的文件,其中包含统一的4×4×4网格上的QP修正。
【12】运行gw2wannier90.py脚本,使用QP校正对所有矩阵和文件进行重新排序、对齐和校正。
../../../utility/gw2wannier90.py silicon mmn amn
【13】运行wannier90计算MLWF
wannier90.x silicon.gw
此时应该已经得到了硅在G0W0水平的插值能带。
在完成了只针对价带的教程后,可以重复最后的步骤,用解耦法插值一些导带(代码已经作为注释存在于输入文件中)。
2.碲-陀螺效应
- 概要:计算三角形右旋碲中的陀螺效应,与文献[1]的计算类似
- 目录:examples/example24/
- 输入文件
– Te.scf 用于基态计算的PWSCF输入文件
– Te.nscf 在统一网格上获得Bloch状态的PWSCF输入文件
– Te.pw2wan pw2wannier90的输入文件
– Te.win wannier90的输入文件
为了方便起见,本例对没有自旋轨道的碲进行了处理。
【1】运行PWSCF获得碲的基态
pw.x < Te.scf > scf.out
【2】在统一的3×3×4的k点网格上运行PWSCF来获得Bloch状态
pw.x < Te.nscf > nscf.out
【3】运行wannier90生成一个所需的重叠列表(写入Te.nnkp文件)
wannier90.x -pp Te
【4】运行
–〈unk|umk+b〉重叠(写在Te.mmn文件中)
–初猜的投影(写在Te.amn文件中)
–〈unk+b1|Hk|umk+b2〉矩阵元素(写在Te.uHu文件中)
–〈ψnk|σi|ψmk〉自旋矩阵元素(将被写入Te.spn文件,但只有在包括自旋轨道的情况下,本例中没有这种情况)
pw2wannier90.x < Te.pw2wan > pw2wan.out
【5】运行wannier90计算MLWF
wannier90.x Te
【6】在wannier90.win文件中加入以下命令:
gyrotropic=true
gyrotropic_task=-C-dos-D0-Dw-K
fermi_energy_step=0.0025
fermi_energy_min=5.8
fermi_energy_max=6.2
gyrotropic_freq_step=0.0025
gyrotropic_freq_min=0.0
gyrotropic_freq_max=0.1
gyrotropic_smr_fixed_en_width=0.01
gyrotropic_smr_max_arg=5
gyrotropic_degen_thresh=0.001
gyrotropic_box_b1=0.2 0.0 0.0
gyrotropic_box_b2=0.0 0.2 0.0
gyrotropic_box_b3=0.0 0.0 0.2
gyrotropic_box_center=0.33333 0.33333 0.5
gyrotropic_kmesh=50 50 50
【7】运行postw90
来计算陀螺仪的特性:张量,D,,K,C(见用户手册):
postw90.x Te (串行执行)
mpirun -np 8 postw90.x Te(8个MPI进程并行执行的例子)
在K空间的整合被限制在H点周围的一个小区域。因此,它只对带隙附近的费米能级有效。而且我们需要将结果乘以2,以考虑到H'点。为了在整个布里渊区进行积分,我们需要去除gyrotropic_box_…参数
【8】现在将以上几行改为
gyrotropic=true
gyrotropic_task=-NOA
fermi_energy=5.95
gyrotropic_freq_step=0.0025
gyrotropic_freq_min=0.0
gyrotropic_freq_max=0.3
gyrotropic_smr_fixed_en_width=0.01
gyrotropic_smr_max_arg=5
gyrotropic_band_list=4-9
gyrotropic_kmesh=50 50 50
并计算出带间自然光活性
postw90.x Te (串行执行)
mpirun -np 8 postw90.x Te(8个MPI进程并行执行的例子)
参考文献:
[1] S. S. Tsirkin, P. Aguado Puente, and I. Souza, ArXiv e-prints (2017), arXiv:1710.03204 [condmat. mtrl-sci] .