VASP外电场下的二维体系带隙
用双层hBN的三个静态电场点,学习薄层外场、偶极修正与带隙提取。
阅读本篇目录
想看垂直外电场如何改变二维体系的电子结构,可以先固定几何,只改变电场,比较能级和局域势。本例用AA′堆垛的双层hBN,展示一个最小可参考流程。
1. 建立带真空层的薄层模型#
本例4个原子,面内晶格常数2.50 Å,层间距3.30 Å,z方向晶胞长20 Å,两层放在晶胞中心。上层B位于下层N之上,上层N位于下层B之上。
这是指定几何的静态扫描,所有电场点使用同一POSCAR,没有进行电场下的结构优化。因此本文讨论该固定结构的电子响应,不把结果解释成完整的电场诱导弛豫或相变。
2. 先跑零场,再跑两个有限场#
本例PBE PAW64、ENCUT=550 eV、EDIFF=1E-6、9×9×1 Gamma网格、32条带。三个目录分别使用EFIELD=0、0.1、0.2,其余参数一致:
LDIPOL = .TRUE.
IDIPOL = 3
DIPOL = 0.5 0.5 0.5
EFIELD = 0.1
LVTOT = .TRUE.
IBRION = -1
NSW = 0
各目录准备合法B、N POTCAR,按POSCAR顺序拼接后分别提交:
sbatch run.sh
IDIPOL=3选择z方向,LDIPOL加入偶极修正。VASP的EFIELD使用eV/Å,并采用与通常电场定义相反的符号约定,电子沿所给方向移动;论文或报告中的正负方向必须说明。EFIELD官方说明
这是带真空薄层使用的外场入口。三维周期绝缘体的均匀场工作流需另外考虑有限电场/Berry相位设置,不能直接去掉真空照搬这个输入。
3. 提取带隙和沿z的势#
module load ase/3.29.0
python extract_slab_field.py
脚本读取自己的vasprun.xml和LOCPOT,从当前k网格上寻找价带顶、导带底,并对局域总势做xy平面平均。三个场使用相同结构和网格,便于比较。
| EFIELD / eV·Å⁻¹ | 当前网格上的PBE带隙 / eV | 真空区势差斜率 / eV·Å⁻¹ |
|---|---|---|
| 0.00 | 4.5832 | 0.0000 |
| 0.10 | 4.5164 | -0.0976 |
| 0.20 | 4.4160 | -0.1929 |

本例带隙随正向外场从4.5832降到4.4160 eV。图中势曲线先减去零场,再把z=10 Å处作为绘图零点;斜率在z=1–5 Å真空区拟合。有限场时势随z倾斜,不能再把整段真空当作平坦的“真空能级”。
这里得到的是有限k网格上的Kohn–Sham带隙,不是光学带隙,也不是已经收敛到实验的准粒子带隙。若需能带图,可在各自收敛密度基础上继续相同路径的计算,不要跨电场混用CHGCAR。
4. 换成自己的二维材料#
先检查电子收敛、真空厚度、场强和势的形状。过大的场或不合适的真空会使真空区低能态参与占据,这时简单比较带隙会失去原来的意义。带电薄层、电极恒电势与中性薄层加外场也是不同问题。
若还需要结构变化,在目标场下另做原子优化并保留真空方向约束,再检查自由原子力是否达到0.02 eV/Å;不能把本例静态扫描中的受力称作优化已收敛。
本例使用vasp/6.6.1-p100的vasp_std,NVHPC25.3、CUDA12.8及配套MPI,通过Slurm计算。附件包含三个相同几何的场点、实际结果和提取脚本。