QE专题

QE:将Hubbard U代入后续计算

读取实际DFPT结果并完成新SCF,对比同结构下的能级间隙与投影占据。

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

下载完整输入、实际日志、响应矩阵、能级CSV和绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd qe-hubbard-U-response
module load ase/3.29.0 qe/7.6-8173m
bash read.sh
bash plot.sh

本例使用鸢算科技集群的 QE 7.6 CPU 版本,构建工具为 Intel oneAPI 2024.2、Intel MPI 2021.13 和 MKL。材料为四原子菱方 LiCoO₂;固定原子位置和晶胞,采用非磁 PBEsol、USPP、50/400 Ry 截断能、20 条能带、2×2×2 电子 k 网格和 1×1×1 响应 q 网格。小网格适合先熟悉流程;正式使用需要加密并检查 U 及所需性质。

1. 将计算得到的U代回输入#

前一篇已经完成基态和 hp.x 响应。本例完整自动脚本会读取 Hubbard matrix 的 7.775865 eV,在新目录执行 pw.x;不需要手工猜 U。

手动流程可在项目根目录执行:

python3 - <<'PYCODE'
from pathlib import Path
import re
p = Path('work-new/baseline/LiCoO2.Hubbard_parameters.dat')
u = float(re.search(r'Hubbard matrix\s*:\s*\n\s*([-0-9.]+)', p.read_text())[1])
s = Path('inputs/scf.in').read_text()
assert s.count('U Co-3d 0.0001') == 1
Path('scf-with-U.in').write_text(s.replace('U Co-3d 0.0001', f'U Co-3d {u:.6f}'))
print('U =', u, 'eV')
PYCODE

关键卡片变为:

HUBBARD ortho-atomic
U Co-3d 7.775865

如果采用前篇的手动 manual/baseline 路径,将 Python 中的文件路径换为对应位置。不要从其他材料的 U 文件读取数值。

2. 单独保留含U的输出#

下面命令在已分配 CPU 资源内执行;目录相对于本例资料包根目录:

mkdir -p compare/pseudo compare/applied-U
cp pseudo/*.UPF compare/pseudo/
cp scf-with-U.in compare/applied-U/scf.in
cd compare/applied-U
pw.x < scf.in > scf.out
grep -E 'highest occupied|!.*total energy|convergence has been achieved' scf.out
cd ../..

自动流程把这一步放在 work-new/applied-U。本例使用新的 tmp 目录,保持晶胞、位置、赝势、截断能与 k 网格一致,比较同一固定结构在两种 U 设置下的结果。

3. 本次实际结果#

设置 Hubbard U/eV 总能量/Ry 已采样k点的能级间隙/eV
基态参考 0.000100 −373.36904959 约1.6096
代入DFPT结果 7.775865 −373.07665468 约4.0671

四原子结构与同网格下的能级间隙对比

这里的间隙取已采样 k 点中最低未占据态与最高占据态之差,不是经过能带路径、密集网格和参数收敛后的材料带隙。图展示的是实际工作流的变化,不用它直接与实验比较。

两行使用不同 U,对应能量泛函不同,不能因为第二行总能量较高,就认为该设置“不稳定”,也不能拿两行做相稳定性排名。

4. 提取自己新算的数据#

自动计算结束后,在项目根目录:

bash read.sh work-new analysis-new
bash plot.sh analysis-new
cat analysis-new/response-matrices.csv
cat analysis-new/U-and-observables.csv
ls figures

不提供参数时,读取资料包里本次实际完成的参考输出;提供 work-new 时读取你新计算的结果。ks-eigenvalues.csv 逐个保留不可约 k 点和能带;绘图使用这些实际数据。

Co-3d 占据数来自所选 Hubbard 投影子。它不是 Bader 电荷,也不能直接当成 Co 的形式氧化态。

5. 从教学例子扩展到正式计算#

先固定赝势、投影子和目标结构,逐步加密 k/q 网格并提高所需精度,观察 U 和目标能量、受力或能带的变化。若研究涉及磁性,应选择适当磁态重新做基态和响应。

本例只做一次“计算 U → 代回 U”。如果需要结构与 U 的联合自洽,应再按新的结构/电子态计算 U,按明确判据迭代;不能把本例的一次流程称作已经完成外层自洽。

程序说明可查 QE官方HP用户指南 和 QE7.6官方HP算例。

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

查看配图

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

100%查看原图 ↗