QE专题

QE EPW结果复用:两类重启与nesting读取

区分Bloch和Wannier数据重启,避免重复SCF,并读取实际216个q点的nesting。

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

下载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网格切片与实际全部q点

原生输出把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

原生矩阵与波函数留在工作目录,便于继续新增后处理条件。

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

查看配图

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

100%查看原图 ↗