乐于分享
好东西不私藏

VASP+Wannier90源码修改计算Wannier Transport

VASP+Wannier90源码修改计算Wannier Transport

功能实现目标

修改VASP的源代码,生成seedname.unkg文件,用于VASP+Wannier90计算量子输运(基于平衡格林函数),可以参考Wannier90的手册。目前QE+Wannier90能进行该部分计算,但是VASP计算Wannier90 Transport缺少UNKG文件,该文件用于对Wannier基组进行重新排序,使得电极区的wannier基函数满足平移对称性。

VASP构建seedname.unkg的步骤

  1. 找到G(3,num_G)使用B书写的坐标,VASP中在变量WDES%iGX,WDES%iGY,WDES%iGZ

  2. 使用$\Gamma$点的波函数构建 unkg(num_G),具体步骤参考QE中pw2wannier90.f90代码。中间应该会用到其他的变量,需要查找。

  3. VASP构建seedname.unkg的方案,修改VASP代码,添加输入变量`LWRITE_UNKG`来构建seedname.unkg文件。

seedname.unkg构建中VASP变量与QE变量的对应关系

QE
VASP
备注
write_unkg
LWRITE_UNKG
需要添加该变量
npw
WDES%NRPLWVWDES%NPLWKP_TOT
g_abc(3,npw)
WDES%iGX()
WDES%iGY()
WDES%iGZ()
nbnd
WDES%NB_TOT
各进程中的能带数
WDES%NBANDS
每个进程包含的能带数
WDES%NB_PAR
能带数被并行分配的组数
WDES%NKPTS
WDES%ISPIN
WDES%RSPIN
自旋多重度
evc
W%CELTOT(iband,ik,ispin)
gamma点波函数
xk(1:3,1:nk)
VKPT(1:3,1:NKPT)
WTKPY(1:NKPT)
WDES%VKPT(1:3,1:WDES%NKPTS)
WDES%WTKPT(1:WDES%NKPTS)
evc(npwx,nbnd)
W%CPTWFP(1:WDES%NRPLWV,1:WDES%NBANDS,K,ISP)
ngk(nk)
WDES%NPLWKP_TOT(NK)

VASP修改生成unkg文件,并结合Wannier90计算输运

1. 修改的源代码文件

修改前的VASP-6.4.0源文件为mlwf.F-org

修改后的源文件为mlwf.F

2. 修改后结合Wannier90计算Wannier90 Tutorial 14的结果如下

  • 1
使用修改后的VASP+Wannier90计算的量子电导的结果

参考案例:QE+Wannier90计算的案例(其中红线对应无断点结构,红线对应有断点结构)