本教程介绍基于VASP的 的完整 BSE 计算流程:以单层 MoSe2为例,从基态自洽场出发,经 GW 准粒子修正至 BSE 激子求解,最终通过VaspBandUnfolding的 bseplot 功能实现倒空间与实空间激子可视化。涵盖 INCAR 参数详解、关键文件生成逻辑及常见报错处理,适用于二维材料激子效应的入门级研究。
VaspBandUnfolding软件安装
下载链接
https://github.com/QijingZheng/VaspBandUnfolding/tree/master
安装依赖
pip install -r requirements.txt# optionalpip install -r requirements-optional.txt
解压后安装
git clone https://github.com/QijingZheng/VaspBandUnfoldingcd VaspBandUnfoldingpip install .
或直接安装
pip install git+https://github.com/QijingZheng/VaspBandUnfolding结构文件准备,POSCAR如下
Mo Se1.000000000000003.3199999999999998 0.0000000000000000 0.0000000000000000-1.6599999999999999 2.8752043405643399 0.00000000000000000.0000000000000000 0.0000000000000000 20.0000000000000000Mo Se1 2Direct0.6666666666666643 0.3333333333333357 0.50000000000000000.3333333333333357 0.6666666666666643 0.41645739178619470.3333333333333357 0.6666666666666643 0.5835426082138053
通过VASPKIT生成模版INCAR
默认INCAR,生成WEVACAR和CHGCAR,也可用来读取NBANDS
Global ParametersISTART = 1 (Read existing wavefunction, if there)ISPIN = 1 (Non-Spin polarised DFT)# ICHARG = 11 (Non-self-consistent: GGA/LDA band structures)LREAL = .FALSE. (Projection operators: automatic)# ENCUT = 400 (Cut-off energy for plane wave basis set, in eV)# PREC = Accurate (Precision level: Normal or Accurate, set Accurate when perform structure lattice relaxation calculation)LWAVE = .TRUE. (Write WAVECAR ornot)LCHARG = .TRUE. (Write CHGCAR ornot)ADDGRID= .TRUE. (Increase grid, helps GGA convergence)LASPH = .TRUE. (Give more accurate total energies and band structure calculations)PREC = Accurate (Accurate strictly avoids any aliasing or wrap around errors)# LVTOT = .TRUE. (Write total electrostatic potential into LOCPOT ornot)# LVHAR = .TRUE. (Write ionic + Hartree electrostatic potential into LOCPOT ornot)# NELECT = (No. of electrons: charged cells, be careful)# LPLANE = .TRUE. (Real space distribution, supercells)# NWRITE = 2 (Medium-level output)# KPAR = 2 (Divides k-grid into separate groups)# NGXF = 300 (FFT grid mesh density for nice charge/potential plots)# NGYF = 300 (FFT grid mesh density for nice charge/potential plots)# NGZF = 300 (FFT grid mesh density for nice charge/potential plots)Electronic RelaxationISMEAR = 0SIGMA = 0.05EDIFF = 1E-08
step2可跳过,step3即GW过程
Electronic RelaxationISMEAR = 0SIGMA = 0.05EDIFF = 1E-08GW Calculation including LWANNIER90 TAGALGO = GW0LSPECTRAL = .TRUE.NOMEGA = 60NEDOS = 2000NELM = 1 (1-G0W0, 4-GW0)NBANDS = (Take the same number of bands in the previous step)# LWANNIER90 =.TRUE. (Switches on the interface between VASP and WANNIER90)
ALGO = GW0
指定执行 G0W0 计算(单次 GW 修正,不自洽更新 QP 能量)。
VASP 6.3+ 建议改用 ALGO = EVGW0,功能相同。
NELM = 1GW 迭代步数。
LSPECTRAL = .TRUE.使用全频域的 谱函数法 计算 GW 自能。
NOMEGA:频率网格点数。用于计算屏蔽库仑相互作用 W(ω) 的复频率积分。只在 GW 步骤必需,BSE 步骤保留此值以读取前一步的 WFULL 文件。
step4
Electronic RelaxationISMEAR = 0SIGMA = 0.05EDIFF = 1E-08BSE CalculationALGO = BSENBANDSO = 4NBANDSV = 4
ALGO:BSE
Bethe-Salpeter 方程求解器。进入 VASP 的 BSE 模块,求解电子-空穴对的本征值问题。
NBANDSO:BSE 活性价带数。4 = 包含最高 4 个价带参与激子形成。
NBANDSV:BSE 活性导带数。4 = 包含最低 4 个导带参与激子形成。
准备好KPOINTS和POTCAR
K-Spacing Value to Generate K-Mesh: 0.0400Gamma12 12 10.0 0.0 0.0
在默认INCAR中添加
NBANDS = 144LOPTICS = .TRUE.ISYM = 0
NBANDS可先不加,或根据以往自洽OUTCAR中查找然后取2-5倍,完成计算后即可获得LOCPOT WAVEDER 和WAVECAR 等文件,
然后将INCAR.step3复制为INCAR,并加入
ISYM = 0NBANDS = 144
然后运行GW计算,这一步会比较耗时,
完成计算后,生成W.tmp和 WFULL.tmp文件,供BSE流程读取
此时将INCAR.step4复制为INCAR,并加入
NOMEGA = 60ANTIRES = 0LHARTREE = .TRUE.LADDER = .TRUE.LTRIPLET = .FALSE.LORBIT = 11OMEGAMAX = 6NBSEEIG=10ISYM = 0NBANDS = 144
LHARTREE:
包含 Hartree/exchange 项。这是电子-空穴交换相互作用(排斥项),源于 Pauli 不相容原理。
LADDER:包含直接相互作用(ladder 图)。这是屏蔽库仑吸引项,导致激子束缚。
ANTIRES:反共振项处理。0 = 仅保留共振项忽略反共振项,简化计算。
LTRIPLET:三重态激子开关。.FALSE. = 只计算单重态(singlet)。
OMEGAMAX:求解激子能量的上限, eV。
NBSEEIG:输出到 BSEFATBAND 的激子本征态数。10 = 前 10 个激子。没有这个参数 VASP 不写 BSEFATBAND。
然后继续执行VASP计算
完成计算最后可生成BSEFATBAND文件,
使用bseplot 命令绘制第一布里渊区里的投影
bseplot bz --input BSEFATBAND --poscar POSCAR --exciton 1绘制实空间
bseplot realspace \> --bsefatband BSEFATBAND \> --wavecar WAVECAR \> --poscar POSCAR \> --exciton 1 \> --hole 0.5,0.5,0.5 \> --supercell '12 12 1'
生成文件如下,
使用VESTA打开