WannierTools专题

WannierTools:三维Berry曲率扫描

用自建Weyl模型在两个节点附近实际扫描三维k区域,读取能带与Berry曲率分量。

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

想看Berry曲率在一个三维k区域内怎样变化,可以使用 BerryCurvature_Cube_calc。本例用自建二带Weyl模型,分别扫描两个节点附近的小立方体,再比较晶格长度与整体能量尺度的变化。

本例是紧束缚模型操作演示,没有进行材料DFT计算,也没有用立方体内部采样直接宣称得到量子化拓扑电荷。

1. 查看实际切片#

下载完整输入、实际结果与读取绘图程序,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd wanniertools-Berry-cube
bash read.sh
bash plot.sh

默认读取附带结果,生成 analysis-read 和 figures,不重新计算。

四组实际计算的下带Berry曲率z分量切片

每组12³=1728个k点、2条能带,共4组。图中取qy=+0.005的切片;它不是qy=0平面。全部13824条能带-网格记录见能量与曲率CSV。

2. 模型与节点#

H(k) = t [sin(kx) σx + sin(ky) σy
         + (2-cos(kx)-cos(ky)-cos(kz)) σz]

式中k为无量纲晶格相位。t=1 eV、晶格常数3 Å时,模型节点位于分数坐标 (0,0,+1/4)、(0,0,−1/4)。

本例的三维网格作半格偏移,避开节点上的严格简并。跨过简并点时,单带曲率的计算与解释需要额外注意;改变网格数量后,也应重新核对采样是否落到简并点。

3. 完整wt.in#

正节点附近的输入为:

&TB_FILE
 Hrfile='model_hr.dat'
 Package='VASP'
/
&CONTROL
 BerryCurvature_Cube_calc=T
/
&SYSTEM
 NumOccupied=1, SOC=0, E_FERMI=0
/
&PARAMETERS
 Nk1=12, Nk2=12, Nk3=12
 E_arc=0
/
LATTICE
Angstrom
3.0 0 0
0 3.0 0
0 0 3.0
ATOM_POSITIONS
1
Direct
X 0 0 0
PROJECTORS
2
X s pz
KCUBE_BULK
-0.05500000000000 -0.05500000000000 0.19500000000000
0.12 0 0
0 0.12 0
0 0 0.12

KCUBE_BULK 第一行为起点,接下来3行为区域方向向量。这个路径按各方向 Nk 等分采样,不包含上边界。本例起点已加入半格偏移,配合12×12×12网格使用。

模型矩阵元在同目录的 model_hr.dat。四组输入分别改变节点附近区域、晶格长度和整体t,其余模型定义保持可对应。

4. 提交与绘图#

采用 wanniertools/2.7.0-8173m,oneAPI 2023.2、MKL、ARPACK 3.9.1编译。CPU模板申请56核整节点,实际1个MPI进程、1线程:

bash submit.sh
# 计算结束后
bash read.sh work-new analysis-read
bash plot.sh

单目录的实际核心命令为:

module load wanniertools/2.7.0-8173m
mpiexec.hydra -n 1 wt.x > native.log
ls Berrycurvature_*.frmsf

5. 本次提取了什么#

本篇读取两带能量,以及 Berrycurvature_x.frmsf、Berrycurvature_z.frmsf、Berrycurvature_norm.frmsf 中的曲率x、z分量和模长。每个采样点均与本模型的解析二带表达式核对,最大绝对差约 4.1×10⁻⁷ Ų。

能量、倒格矢与小区域坐标需要按实际文件约定处理。详细读取方式见FRMSF单位与子区域。

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

查看配图

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

100%查看原图 ↗