VASPBERRY投影自旋拓扑实操
从同次SOC波函数读取投影自旋谱,计算自旋扇区Chern并比较32与48带的曲率代理。
阅读本篇目录
本例沿用MoS₂输入准备中在鸢算科技集群实际计算的SOC波函数:3原子原胞、PBE、450 eV、电子收敛1E-6、48条能带,完整未平移6×6×1网格,共36个k点,占据自旋器能带1–18。结构先优化到最大力小于0.02 eV/Å。这里不重新运行VASP。
VASPBERRY 1.6.3固定官方提交1d5d752,原生串行程序采用ifx 2024.2.1、顺序MKL;Python分析环境为配套的Python 3.11、NumPy和Matplotlib。前置VASP SOC使用6.6.1 GPU/HDF5构建,NVHPC 25.3、CUDA 12.8与HDF5 1.14.6。GPU负责前置DFT,VASPBERRY后处理使用CPU。
下载命令、输入模板、数值数据和4张图,保存为 vaspberry-advanced.zip。压缩包不分发原始波函数或势文件。请将您自己同次计算的WAVECAR、OUTCAR、POSCAR、EIGENVAL放入 input/:
python3 -m zipfile -e vaspberry-advanced.zip .
cd vaspberry-advanced-wave284
bash prepare.sh ./input
bash calculate.sh
bash extract.sh
ls results
prepare.sh只链接输入;calculate.sh依次运行下面各原生任务;extract.sh读取已生成的数据和波函数做检查、输出CSV与4张图。完整6×6×1、18条占据带和48条总能带是本例设置,不是所有材料的默认值。更换材料要同步修改脚本中的带窗、网格与选态。大型后处理请在Slurm分配的CPU资源中执行。
1 先看投影自旋谱,再看拓扑积分#

本例将Cartesian z方向Pauli自旋算符投影到18条占据带,用伪波函数Gram度量求广义本征值。36个k点均分为9条正扇区和9条负扇区,最小绝对投影自旋本征值约0.999233,最小Gram本征值约0.754271。投影自旋谱在零附近有间隙,是连续划分正负扇区的重要前提。
它与PROCAR中给原子、轨道分组的投影权重不同,也不是把原始SOC能带直接称为“纯自旋向上/向下”。使用非共线或SOC输入时,要保留匹配OUTCAR中的SAXIS信息。
2 计算扇区Chern#
在一个新的结果目录中,将本次四文件放好,运行:
module load vaspberry/1.6.3
vaspberry --task spin-chern --wavecar WAVECAR --outcar OUTCAR --mesh 6,6 --bands 1:18 --spin-axis z
head -45 SPIN_CHERN.csv
head -45 SPIN_SPECTRUM.csv
SPIN_SPECTRUM.csv保存每个k点的18个投影自旋本征值,共648行数值。SPIN_BERRY.csv保存36个周期格的扇区通量、格面积和曲率;SPIN_CHERN.csv保存积分。
| 量 | 本例实际值 |
|---|---|
| C_plus | 1.432906×10⁻¹⁶ |
| C_minus | 3.315839×10⁻¹⁶ |
| C_spin=(C_plus−C_minus)/2 | −9.414663×10⁻¹⁷ |
| 正/负扇区维数 | 9 / 9 |
这些值在数值精度下接近零,表格保留原值。Fukui格通量按 sum(flux)/(2π) 积分;曲率单位Ų,乘倒空间小格面积后才是无量纲通量。
3 比较Kubo型投影曲率与能带窗#
每次进入一个新目录运行,避免固定文件名相互覆盖:
vaspberry --task spin-kubo --wavecar WAVECAR --outcar OUTCAR --mesh 6,6 --bands 1:18 --spin-axis z --sum-bands 48
head -45 SPIN_KUBO_INTEGRAL.csv
另一目录将 --sum-bands 48 改为 --sum-bands 32,使用同一个WAVECAR。--bands 1:18仍指定被选占据子空间,--sum-bands控制中间态求和的保留范围,二者用途不同。
| 中间态能带窗 | C_est_spin |
|---|---|
| 32 | 0.03811254 |
| 48 | 0.04195938 |
这里的输出是基于伪波函数和正则动量导数的投影自旋几何曲率代理,原生文件明确标记 physical_paw_validated=false、conventional_spin_current_hall=false。它没有完整PAW增广、非局域/SOC速度顶角和基底导数修正,不能当作常规自旋流定义的自旋霍尔电导,也不应取整为Chern数。
32与48带还有差别,因此本例没有给出该代理量已收敛的结论。正式材料计算应继续增加空带、加密k网格,并选择与所研究可观测量一致的完整算符。不能要求它与Fukui扇区Chern在此近似和此网格上相等。
4 看哪些文件#
ls work/native/spin-chern
ls work/native/spin-kubo32
ls work/native/spin-kubo48
cat results/SCIENTIFIC-VALIDATION.json
分析程序重新积分通量,检查正负扇区维数、Gram正定性,并逐点核对“扇区曲率=投影母空间贡献+自旋混合贡献”的分解。结果与图位于 results/,原生CSV保留在 work/native/。