WannierTools专题

WannierTools展开谱与QPI网格

从实际展开平面谱读取九档Gaussian结果,处理固定列宽、谱单位与原生QPI的真实位移索引后绘图。

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

本篇接着超胞能带展开,使用相同的完整链和交替现场能链,看E=0平面的展开谱及其自相关。QPI在这里是谱函数乘积构成的JDOS近似,不是带有杂质散射矩阵元的完整实验模拟。

1 读取同一组实际输入#

下载两个实算模型、结果和脚本,执行:

python3 -m zipfile -e wanniertools-unfolding-wave951-*.zip .
cd wanniertools-unfolding
bash read.sh
bash plot.sh

这里先读取附带的实际结果,不提交新计算。使用WannierTools2.7.0 CPU模块wanniertools/2.7.0-8173m,oneAPI2023.2(ifort2021.10.0、Intel MPI2021.10、MKL2023.2.0与ARPACK-NG3.9.1);后处理用NumPy和Matplotlib。

输入已经开启:

&CONTROL
 BulkBand_unfold_line_calc=T
 BulkBand_unfold_plane_calc=T
 QPI_unfold_plane_calc=T
/

平面参数为Nk1=17,Nk2=9,E_arc=0,Eta_Arc=0.2。KPLANE_BULK中心为0,两条方向为参考胞倒格矢的x与y方向,形成17×9个点。本例没有y方向跃迁,因此谱沿ky不变;不能据此推断真实材料也是一维。

2 自己提交和读取#

python3 prepare.py
cd work-new
sbatch ../submit.sh

普通CPU分区按56核整节点申请和计费,实际1个MPI进程、1个OpenMP线程。结束后:

cd ..
bash read.sh work-new
bash plot.sh
head -n 6 analysis-read/WT-unfold-plane-QPI.csv

3 原始平面谱的列和精度#

head -n 6 work-new/perfect/spectrum_unfold_kplane.dat

前六列分别是三维Cartesian k坐标及旋转到平面内的三个坐标,单位Å⁻¹;后九列为九档Gaussian展开谱。原生谱按Hartree⁻¹输出,CSV除以27.211385成为eV⁻¹。

平面谱和QPI文件只保留五位有效数字。配套程序把独立模型预测按相同格式写到相同精度后比较,不能从这些文件承诺更高的有效数字。路径谱使用不同的八位小数输出,精度范围不能混用。

4 QPI文件要按固定列宽读取#

head -n 10 work-new/perfect/qpi_unfold.dat

它采用Fortran固定12字符列宽,两个负坐标可能直接相连,例如-0.10472E+01-0.10472E+01。直接用空白分隔读取会失败。使用配套bash read.sh,其中Python读取方式为:

from pathlib import Path
rows = []
for line in Path("qpi_unfold.dat").read_text().splitlines():
    if line.strip() and not line.lstrip().startswith("#"):
        rows.append([float(line[i:i+12])
                     for i in range(0, len(line), 12)])

本版某些表头沿用log(dos)字样,但这里实际写出的是线性的谱乘积平均,读取脚本不会再取指数。原生QPI单位为Hartree⁻²,CSV除以27.211385²,图片使用eV⁻²。

5 使用实际位移坐标,避免QPI图错一格#

原生程序计算QPI位移时使用Fortran从1开始的索引:shift_x=i-(Nx-1)/2,y方向类似。本例实际位移为x=−7到9、y=−3到5;原文件前几列却沿用以−8到8、−4到4为中心的平面坐标。因此原始坐标列与实际QPI位移差一个网格步长。

配套CSV单独给出actual_QPI_qx_primitive_fractional和actual_QPI_qy_primitive_fractional,图片按这两列绘制。x步长为参考倒格矢的1/16,y步长1/8;真正q=0落在原始二维数组的第8行、第4列(按1开始计数),不能直接取几何中心点。

实际展开平面谱和按真实位移重建的QPI

QPI求和使用开放边界:只有原点和位移后的点都在网格内才参与,最后除以完整网格点数153。它不是周期绕回,也不是除以每个位移的有效重叠点数。即使谱沿ky不变,较大|qy|处也会因可用重叠行数变少而变化,不应解释成新的散射物理。

读取脚本独立生成展开谱,再按这些真实索引和边界求自相关,核对五位有效数字的原生输出。原文件保持原样,单位换算和坐标修正在CSV与图中显式完成。替换真实体系后,仍应检查参考胞、轨道映射、网格和展宽收敛,再解释QPI强度。

ZIP SHA256:13ceead9efae8b9653aa8e3a195b1f4230eb3b41dae2b83085eb29a018a3ecf7。

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

查看配图

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

100%查看原图 ↗