WannierTools Berry 曲率平面图
从双轨道模型的 HR 文件出发,设置平面采样、读取十八列原生数据并绘制 Berry 曲率。
阅读本篇目录
Berry 曲率描述能带本征态在动量空间中的几何性质。这里用一个可以写出解析解的双轨道模型,演示怎样准备 HR、运行 WannierTools、选择输出列并绘图。例子不需要先运行 DFT,也不代表某种材料。
1. 下载与查看#
下载完整输入、原生数据和绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd wanniertools-berry-ahc
bash show-reference.sh
head -n 7 reference-results/native/plane-m1-n41/Berrycurvature.dat
环境为 WannierTools 2.7.0,oneAPI 2023.2 的 ifort 2021.10、Intel MPI 2021.10、MKL LP64 顺序库和 ARPACK-NG 3.9.1。模块 wanniertools/2.7.0-8173m 使用兼容的 AVX512 CPU 环境,不申请 GPU。分析与绘图使用现有 sisl 0.16.4 的 Python 环境,env.sh 已指定解释器。
2. 看懂这个模型#
哈密顿量为:
H(qx,qy) = sin(qx) sigma_x + sin(qy) sigma_y
+ [m + cos(qx) + cos(qy)] sigma_z
q 为无量纲动量,能量单位 eV。两个轨道放在相同位置,晶格 a=b=3 Å,c=10 Å,模型不依赖 qz。m=-1 是 Chern 相,m=-3 是平庸相;SOC=0,这里定义的是无自旋的两个轨道,没有额外乘上自旋简并因子。
prepare.py 将这个表达式写成标准 Wannier90 HR:两个轨道、五个平移向量,每个平移向量对应 2×2 跃迁矩阵。下载包同时提供已经生成的文本文件,可直接换参数查看,也可作为真实材料 HR 的输入格式参考。

3. 先运行一个平面#
下面命令请在已经获得的计算资源内执行。独立目录可以避免覆盖参考结果;目录已存在时,请换一个目录名。
source ./env.sh
mkdir manual-plane
cp reference-results/native/plane-m1-n41/wt.in manual-plane/
cp reference-results/native/plane-m1-n41/model_hr.dat manual-plane/
(cd manual-plane && wt.x)
关键输入:
&TB_FILE
Hrfile='model_hr.dat'
/
&CONTROL
BerryCurvature_calc=T
/
&SYSTEM
NumOccupied=1
SOC=0
E_FERMI=0
/
&PARAMETERS
Nk1=41
Nk2=41
Nk3=3
Eta_Arc=0.02
/
KPLANE_BULK
0 0 0
1 0 0
0 1 0
完整 wt.in 中还包含 LATTICE、ATOM_POSITIONS、PROJECTORS 和 SURFACE,直接沿用下载文件即可。换成真实材料时,要将 HR、晶格、轨道顺序和占据带数一起替换,不能只换 HR 文件名。
当前版本这个平面分支将 KPLANE_BULK 的第一行作为中心点,两条向量分别向两侧展开。因此这里实际覆盖分数坐标 −0.5 到 +0.5,包含两端,共 41×41=1681 个 k 点。它与后面的 AHC 积分网格规则不同。
4. 输出十八列应读哪一列#
Berrycurvature.dat 的前六列是原始笛卡尔 k 和平面内旋转后的 k,单位 Å⁻¹。后十二列分四组,每组三个分量:
| 列号 | 内容 |
|---|---|
| 7–9 | 第 1 至 NumOccupied 带的 Berry 曲率和 |
| 10–12 | NumOccupied 指定的单条带 |
| 13–15 | 按费米占据加权的全部带之和 |
| 16–18 | 费米能处的展宽权重结果 |
Berry 曲率单位为 Ų。本例读取第 9 列,即占据带的 Ωz;由于只有一条占据带,它与第 12 列相同。第 15 列也在本例带隙内接近相同,第 18 列因两个对称能带的贡献相消而为零;不要把不同定义的几组列混在一起。
head -n 7 manual-plane/Berrycurvature.dat
awk '!/^#/ && NF {print $1, $2, $9; n++; if(n==5) exit}' manual-plane/Berrycurvature.dat
source ./env.sh
"$PYTHON_FOR_ANALYSIS" plot-plane.py manual-plane
ls -lh manual-plane/Berry-curvature.png
绘图脚本直接读取你刚生成的原生数据。将 PNG 下载到本地即可查看。
5. 网格对照和整套运行#
本例实际计算了两个 m 参数各自的 21×21 和 41×41 平面。四张原生图的全部点都与解析双能带公式比较;最大差异约 4.96×10⁻⁴ Ų,包含原生文本只保留五位有效数字的影响。比较的是这个模型的数值一致性,不是对真实材料精度的承诺。
若需要整套重算,提交下载包中的脚本:
sbatch job.slurm
脚本调用 bash run.sh,先生成八组小条件,随后执行四个 Berry 平面和四个 AHC 网格并生成汇总 CSV。已有 work/ 时程序会停止,避免覆盖计算。只查看完整参考图可以使用:
bash plot-results.sh
ls -lh plots/
完整重算后,绘图会优先读取新的 work 分析结果;未完整重算时,读取下载包的参考数据。关于积分得到电导,继续看异常霍尔电导。对整数拓扑指标的另一种检查可参考Haldane 模型与 Chern 数。