QE专题

QE:输入结构检查与XSF转换

用ASE预处理和原生pwi2xsf实际转换Si与GaN,解释简化输入、晶胞单位和原子坐标检查。

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

运行 SCF 前,先看清输入的晶胞、原子种类和位置,能避免把单位或分数坐标写错。本篇把此前实际使用的 Si₂ 和闪锌矿 GaN₂ 输入转换为 XSF;只检查输入几何,不做电子结构或结构优化。

1. 解压并先看图#

下载两份原始输入、实际XSF结果、CSV和绘图脚本,保存为 example.zip:

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

使用 QE 7.6 的 pwi2xsf.x 和 ASE 3.29.0。QE CPU 构建为 Intel oneAPI 2024.2 / Intel MPI 2021.13 与 MKL,绘图使用 NumPy 与 Matplotlib。两份原始输入分别在 inputs/Si.in 和 inputs/GaN.in,转换不需要读取赝势。

2. 先准备低层转换器能读的几何输入#

本环境的 pwi2xsf.x 二进制读取的是预处理后的简化输入,完整 pw.x 文件中的全部 namelist 字段不能直接原样交给它。

资料包提供一个几何预处理脚本:

python3 prepare.py inputs/Si.in Si-geometry.in
cat Si-geometry.in
pwi2xsf.x < Si-geometry.in > Si.xsf
head -n 14 Si.xsf

脚本先规范原文件中写在同一行的 namelist,再用 ASE 读取 ibrav=0 的明确晶胞和原子位置,写成:

&system ibrav=0, nat=2, celldm(1)=1.0 /
CELL_PARAMETERS ANGSTROM
0.00000000000000 2.71500000000000 2.71500000000000
2.71500000000000 0.00000000000000 2.71500000000000
2.71500000000000 2.71500000000000 0.00000000000000
ATOMIC_POSITIONS ANGSTROM
Si 0.00000000000000 0.00000000000000 0.00000000000000
Si 1.35750000000000 1.35750000000000 1.35750000000000

这里 celldm(1)=1 只给这个旧转换器提供非零内部长度基准;CELL_PARAMETERS 和 ATOMIC_POSITIONS 明确使用 Å,实际晶胞并没有变成 1 Bohr。

这个简化文件专门用于几何转换,不是给 pw.x 进行 SCF 的完整输入。原来的 inputs/Si.in 保持原样。

3. 再处理GaN#

python3 prepare.py inputs/GaN.in GaN-geometry.in
pwi2xsf.x < GaN-geometry.in > GaN.xsf
head -n 15 GaN.xsf

GaN 原胞含一个 Ga 和一个 N,三条晶胞矢量依次为 (0,2.25,2.25)、(2.25,0,2.25)、(2.25,2.25,0) Å;N 的分数坐标 (0.25,0.25,0.25) 对应笛卡尔位置 (1.125,1.125,1.125) Å。

实际Si与GaN输入经原生转换得到的晶胞和原子

两张图只显示原胞和两原子基元;不代表只有两个原子的孤立分子。查看周期结构时,应结合周期复制理解最近邻连接。

4. XSF里的内容怎么检查#

PRIMVEC 给出 Å 单位的原胞矢量,PRIMCOORD 后给出原子数和元素/坐标。可先在终端确认:

grep -A4 PRIMVEC Si.xsf
grep -A4 PRIMCOORD GaN.xsf
head -n 6 analysis-read/atoms.csv
cat analysis-read/cells.csv

本例逐项对照了原始输入的种类、原子数、晶胞、坐标、体积和周期性。XSF 中看到的还是输入结构,不能据此声称结构已经优化、体系稳定或能量正确。

5. 处理自己的输入时注意范围#

当前辅助脚本使用 ASE 的 espresso-input 支持,针对 ibrav=0 和明确 CELL_PARAMETERS 的输入。非零 ibrav 应先按晶胞转换指南确认显式晶胞,同时保持原子坐标与晶格基底一致;不要只替换晶胞而忽略原子坐标。

bash run.sh
bash read.sh work-new analysis-new
bash plot.sh analysis-new

快捷脚本在新目录生成两份几何输入并调用原生转换器,不调用 pw.x。已有 work-new 时会停止;CSV 和图片从指定的新结果读取。底层输入约定对应 QE 7.6 pwi2xsf 源码。

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

查看配图

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

100%查看原图 ↗