WannierTools专题

WannierTools Berry 曲率平面图

从双轨道模型的 HR 文件出发,设置平面采样、读取十八列原生数据并绘制 Berry 曲率。

更新于 2026-11-10约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

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 的输入格式参考。

两个模型的原生 Berry 曲率图及逐点解析比较

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 数。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗