VASPBERRY曲率计算与网格对照
处理SOC波函数、运行FHS和Kubo路线、画三档k网格曲率图,并区分局部曲率与全局积分。
阅读本篇目录
本篇接续MoS₂波函数准备。已有WAVECAR后不需要为画图重跑DFT。我们比较同一结构、同一占据子空间在三档网格上的输出。
1 处理周期等价的k坐标#
本系列的实际VASP输入使用 [0,1) 的分数k坐标。已装版FH Z₂网格重建需要中心表示,所以先运行资料包中的转换:
bash center.sh
回车使用 work/soc-mesh6。换成12或18网格时输入对应目录。脚本加载 pymatgen/2026.9.24,保留原WAVECAR,写出 WAVECAR.centered。
这里不是简单改k点标签:若k减去倒格矢,平面波G必须加回同一倒格矢,并把两个自旋器分量的系数同步重排,使物理波矢k+G保持不变。程序逐带检查能量、系数重排和若干实空间Bloch波值;原文件保持不变。
这份脚本专门检查本例使用的单精度SOC自旋器格式,遇到未覆盖格式会停止。不要把它当作任意WAVECAR转换器。已有中心表示的其他波函数也应先确认网格、格式和程序接口。
2 一次生成三类输出#
bash berry.sh
同样输入SOC目录。脚本加载 vaspberry/1.6.3,分别创建 berry-chern、berry-z2、berry-kubo,避免互相覆盖。VASPBERRY的本例后处理使用CPU串行,前面的VASP波函数计算才使用GPU。已装环境为ifx 2024.2.1、Intel MPI 2021.13、顺序MKL 2024.2。
以6网格为例,下面是等价的直接命令。先用绝对路径记录波函数,再进入新的输出目录:
module load vaspberry/1.6.3
wave=$(realpath work/soc-mesh6/WAVECAR.centered)
mkdir my-fhs
cd my-fhs
vaspberry --wavecar "$wave" --task chern --mesh 6,6 --bands 1:18
cd ..
mkdir my-kubo
cd my-kubo
vaspberry --wavecar "$wave" --task kubo --mesh 6,6 --bands 1:18 --curvature-csv KUBO.csv
1:18 是所选占据自旋器带组。带组必须与其他带保持能隙;不能只挑一条与邻带简并的带,然后把奇异结果解释成材料性质。
3 读取FHS曲率图#

FHS使用相邻波函数子空间的重叠来计算小网格环路的Berry相位。图中的值对应plaquette,即相邻k点围成的小格;不是格点处的微分曲率。
原生 BERRYCURV.dat 包含周期扩展的绘图区域:6网格输出324条数值记录,其中只有36个独立周期小格。作单个布里渊区图时,应按周期坐标去重,并先确认重复值一致,不能把九份区域一起积分。
head -22 work/soc-mesh6/berry-chern/BERRYCURV.dat
grep 'Chern Number =' work/soc-mesh6/berry-chern/BERRYCURV.dat
资料包的 reference/mos2-fhs-6.csv 已保存单个周期区域、实际数值与单位;12和18网格同理。原生文本曲率打印到4位小数,精确积分宜用完整精度的相位数据,不应把绘图文本的舍入误差当物理误差。
4 与Kubo点曲率比较#

本版原生Kubo使用WAVECAR平面波的裸动量算符,没有完整PAW增广、非局域势及SOC速度修正。输出可用于理解方法与输入流程,不能直接当作包含全部速度修正的定量霍尔响应。
同时,Kubo输出是k点处的曲率估计,FHS输出是有限小格的相位/面积。算符与采样位置都存在区别,不能要求两张有限网格图逐点相等。
head -28 work/soc-mesh6/berry-kubo/KUBO.csv
tail work/soc-mesh6/berry-kubo/KUBO.csv
CSV的列包括k点分数坐标、曲率 omega_z_A2 和所选带组到外部带的最小能隙。文件开头可能记录写入过程中的 INCOMPLETE,应确认末尾最终 result_status=PASS,同时核对实际行数和数值有限性。
5 怎样重画和判断网格#
bash run.sh
ls analysis/figures

| 网格 | 完整k点数 | 采样最小直接能隙/eV | 最大采样FHS曲率绝对值/Ų | 裸动量Kubo积分(不取整) |
|---|---|---|---|---|
| 6×6 | 36 | 1.6371 | 7.7319 | −0.00063220 |
| 12×12 | 144 | 1.6388 | 13.1141 | 0.00005863 |
| 18×18 | 324 | 1.6388 | 15.6046 | −0.00026297 |
这些网格均保持占据带组能隙,Chern整数结果相同,但局部FHS峰值仍变化。若客户需要谷附近峰值、细节图或定量响应,应继续增加网格、检查空带与算符适用范围。不要把Kubo积分四舍五入为0,借此宣称得到了精确整数不变量。
下一步见Chern与Z₂实操。