WannierTools专题

WannierTools:k平面能量与轨道权重

实际计算二维k平面的能量和两组轨道概率,说明分组、坐标和独立程序的使用。

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

需要看一条能带在不同 k 点由哪些轨道构成时,可以输出本征能量和轨道概率。本篇用一个自有的两轨道模型,演示完整输入、提交与画图。

1. 先看结果#

下载两轨道模型、完整输入、原生输出及绘图包,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd wanniertools-orbital-projection
module load ase/3.29.0
bash read.sh
bash plot.sh

先读包内的 reference-results/ 就能得到 CSV 和图片,不需要再次计算。inputs/ 保存完整的 wt.in 与自有教学模型 model_hr.dat。

221个k点的能量和轨道概率

实际输出包含 17×13=221 个 k 点、两条能带、两组轨道概率。这里的“轨道”是模型基底的两个分量,图展示的是概率权重,不是原子轨道角动量 L,也不是磁矩。

2. 教学模型是什么#

晶格矢量为 (3,0,0)、(0,3,0)、(0,0,10) Å。模型为:

H(q) = sin(2πqx) σx + sin(2πqy) σy
       + [-1 + cos(2πqx) + cos(2πqy)] σz

能量单位为 eV;σ 是两轨道空间的 Pauli 矩阵,q 是倒格矢分数坐标。模型设为自旋无关的两轨道,SOC=0,不额外计自旋简并。输入中的 X s pz 用于标明两个模型基底,不能把它解释为某种真实元素的第一性原理结果。

head -12 inputs/bands-projection/model_hr.dat
cat inputs/bands-projection/wt.in

完整 wt.in:

&TB_FILE
 Hrfile='model_hr.dat'
/
&CONTROL
 OrbitalTexture_3D_calc=T
/
&SYSTEM
 NumOccupied=1, SOC=0, E_FERMI=0
/
&PARAMETERS
 Nk1=17, Nk2=13, Nk3=3
 E_arc=1.5, Eta_Arc=0.05
/
LATTICE
Angstrom
3 0 0
0 3 0
0 0 10
ATOM_POSITIONS
1
Direct
X 0 0 0
PROJECTORS
2
X s pz
SURFACE
1 0 0
0 1 0
KPLANE_BULK
0 0 0
1 0 0
0 1 0
SELECTED_WANNIERORBITALS
2
1
2
SELECTEDBANDS
2
1 2

3. 关键参数怎样看#

SELECTED_WANNIERORBITALS 首行 2 表示两组;后面两行分别选择第 1 和第 2 个轨道。每组可以列出多个轨道编号,具体分组应与自己的 Wannier 基底顺序一致。SELECTEDBANDS 选择两条能带,编号为 1 2。

OrbitalTexture_3D_calc=T 的名字带有 3D,但这里输出的是二维 k 平面上的能量曲面和权重,并没有扫描三维布里渊区。这个入口把 KPLANE_BULK 第一行作为平面中心,后两行为跨度向量;本例实际覆盖 qx,qy∈[−0.5,0.5]。

Nk1=17 和 Nk2=13 分别控制平面两方向采样。本篇的输出横坐标已经换算为 Å⁻¹,不能把原始分数坐标直接标成 Å⁻¹。

4. 提交自己的计算#

首次计算:准备独立程序#

本篇的两个开关在当前公共 WannierTools 2.7.0 构建中会被读取,但不会进入对应计算。为使用本例,请编译资料包提供的独立副本;脚本接入这两个入口,并修正谱函数补集求和的位置。公共环境保持原样。脚本只匹配本例对应的源码校验值,遇到其他版本应停止并核对。

# 在资料包根目录提交短编译任务;CPU分区按整节点申请
srun -p cpu-8173m -N 1 -n 1 -c 56 --mem=8G -t 00:10:00 bash build-private.sh
# 编译完成后提交本包的三组短计算
bash submit.sh
squeue -u "$USER"

独立程序位于 ~/.local/ys-wt-orbital/bin/wt.x。本包编译环境为 Intel oneAPI 2023.2、Intel MPI、MKL 和 ARPACK 3.9.1;计算使用 1 个 MPI 进程、1 线程。作业结束后读取新结果:

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

submit.sh 会创建 work-new,保留参考结果。如果这个目录已经存在,请先另存结果,或重新解压到新目录;不要把不同参数的输出混在一起。

5. 读取概率并检查#

ls reference-results/bands-projection/orbitaltexture*
head -8 analysis-read/WannierTools-orbital-plane-weights.csv

CSV 同时保存原生能量、两组轨道概率及独立模型结果。在这两组完整划分下,每个态的两组权重之和为 1。例子中 (qx,qy)=(−0.5,−0.5) 的两条能量为 −3、+3 eV,下带在轨道 1 上的概率为 1,上带为 0。全部 442 个能量与独立对角化的最大差约 4.95×10⁻⁹ eV,884 个权重最大差约 4.70×10⁻⁹。

换成材料模型时,先替换 model_hr.dat,同步修改晶格、原子、投影轨道、占据带数和选择分组;先用少量 k 点对照已知能带,再增加网格。带交叉附近单条能带权重可能随简并态基底改变,需要结合简并子空间理解。

如果需要固定能量下的轨道分辨谱函数,请继续读轨道谱权重教程。

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

查看配图

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

100%查看原图 ↗