WannierTools专题

WannierTools 路径 Berry 曲率与费米占据

对比固定占据带与费米能级加权,提供路径输入、终端命令、实际曲线和采样检查。

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

沿高对称路径画 Berry 曲率时,你需要先决定求和哪些能带:固定前 N 条占据带,还是按给定费米能级对每条带加权。本篇用同一个双轨道模型,比较两种计算方式,并给出从运行到画图的短命令。

1. 下载与查看#

下载输入、原生数据和绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd wanniertools-berry-path-selected
bash show-reference.sh
bash plot-results.sh
ls -lh plots/wanniertools-Berry-path-occupations.png

实际路径曲率、能带、费米占据和逐点解析对照

模型沿用 Berry 曲率与二维图 的 QWZ 双轨道模型,m=-1,晶格 3×3×10 Å,两个轨道位于同一位置,不含自旋倍数。能量为 ±|d|,其中 d=(sin qx, sin qy, -1+cos qx+cos qy)。它是教学紧束缚模型,不是某种材料的 DFT 拟合。

使用集群 WannierTools 2.7.0,oneAPI 2023.2 / ifort 2021.10、Intel MPI 2021.10、MKL LP64 顺序库和 ARPACK-NG 3.9.1。env.sh 加载相应模块,分析绘图使用现有 sisl 0.16.4 Python 环境。计算命令在分配的兼容 CPU 资源内执行。

2. 固定占据带的路径曲率#

关键输入:

&CONTROL
BerryCurvature_kpath_Occupied_calc=T
/
&SYSTEM
NumOccupied=1
SOC=0
E_FERMI=0
/
&PARAMETERS
Nk1=41
Nk2=41
Nk3=3
Eta_Arc=0.05
E_arc=0
/

KPATH_BULK
3
G 0 0 0 X 0.5 0 0
X 0.5 0 0 M 0.5 0.5 0
M 0.5 0.5 0 G 0 0 0

这个分支按 NumOccupied=1 求第一条能带的曲率,不是根据 E_arc 自动决定“占据带数”。对有带隙且占据带数固定的体系,这种选择容易理解。金属体系不能简单认为前 N 条带在所有 k 点都被完整占据。

路径采样请写 Nk1#

本例当前版本用 Nk1 控制每段点数,三个路径段各 41 点,共 123 行。X、M 的公共端点在相邻两段各输出一次,它们的累计路径距离相同;不要把重复端点误认为缺点或不同 k 点。

不要把参数写成 Nk=41。 当前 2.7.0 的参数输入表不接受这个名字;参数读取可能保留默认值,程序却仍正常退出。应检查 WT.out 中实际读入的 Nk1,而不只检查退出码。平面图使用的 Nk1×Nk2 网格与本篇路径的采样含义也不同。

3. 按费米能级加权#

在另一个输入中只启用:

&CONTROL
Berrycurvature_kpath_EF_calc=T
/

其他模型与路径相同,在 PARAMETERS 中设置:

E_arc=1.5
Eta_Arc=0.05

这里 E_arc 是此分支使用的费米取样能量,Eta_Arc 控制费米分布的平滑能量尺度,本例单位 eV。它不是 DOS 高斯展宽的直接替代,也不要把它当成一般材料的电子温度结论。

两个能带的 Berry 曲率相反,加权曲率为下带曲率乘以 f(E下−μ)−f(E上−μ)。本例 E_FERMI 保持 0,便于直接比较 E_arc=0 与 1.5 eV;换自己的 HR 时,应同时检查能量零点约定。

E_arc=0 位于带隙,结果与第一条占据带几乎相同;升至 1.5 eV 后,部分 k 点的上带也有占据,两条带曲率相互抵消。图中的橙线因此在 Γ–X 附近接近零,这不是曲率算法失效。

4. 先运行一组,再检查参数#

复制已准备好的费米加权输入到新目录:

source ./env.sh
mkdir manual
cp reference-results/native/fermi-metal-n41/wt.in manual/
cp reference-results/native/fermi-metal-n41/model_hr.dat manual/
(cd manual && wt.x)
grep -E 'Nk1 :|E_arc :|Eta_arc :' manual/WT.out
head -n 8 manual/Berrycurvature_line.dat

Berrycurvature_line.dat 共四列:累计路径长度(Å⁻¹)、Ωx、Ωy、Ωz(Ų)。本模型无 kz 色散,前两个曲率分量为零;绘图使用 第 1、4 列。

(cd manual && gnuplot -e "load 'Berrycurvature_line.gnu'; set ylabel 'Berry curvature (Angstrom^2)'; replot")
ls -lh manual/Berrycurvature_line.pdf

当前原生绘图脚本把纵轴标题写成了 Energy (eV),上面的命令在重画时改为实际曲率单位。原生数据保持原样。

5. 完整六组对照#

申请 CPU 资源后可以运行整套脚本:

sbatch job.slurm

它为每段 21、41 点分别运行固定占据带、E_arc=0 和 1.5 eV 三种方式,写入 work/,并绘图。也可在已经分配的兼容 CPU 资源内执行:

bash run.sh
bash plot-results.sh
cat berry-path-selected-summary.csv

work/ 已存在时脚本停止;重算请重新解压到另一个目录。图中的 21 点是 63 行,41 点是 123 行;采样加密影响曲线细节,不应改变两种占据规则的含义。本例所有输出点与解析曲率及费米权重比较,最大绝对差约 3.2×10⁻⁷ Ų。

当前版本的平面选带开关#

资料包还保留两个小型兼容性检查输入。2.7.0 中虽然声明了 BerryCurvature_plane_selectedbands_calc、能读取 SELECTED_BANDS,但当前主程序没有调用对应的平面选带计算。因此仅打开此开关不会得到所请求的曲率文件,退出码 0 也不表示计算完成。

本篇六组有效结果均来自前面两个路径开关,不把这个无输出分支计入曲率结果。若需要不同能带或更完整的二维图,可先查看 二维曲率与占据规则,并按实际构建支持的分支准备输入。

路径局部曲率并不直接给出 Chern 数。Chern 数需要合适二维流形上的积分与收敛检查;霍尔电导还涉及占据、单位与积分网格,见 反常霍尔电导。

可进一步对照 WannierTools 官方源码中的对应实现。本篇数值与字段说明以集群当前 2.7.0 为准;在线开发分支后续可能变化。

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

查看配图

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

100%查看原图 ↗