WannierTools:薄膜二维能带与表面着色
用8层和12层模型实操SlabBand_plane_calc,解释费米能级附近四条带、坐标单位和表面颜色。
阅读本篇目录
SlabBand_plane_calc 可以在二维k平面上读取薄膜色散。本例采用两个互不混合的模型轨道,在位能为−8/+8eV、最近邻跃迁均为−1eV、晶格常数3Å,分别计算8层与12层薄膜。它用来学习文件与着色含义,不是某种材料的拓扑预测。
本模块使用oneAPI 2023.2构建:ifort 2021.10.0、Intel MPI 2021.10、MKL 2023.2.0,配合ARPACK-NG 3.9.1;本例使用CPU MPI程序。
1. 下载并读取实际输出#
下载完整输入、两组原生输出与读取绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd wanniertools-slab-plane
bash read.sh
bash plot.sh
cat analysis-read/WT-slab-plane-summary.csv
使用WannierTools 2.7.0 CPU模块 wanniertools/2.7.0-8173m、Intel MPI/oneAPI运行环境,脚本依赖NumPy和Matplotlib,没有DFT前置计算。

2. 完整wt.in与模型文件#
&TB_FILE
Hrfile='model_hr.dat'
/
&CONTROL
SlabBand_plane_calc=T
/
&SYSTEM
NumOccupied=1,SOC=0,E_FERMI=0,Nslab=8
/
&PARAMETERS
Nk1=7,Nk2=7,Nk3=1
/
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_SLAB
-0.5 -0.5
1 0
0 1
查看HR矩阵:
cat inputs/8-layers/model_hr.dat
cat inputs/12-layers/wt.in
Nslab 控制层数,12层例只改变这一项。KPLANE_SLAB 在本例给出起点−0.5、−0.5和两条跨度向量,7×7共49个k点。注意它与部分体能带入口把输入解释为平面中心的方式不同。
3. 四条带从哪里来#
当前入口默认输出 NumOccupied×Nslab−1 到 NumOccupied×Nslab+2 的四条带。因此8层例输出第7–10条,12层输出第11–14条,不是完整薄膜的所有能带。
head reference-results/8-layers/slabek_plane.dat
head reference-results/12-layers/slabek_plane.dat
本例每层有两个轨道,NumOccupied=1,所选带号都在薄膜总带数范围内。不要直接把单轨道且完全占据的模型套进这个四带输出方式,所需带号可能超出总带数;自己的模型要确认占据数和可用能带范围。
每个实际数据行有12列:前两列是平面笛卡尔坐标,单位Bohr⁻¹;第3、4列是二维分数坐标;后面依次为四条带的“能量eV、颜色值”对。表头中的 dos 在这里代表着色数据,不能作为态密度积分。
4. 表面颜色怎样换算#
程序先对每条态求最上层和最下层的模平方之和,再除以整次计算所有态和k点里的最大表面权重,最后写出:
color = 255 × (1 - normalized_surface_weight)
normalized_surface_weight = 1 - color/255
所以颜色值越小,表示相对表面权重越高。它是全局归一化后的相对值,不能把 1-color/255 当作该态在表面的绝对概率。
本例8层的最大原始双表面权重约0.43104,12层约0.30322,二者分别归一化。跨层数比较绝对局域程度时应使用原始分层波函数,操作见薄膜波函数分层权重。
5. 实际结果与重新提交#
两种层数在同一k点处的相邻价带—导带间隔分别约12.24123和12.11623eV。这是本模型的直接间隔,不要把它与跨不同k点的间接带隙混淆。49点四条能量与独立开边界链公式差低于 1E-6 eV,着色与归一化公式差低于 1E-5。
python3 prepare.py
cd work-new
sbatch ../submit.sh
squeue -u "$USER"
# 作业结束后
cd ..
bash read.sh work-new
bash plot.sh
模板实际1个MPI进程、OMP线程1,申请56核整节点并按整节点计费。换自己的材料模型时,应同步HR、晶格、轨道、表面方向、占据数和层数,并用层数与网格对照检查结论。