Wannier90 位置矩阵与r²输出
读取r、r²和现场对角项,并区分有限网格上的矩阵定义与展宽。
阅读本篇目录
下载完整输入、参考数据和绘图程序,保存为example.zip:
python3 -m zipfile -e example.zip .
cd wannier-controls-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. 在已有模型中打开输出#
在同一套Si4价带矩阵基础上增加以下三行:
write_rmn = true
write_r2mn = true
write_hr_diag = true
cat inputs/position-matrix-export/wannier90.win
sbatch job.slurm position-matrix-export
head -n 12 reference-results/position-matrix-export/wannier90_r.dat
head -n 8 reference-results/position-matrix-export/wannier90.r2mn
write_rmn输出seed_r.dat,每条记录先给晶格矢量R和两个Wannier索引,再给x/y/z三个复数矩阵元。write_r2mn输出seed.r2mn,本例格式为两个索引及一个实数r²矩阵元。索引从1开始,r的单位为Å,r²为Ų。
write_hr_diag把现场哈密顿量对角项写入wout,没有独立的hr_diag.dat,也不表示额外做了哈密顿量对角化。
grep -n -i 'diagonal\|onsite' reference-results/position-matrix-export/wannier90.wout
2. 终端读取矩阵#
下面只打印R=0、i=j的r矩阵记录:
awk 'NF==11 && $1==0 && $2==0 && $3==0 && $4==$5 {print}' reference-results/position-matrix-export/wannier90_r.dat
awk '$1==$2 {print}' reference-results/position-matrix-export/wannier90.r2mn
bash plot.sh
本例r在R=0的对角元与原始Wannier中心一致。四个r²对角元约为2.966033–2.966035Ų;从原始MMN和U矩阵独立重建的最大差约2.12×10⁻¹⁰Ų。

3. 为什么r²减中心平方不完全等于wout展宽#
本例第1个函数的r²−|中心|²约1.56404095Ų,而wout中的平移不变展宽约1.62263320Ų。安装版的r²输出采用有限差分的Eq.23定义,常规展宽采用平移不变的Eq.32处理,两者在有限k网格上不能强行设成相同数字。
要比较网格收敛,请在相同定义下加密DFT均匀k网格、重新生成矩阵再比较;仅把绘图曲线插得更密不会改变原始矩阵的离散误差。
此外,4.0.3当前原生“自动折回晶胞”的坐标导出在本集群测试中存在问题。读取原始中心或按中心修正与vdW教程处理,不把自动XYZ坐标用于直接构造几何模型。