WannierTools Haldane模型与Chern数
明确解析模型参数,实际对比平庸相、Chern相与不同网格的整数。
阅读本篇目录
unzip wanniertools-practical-wave258-*.zip
cd wanniertools-wave258
bash run.sh
先整理已完成的真实数值,生成 analysis/ 四张CSV和 figures/ 五张PNG,不启动DFT或 wt.x。后面的 calculate.sh 才进行新的实际WannierTools计算,每次建立独立工作目录并拒绝覆盖已有目录。
本套使用WannierTools 2.7.0,oneAPI 2023.2 ifort 2021.10、Intel MPI 2021.10、MKL LP64顺序库和ARPACK-NG 3.9.1,CPU AVX512构建。模块为 wanniertools/2.7.0-8173m,适用于兼容的CPU环境,软件本身不申请GPU。每MPI进程保持一线程。
1 这是理论模型#
Haldane模型用两个轨道描述蜂窝格子上的近邻和复次近邻跃迁。本例直接采用官方生成脚本对应的参数,不把它说成真实材料DFT。HR已经以文本形式附在下载包中,可以直接运行而无需先部署电子结构软件。
| 参数 | Chern相 | 平庸相 |
|---|---|---|
| 近邻t₁ | 1 | 1 |
| 子格质量m | 0.2 | 0.2 |
| 复相位φ | π/2 | π/2 |
| 次近邻t₂ | 2m/(3√3) | 0 |
这些是所定义紧束缚模型的能量参数。保持晶格、轨道顺序和跃迁符号与官方模型一致,任意翻转坐标或复相位可能改变带方向的Chern数符号。
2 先运行较密网格#
bash calculate.sh chern41 mpi
bash calculate.sh chern61 mpi
bash calculate.sh trivial41 mpi
grep -A 7 '# Chern number for 6 planes' work/chern61-mpi/WT.out
bash plot-result.sh work/chern61-mpi
关键控制:
&CONTROL
Wanniercenter_calc=T
Chern_3D_calc=T
/
&SYSTEM
NumOccupied=1
SOC=0
E_FERMI=0
/
&PARAMETERS
Nk1=61
Nk2=61
Nk3=61
/
KPLANE_BULK
0 0 0
1 0 0
0 1 0
这里Wilson loop扫过完整二维周期,与时间反演Z₂例子扫描半个周期不同。Haldane模型本身不依赖第三方向,Chern_3D_calc 的六平面输出用来读取固定k₃的二维结果;并不代表它变成了三维材料。
3 实际结果及粗网格问题#
| 模型与网格 | 原生k₃=0平面Chern | 独立离散Berry积分 |
|---|---|---|
| Chern相21 | 0 | 1 |
| Chern相41 | 1 | 1 |
| Chern相61 | 1 | 1 |
| 平庸相21 | 0 | 0 |
| 平庸相41 | 0 | 0 |
粗网格21的原生Wilson-loop整数漏掉了非零绕行,即使程序正常结束也不能直接采用。41与61稳定为1,独立工具从同一真实HR重新求本征态、构造规范不变小回路Berry相,也得到1。两种方法对照后再解释结果,而不是看到一个整数就认为已经收敛。
bash calculate.sh chern21 mpi
bash calculate.sh trivial21 mpi
bash run.sh
cat analysis/Chern-mesh.csv
附件保留粗网格的实际输出,图中不会把0改画成1。

4 如何看轨道中心绕行#
图中Haldane曲线由原生中心相位解缠得到。Chern相跨完整扫描周期绕行一次,平庸相返回原处。原生 wcc.dat 第一列的delta在当前版本中是扫描比例s的一半,所以本例图的完整横向周期使用2delta。
在自己的模型中,应确认占据子空间在整个积分面有隙,并检查k网格、轨道中心相位、周期边界和矩阵Hermitian关系。多占据带不能逐条任意追踪后简单相加;需要采用占据子空间的Wilson loop或规范不变方法。
本套完成上述体/表面与拓扑操作例;磁场、Landau能级、磁输运和其他开关属于不同问题,不在本例结果中冒充已经计算。