本文为由小强撰写的《VASP实用教程》第56篇,全系列约60篇,将在近期陆续更新。
1. 砷化镓-非线性位移电流
-
概要:计算反转不对称的ffc砷化镓的非线性位移电流。在准备这个例子时,阅读参考文献[1]可能会有帮助。
-
目录:examples/example25/
-
输入文件
– GaAs.scf 用于基态计算的PWSCF输入文件
– GaAs.nscf 在统一网格上获得Bloch状态的PWSCF输入文件
– GaAs.pw2wan pw2wannier90的输入文件
– GaAs.win wannier90的输入文件
【1】运行PWSCF获得砷化镓的基态
pw.x < GaAs.scf > scf.out
【2】运行PWSCF获得砷化镓的基态
pw.x < GaAs.nscf > nscf.out
【3】运行wannier90生成一个所需的重叠列表(写入GaAs.nnkp文件)
wannier90.x -pp GaAs
【4】运行pw2wannier90来计算
–自旋体布洛赫状态之间的重叠〈unk|umk+b〉(写在GaAs.mmn文件中)
–初猜的投影(写在GaAs.amn文件中)
pw2wannier90.x < GaAs.pw2wan > pw2wan.out
【5】运行wannier90计算MLWF
wannier90.x GaAs
【6】运行postw90来计算非线性位移电流
postw90.x GaAs(串行执行)
mpirun -np 8 postw90.x GaAs(8个MPI进程并行执行的例子)
位移电流σabc
砷化镓的位移电流张量只有一个有限的独立分量,即σxyz。为了计算此值,设置如下:
berry = true
berry_task = sc
与线性光导率一样,位移电流是一个与频率有关的量。频率窗口和步长由kubo_freq_min、kubo_freq_max和kubo_freq_step控制,这在用户指南中有解释。
位移电流需要对布里渊区进行积分。插值的k网格是由berry_kmesh控制的,相关设置为
berry_kmesh = 100 100 100
我们还需要输入以eV为单位的费米能级的值:
fermi_energy = [insert your value here]
由于在计算位移电流时涉及到中间状态的总和,我们需要考虑一个小的拓宽参数,以避免由于可能的退化而产生的数值问题(见文献[1]中公式(36)的参数和相关讨论)。这个参数是由sc_eta控制的。
最后,sc_phase_conv控制用于Bloch和的相位约定。sc_phase_conv=1使用所谓的紧密结合约定,即Wannier中心被纳入相位,而sc_phase_conv=2则将Wannier中心排除在相位之外。这两种可能的约定在文献[2]中作了解释。请注意,整个位移电流谱并不取决于所选择的约定,但组成它的各个项却取决于所选择的约定。
在输出时,程序生成了一组18个名为SEED-sc_***.dat的文件,它们对应于位移电流的不同张量分量(注意,考虑到σabc是对称的,剩下的9个分量直到3×3×3 = 27可以从输出的18个分量中获得在b ↔ c指数交换下)。对于绘制GaAs σxyz的唯一有限位移电流分量(单位为A/V2),如参考文献[1]中的图3的上图。
myshell> gnuplot
gnuplot> plot ’GaAs-sc_xyz.dat’ u 1:2 w l
2.砷化镓–选择性局域和受限中心
-
概要:按照文献[3]中的例子,将选择性局部Wannier函数(SLWF)方法应用于砷化镓(GaAs)。该文献是本教程的重要参考。
-
目录:examples/example26/
-
输入文件
– GaAs.scf 用于基态计算的PWSCF输入文件
– GaAs.nscf 在统一网格上获得Bloch状态的PWSCF输入文件
– GaAs.pw2wan pw2wannier90的输入文件
– GaAs.win wannier90和postw90的输入文件
【1】运行PWSCF获得砷化镓的基态
pw.x < GaAs.scf > scf.out
【2】运行PWSCF获得砷化镓的基态
pw.x < GaAs.nscf > nscf.out
【3】运行wannier90生成一个所需的重叠列表(写入GaAs.nnkp文件)
wannier90.x -pp GaAs
【4】运行pw2wannier90来计算
–自旋体布洛赫状态之间的重叠〈unk|umk+b〉(写在GaAs.mmn文件中)
–初猜的投影(写在GaAs.amn文件中)
pw2wannier90.x < GaAs.pw2wan > pw2wan.out
【5】检查.win文件
-请确保你了解与选择性本地化算法相对应的新关键词。
-运行wannier90来计算SLWF,在这种情况下使用一个目标Wannier函数。
wannier90.x GaAs
为了约束SLWF的中心,你需要在输入文件中添加slwf_constrain = true和slwf_lambda = 1,并取消对slwf_centres的注释。这将给总扩散增加一个罚函数,它将试图约束SLWF的中心在As原子上(如参考文献[3]中的解释,特别是公式24到公式35)。
查看罚函数的值,是否是你在收敛时所期望的,所选的拉格朗日乘数slwf_lambda的值是否给出了一个以As原子为中心的SLWF函数。
参考文献:
[1] J. Ibañez-Azpiroz, S. S. Tsirkin, and I. Souza, ArXiv e-prints (2018), arXiv:1804.04030 .
[2] T. Yusufaly, D. Vanderbilt, and S. Coh, “Tight-Binding Formalism in the Context of the PythTBPackage,”
[3] R. Wang, E. A. Lazar, H. Park, A. J. Millis, and C. A. Marianetti, Physical Review B 90 (2014),
10.1103/PhysRevB.90.165125.