Wannier90 源码工具:k网格、主层、能带重排与轨道文件
六组实际终端操作;明确人工能量修正、旧HR格式、UPF2适配和POV转换范围。
阅读本篇目录
下载完整输入、参考数据和绘图程序,保存为example.zip:
python3 -m zipfile -e example.zip .
cd wannier-utilities-examples
bash results.sh
bash plot.sh
环境使用wannier90/4.0.3-serial,Intel ifx2024.2、AVX2、MKL顺序库;MPI构建使用Intel MPI2021.13。本文小例子用单线程即可。job.slurm申请CPU分区资源,再由run.py在新的work/算例名下运行。查看参考结果不需要重新计算;重复计算时换用新的解压目录。
1. 生成与映射k网格#
chmod u+x upstream/kmesh.pl
perl upstream/kmesh.pl 2 3 1 wan
perl upstream/kmesh.pl 2 3 1
cd tools/kmapper
python3 ../../upstream/k_mapper.py 2 1 1 own-grid.out
cd ../..
第一条生成6个Wannier格式分数k点;第二条为QE风格并带权重。打印的每个权重为0.1666667,六项加起来为1.0000002,是七位小数的打印舍入;不要据此误以为原始1/6权重没有归一。高精度接口应使用精确1/N或在明确需求后归一,不随意删掉k点。
own-grid.out是我们自建的8点QE格式片段,不是新跑QE。本例映射2×1×1粗网格,输出原细网格中的一基索引[2,3],包含−0.5与0.5的周期等价处理。k_mapper.py会调用同目录可执行的kmesh.pl,解压工具若丢失执行位,先运行:
chmod u+x upstream/kmesh.pl
2. 判断主层耦合范围#
bash build-helpers.sh
cd tools/principal-layer
../../bin/PL_assess.x 1 1 20 2 <<'EOF'
chain
EOF
head -n 7 chain_pl.dat
cd ../..
这里是自建双轨道一维矩阵模型,不是DFT材料。旧PL_assess读入格式与现代hr.dat不同,本包同时提供chain-standard_hr.dat和已经适配的chain_hr.dat。不能直接把现代HR头部整段原样喂给旧解析器。
输出四列为R、对角元绝对值均值、该对角统计的标准差、全部矩阵元的最大绝对值。R=0输出0.2、0.1、0.4;R=1输出0.75、0.25、1;R=2输出0.15、0.05、0.2;R≥3为零。这里的最后一列不能误读成“最大对角元”。
3. GW样式能量重排需要同步变换矩阵#
cd tools/qp-conversion
python3 ../../upstream/gw2wannier90.py Si amn mmn
head -n 8 Si.gw.eig
cd ../..
本例复用真实Si4矩阵,人为给4条保留能带加[20,0.1,-0.2,0.3]eV修正,以故意制造排序变化。它是格式演示,不是真正GW。原始被排除的5–8带与保留4带的相对索引要区分。
原版工具输出排序后的Si.gw.eig/amn/mmn。能量改变顺序后,AMN的带索引以及MMN左右两端带索引都必须跟着重排;只改eig会破坏矩阵一致性。本例按每个k点独立排序核对了这些变换。
4. PDWF径向投影与UPF2#
本例Te径向数据来自固定官方UPF2,1245个正对数网格点、两个投影。工具原生CLI主要用于绘图,旧write_dat读取旧式Vanderbilt布局,不能直接当作UPF2转换器。
不在资料包分发赝势。请从固定4.0.3源码中取得test-suite/tests/testpostw90_te_gyrotropic/input/Te.pbe-n-nc.UPF,保存到当前目录。在含NumPy、lxml的个人Python环境中:
python3 convert_projectors.py Te.pbe-n-nc.UPF
head -n 5 projectors.dat
head -n 5 tools/pdwf/projectors.dat
桥接程序只转义PP_INFO说明文字里的XML特殊字符,数值PP_MESH/PP_PSWFC逐字保留;调用原版XML读取函数和原版_write_dat。原文件顺序5P、5S,输出按角动量排序为5S、5P:
1245 2
0 1
接下来四列是ln(r)、r和两个径向函数。网格r必须为正,不能把含r=0、没有PSWFC的其他UPF直接套用。本转换只提供投影输入,不替代后续QE接口或PDWF局域化。
5. XSF到POV/DF3#
cd tools/pov
../../bin/w90pov
ls gaussian.pov *.inc *.df3
cd ../..
输入w90pov.inp给出seed、相机、等值面、正负相位和颜色;本例使用自建16³解析高斯场,8Å立方盒,只演示格式转换,不是真实材料Wannier轨道。
原版工具实际生成POV场景与正负DF3文件。DF3为大端无符号16位网格,16³文件长度8198字节。生成场景不等于完成POV-Ray渲染;本例没有运行POV-Ray,文中的图是数据绘图而非宣称渲染效果。正高斯场也不能用于证明真实轨道负相位形状。

这些辅助程序的目的各不相同,不能把文件成功转换等同于完成新的DFT、GW或输运计算。操作接口以固定版本源码工具为准。