WannierTools专题

WannierTools:Wigner–Seitz范围筛选

用同一81点网格对比Translate_to_WS_calc开关,说明跳过、保留坐标与周期边界。

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

在堆叠谱入口里,Translate_to_WS_calc 这个名字容易让人以为“把外部k点搬回第一布里渊区”。当前实现实际是:检查起始平面点是否属于倒格Wigner–Seitz胞,不属于则跳过谱计算,保留原输出坐标。

下载完整输入、三个实际输出与读取绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd wanniertools-stacked-spectral-mask
bash read.sh
bash plot.sh

使用 wanniertools/2.7.0-8173m CPU MPI模块,oneAPI 2023.2、ifort 2021.10.0、Intel MPI 2021.10、MKL 2023.2.0及ARPACK-NG 3.9.1构建。脚本依赖NumPy、Matplotlib。模型为3Å简单立方单轨道最近邻模型、跃迁−1eV,没有新的DFT或真实材料参数拟合。

同一81点网格;右图灰色为被跳过的点,坐标没有搬动

1. 两个输入只改一项#

沿用堆叠扫描完整输入,保持 Nk3=16 和其余参数一致,分别设置:

# sum16
Translate_to_WS_calc=F
# WS-mask16
Translate_to_WS_calc=T
cat inputs/sum16/wt.in
cat inputs/WS-mask16/wt.in
head reference-results/WS-mask16/fs_stack.dat

两者都是9×9、−1到1的起始平面网格,不能因为开关改变便假定输出已经成为另一个均匀网格。

2. 为什么只保留16个点#

本例立方倒格的第一布里渊区为分数坐标−0.5到0.5。当前实现对等距周期边界选取其中一个代表,因此保留半开区间 [-0.5,0.5)。

原网格间隔0.25,每个方向保留−0.5、−0.25、0、0.25,组合成16个起始点。其余65个点仍在输出中,但谱字段写入约 1E-6 的极小占位值;这不是这些点实际计算得到的物理谱强度。

读取脚本把被跳过的点标为 retained=0,绘图显示为灰色,避免把占位值画成一片有意义的低谱强度区域。

bash read.sh
head analysis-read/WT-stacked-spectrum-and-WS-mask.csv

3. 它没有做哪些坐标变换#

本例逐行比较两份原生输出的坐标,保持一致;16个保留点的谱与未筛选例相同。筛选只发生在起始平面,不会逐层重新裁剪垂直方向的全部三维样本。

因此,这个开关不能替代“把全部三维样本映射到第一布里渊区后去重或积分”。一般非正交晶胞的Wigner–Seitz范围也不能仅用分数坐标各分量±0.5判断,应使用完整倒格几何。

原生谱字段保留8位小数,轨道汇总与原子汇总在最后位可能出现微小差别;本例讨论的是实际保留范围和谱,而不使用这些末位差别作材料结论。

4. 重新计算#

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和采样区域调整。

如果只是希望在图上显示第一布里渊区轮廓,也可以保留完整数据再按几何区域筛选绘图,但要明确是否删点、移动点、合并周期重复点及如何处理权重。

81点筛选前后数据保留原始谱、每样本平均和是否保留的标记。

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

查看配图

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

100%查看原图 ↗