QE EPW结果复用:两类重启与nesting读取
区分Bloch和Wannier数据重启,避免重复SCF,并读取实际216个q点的nesting。
阅读本篇目录
下载QE/EPW完整输入、真实结果与绘图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd qe-epw-diamond-examples
bash results.sh
bash plot.sh
以上只读取参考结果和绘图。需要自己计算时,先按完整流程提交两阶段任务;输入在inputs/,参考原生输出在reference-results/,十份数据表在data/。本组使用QE7.6/P100入口,NVHPC25.3、HPC-X2.22.1、CUDA12.8和MKL2023.2,每次一个MPI进程、两个CPU线程、一张GPU。图中的数据来自鸢算科技集群实际计算。
1. 两种重启读什么#
| 方式 | 主要参数 | 依赖 |
|---|---|---|
| Wannier空间复用 | epwread=.true.、wannierize=.false. |
diam.epmatwp及对应epwdata.fmt、晶体和权重文件 |
| Bloch空间复用 | epbread=.true.、epwread=.false.、wannierize=.false. |
diam.epb1、Wannier变换及对应波函数/映射文件 |
文件应来自相容的结构、赝势、粗网格和带空间;不能只复制同名文件,混入其他项目的数据。下载包不含大体积二进制波函数/重启矩阵,先运行基础任务生成。
与基础计算一致的Bloch空间重启输入:
--
&inputepw
prefix = 'diam'
amass(1) = 12.01078
outdir = './'
elph = .true.
epbwrite = .false.
epbread = .true.
etf_mem = 1
vme = 'dipole'
use_ws = .false.
epwwrite = .true.
epwread = .false.
nbndsub = 4
wannierize = .false.
num_iter = 300
iprint = 2
dis_win_max = 12
dis_froz_max= 7
proj(1) = 'f=0,0,0:l=-3'
elecselfen = .true.
nest_fn = .false.
phonselfen = .false.
a2f = .false.
fsthick = 15 ! eV
temps = 300 ! K (same as PRB 76, 165108)
degaussw = 1.0 ! eV
dvscf_dir = './save/'
nkf1 = 6
nkf2 = 6
nkf3 = 6
nqf1 = 6
nqf2 = 6
nqf3 = 6
nk1 = 3
nk2 = 3
nk3 = 3
nq1 = 3
nq2 = 3
nq3 = 3
/
use_ws=.false.与基础任务一致。原官方epw10.in另设use_ws=.true.,改变插值方法,不能把两者差异当作重启损坏。
匹配设置后电子能量一致;严格简并子空间的ImΣ迹最大差约1.01×10⁻¹¹meV。简并带内部逐带贡献可随基底旋转,不必逐列强求相同,详见自能读取。
2. 在已有数据上计算nesting#
完整输入:
--
&inputepw
prefix = 'diam'
amass(1) = 12.01078
outdir = './'
iverbosity = 3
elph = .true.
etf_mem = 0
vme = 'dipole'
epwwrite = .false.
epwread = .true.
nbndsub = 4
wannierize = .false.
num_iter = 300
iprint = 2
dis_win_max = 12
dis_froz_max= 7
proj(1) = 'f=0,0,0:l=-3'
elecselfen = .false.
nest_fn = .true.
phonselfen = .false.
a2f = .false.
fsthick = 15 ! eV
temps = 300 ! K (same as PRB 76, 165108)
degaussw = 1.0 ! eV
dvscf_dir = './save/'
nkf1 = 6
nkf2 = 6
nkf3 = 6
nqf1 = 6
nqf2 = 6
nqf3 = 6
nk1 = 3
nk2 = 3
nk3 = 3
nq1 = 3
nq2 = 3
nq3 = 3
/
nest_fn=.true.计算给定q的双δ近似nesting;epwread复用矩阵。nesting反映费米面态通过q连接的相空间,不等于电子—声子耦合强度,不能单独给出超导Tc。

原生输出把nesting标为无量纲,216个q点约1.50×10⁻⁵–16.8757。右图横轴是q编号,不是高对称路径,左图是qz=0切片。
head -6 data/nesting.csv
python3 - <<'PY'
import csv
r=list(csv.DictReader(open('data/nesting.csv')))
print(max(r,key=lambda x:float(x['nesting_dimensionless'])))
PY
本例分数价电荷与较大展宽的结果不代表本征金刚石。真实体系需先确定金属性与费米能,再检查网格、展宽与归一化约定。
3. 什么时候重算#
只改细网格、温度、频率窗口或路径,可从相容矩阵开始。改变晶格、原子、赝势、粗k/q网格或Wannier子空间,要重新准备相应基础数据。
# 已完成原生计算后,只读取和画图
bash extract.sh
bash plot.sh work/analysis figures-new
原生矩阵与波函数留在工作目录,便于继续新增后处理条件。