WannierTools专题

WannierTools薄膜Berry曲率实操

用三层和五层实际模型计算薄膜占据态Berry曲率,说明占据带数、原生输出单位和逐层比较的方法。

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

本篇使用有限层数的薄膜哈密顿量。它与费米能加权的本体曲率采用不同占据选择:这里按固定带数求和,不能只改E_arc就代替占据带数的设置。

1 下载并查看已有三层、五层结果#

下载四个实算条件、原始文件和读取脚本,执行:

python3 -m zipfile -e wanniertools-EF-slab-curvature-wave957-*.zip .
cd wanniertools-EF-slab-curvature
bash read.sh
bash plot.sh

这一步读取附带结果,不提交新计算。程序使用WannierTools2.7.0 CPU模块wanniertools/2.7.0-8173m,oneAPI2023.2(ifort2021.10.0、Intel MPI2021.10、MKL2023.2.0、ARPACK-NG3.9.1)。模型为自建两轨道Chern格子,晶格常数3 Å;面内参数m=−1 eV,z方向有0.1 eV乘单位矩阵的层间跃迁,没有新增DFT计算。

三层模型的矩阵维度为6,五层为10;每层两个模型轨道。层间跃迁乘单位矩阵,会改变薄膜子带能量,但保留本例每个子带的面内轨道本征矢结构。

2 输入与实际占据数#

cat inputs/slab3/wt.in

实际三层输入如下:

&TB_FILE
 Hrfile='model_hr.dat'
/
&CONTROL
 BerryCurvature_slab_calc=T
/
&SYSTEM
 NumOccupied=1,SOC=0,E_FERMI=0,Nslab=3
/
&PARAMETERS
 Nk1=11,Nk2=11,NP=1
 E_arc=0.0,Eta_Arc=0.05
/
LATTICE
Angstrom
3 0 0
0 3 0
0 0 3
ATOM_POSITIONS
1
Direct
X 0 0 0
PROJECTORS
2
X s px
SURFACE
1 0 0
0 1 0
KPLANE_BULK
0 0 0
1 0 0
0 1 0
KPLANE_SLAB
0 0
1 0
0 1

五层输入把Nslab=3改为5。NumOccupied=1在这个薄膜分支中表示每层的占据带数,程序实际求和NumOccupied×Nslab条薄膜子带,因此三层为3条,五层为5条。

SURFACE指定x、y方向作为面内方向,KPLANE_SLAB取11×11点。此处kz不再是薄膜的良好周期量子数;不要将这张图当成3D本体某个固定kz截面。

3 提交、读取、绘图#

python3 prepare.py
cd work-new
sbatch ../submit.sh

脚本连同本体两例共运行四个小条件,实际1个MPI进程和1个OpenMP线程;普通CPU分区按56核整节点申请和计费。完成后:

cd ..
bash read.sh work-new
bash plot.sh

bash read.sh不带路径时读取附带结果。所有源文件保留,脚本在analysis-read中写出提取和换算后的CSV。

4 当前版本的原生单位需要修正#

head -n 7 work-new/slab3/Berrycurvature_slab.dat
head -n 7 analysis-read/WT-EF-slab-Berry-curvature.csv

原始文件三列为kx、ky(Å⁻¹)和曲率。当前2.7.0安装基线的这一分支,在内部和写文件时重复做了一次Bohr/Å面积换算,因此原始第三列虽然标为Ų,数值还需乘以:

(1 / 0.529177210903)^2 = 3.571064826093132

配套read.sh完成该版本专用换算,保留原始文件,并把转换说明写进CSV。其他版本不能未经核对就套用这个系数;新的计算脚本会先核对对应源码,避免用同一公式处理已经改变的实现。

本例换算后与独立模型的最大差异小于1.67E-9 Ų。这个数值是本模型、已知打印精度和已说明换算下的对照,不推广到不同轨道中心或任意薄膜模型。

5 比较总响应与逐层响应#

三层与五层的实际薄膜总曲率和逐层结果

左图显示五层的总占据曲率比三层更大;右图分别除以层数后,两条曲线重合。原因是本例层间耦合只乘单位矩阵,不改变面内轨道本征矢,而且固定占据覆盖所有下带子带。这是模型的构造结果,不能把它当成任意材料的厚度比例定律。

下载包使用与有向FHS约定一致的薄膜曲率符号;同包的本体分支另行标注符号转换,不能只因两份原始文件都叫Berry曲率就直接相减。

用于真实薄膜时,先确认HR和表面方向、层数与轨道顺序,再检查薄膜能隙和所选占据子带。表面弛豫、不同层环境和非平凡层间混合可能改变逐层结果,需要重新计算,而不是按层数缩放本例。

ZIP SHA256:11c6b600b70229c67e53b81e38c60b305407a81bc09d101fac7e308eba57f28b。

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

查看配图

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

100%查看原图 ↗