Wannier90专题

Wannier90 位置矩阵与r²输出

读取r、r²和现场对角项,并区分有限网格上的矩阵定义与展宽。

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

下载完整输入、参考数据和绘图程序,保存为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⁻¹⁰Ų。

实际r²矩阵和不同定义的比较

3. 为什么r²减中心平方不完全等于wout展宽#

本例第1个函数的r²−|中心|²约1.56404095Ų,而wout中的平移不变展宽约1.62263320Ų。安装版的r²输出采用有限差分的Eq.23定义,常规展宽采用平移不变的Eq.32处理,两者在有限k网格上不能强行设成相同数字。

要比较网格收敛,请在相同定义下加密DFT均匀k网格、重新生成矩阵再比较;仅把绘图曲线插得更密不会改变原始矩阵的离散误差。

此外,4.0.3当前原生“自动折回晶胞”的坐标导出在本集群测试中存在问题。读取原始中心或按中心修正与vdW教程处理,不把自动XYZ坐标用于直接构造几何模型。

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

查看配图

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

100%查看原图 ↗