WannierTools薄膜Berry曲率实操
用三层和五层实际模型计算薄膜占据态Berry曲率,说明占据带数、原生输出单位和逐层比较的方法。
阅读本篇目录
本篇使用有限层数的薄膜哈密顿量。它与费米能加权的本体曲率采用不同占据选择:这里按固定带数求和,不能只改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。