qvasp专题

qvasp完整声子流程:从DFPT到声子谱

用Si16的真实计算,串起超胞、VASP DFPT、力常数提取和两种k网格对照。

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

本篇接着qvasp输入准备,完成真正的声子计算链。使用Si2原胞的2×2×2超胞,共16个Si,比较2³与3³电子积分网格;全部曲线来自鸢算科技集群实际VASP计算。

下载输入、实际力常数与绘图资料。解压进入目录,先看已有结果:

bash view.sh

得到 figures下三张结构、声子谱和GaAs弹性图,analysis下对应CSV。参考数据在 reference,看图不需要先重新运行VASP。

1 先准备已经优化的原胞#

本例原胞为2个Si,晶格来自已优化结构,常规胞参数约5.468926 Å。原胞文件 POSCAR-unitcell如下:

Si                                      
    1.000000000000000     
     0.0000000000000000    2.7344629562984917    2.7344629562984917
     2.7344629562984917    0.0000000000000000    2.7344629562984917
     2.7344629562984917    2.7344629562984917    0.0000000000000000
   Si
     2
Direct
     0.0000000000000000    0.0000000000000000    0.0000000000000000
     0.2500000000000000    0.2500000000000000    0.2500000000000000
 
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00

真实Si16模型和两种k网格的Gamma频率

结构优化和声子计算是不同阶段。先确认原胞的原子位置与所需晶胞自由度已经优化,再生成无位移的理想超胞。本例参考结构所有力为零;声子任务并不会替用户完成一个未知初始结构的优化。

2 用qvasp和Phonopy准备DFPT超胞#

在新的工作目录放入 POSCAR-unitcell,可按以下顺序操作:

module load qvasp/2.26 phonopy/2.43.6
cp POSCAR-unitcell POSCAR
qvasp -phonon
phonopy -d --dim="2 2 2" -c POSCAR-unitcell
cp SPOSCAR POSCAR
qvasp -pbe Si

qvasp -phonon生成INCAR、band.conf和mesh.conf模板;Phonopy生成SPOSCAR和位移文件。本篇采用IBRION=8的DFPT,使用无位移SPOSCAR,不逐个运行POSCAR-001等有限位移结构。 后者属于另一条工作流。

资料包已固定实际输入,直接准备两个对照目录更方便:

bash prepare.sh
ls work/cases

3 实际INCAR和KPOINTS#

模板必须编辑,尤其是收敛标准、晶胞、超胞矩阵和路径。Si16本例INCAR为:

SYSTEM = Si16 qvasp DFPT tutorial
ENCUT = 450
PREC = Accurate
EDIFF = 1E-6
IBRION = 8
NSW = 1
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
NCORE = 1
KPAR = 1
ISYM = 2
NELM = 120
ALGO = Normal

其中IBRION=8使用对称性辅助的DFPT;EDIFF=1E-6,LREAL为false,NCORE=1、KPAR=1。本例用8个MPI进程,不将结构优化的NCORE设置直接套到线性响应。两个条件只改变KPOINTS:

Si16 DFPT Gamma mesh
0
Gamma
2 2 2
0 0 0

较密条件将第三行之后的 2 2 2改成 3 3 3,其他设置相同。

程序为VASP6.5.1 CPU版,Intel oneAPI2024.2、Intel MPI2021.13;运行脚本为本任务设置 ulimit -s unlimited,无需修改系统限制。后处理使用qvasp2.26及其Phonopy2.43.6子进程;独立绘图与频率核对使用Phonopy4.7.2(GNU13.3 C/OpenMP与Rust后端)。

4 提交自己的计算#

先确认CPU队列可用:

sinfo -p cpu-8173m
sbatch job.slurm
squeue -u "$USER"

模板按CPU队列整节点规则申请56核,实际同时运行两个条件,各8MPI、每进程1线程,共16个物理核心。模板不代表该CPU节点的性能测试;当前不可用时应等待可用资源,别在普通登录会话直接启动生产计算。

任务结束后查看自己的完整输出:

grep 'because EDIFF is reached' OUTCAR | tail -n 1
grep 'Linear response finished' native-vasp.out
tail -n 20 OUTCAR

不要只看到第一轮SCF收敛,就认为整个DFPT结束。还需要后续线性响应完成,XML中具有实际Hessian,以及正常结束信息。

5 传递原胞、DIM与路径,再提取#

qvasp -phonond需要实际DFPT vasprun.xml、POSCAR-unitcell以及匹配的band.conf。本例为:

ATOM_NAME = Si
DIM = 2 2 2
BAND = 0 0 0 .5 0 .5 .5 .25 .75 .375 .375 .75 0 0 0 .5 .5 .5
BAND_LABELS = G X W K G L
BAND_POINTS = 51
FORCE_CONSTANTS = READ

DIM=2 2 2必须与16原子的实际超胞对应。把DIM误改成3×3×3会要求54原子力常数,无法匹配现有数据。不要为了让程序读进去而随意改矩阵、原子数或截断数据。

在各个计算目录中:

module load qvasp/2.26
qvasp -phonond
ls FORCE_CONSTANTS band.yaml PhononBAND.dat

脚本依次从DFPT XML提取力常数、计算路径频率,再导出可画图的两列数据。资料包的 run-allocated.sh已在VASP完成后调用 post.sh,对两个目录分别执行上述步骤。

6 画图、读数与单位#

同一Si16超胞,两种电子积分网格的原始声子谱

两种网格Γ点三个简并光学频率约为513.353763与505.381113 cm⁻¹,相对变化约1.58%。原始声学支最小值约−0.0033356 cm⁻¹;图和CSV都保留这个微小负值,没有裁零,也未施加声学求和规则校正。

qvasp本接口采用转换因子521.471,输出单位为cm⁻¹,不能把它标为THz。Phonopy4.7.2独立计算的各路径频率与原生2.43.6结果一致;该一致性说明提取和单位衔接正确,不等于超胞、电子k网格或材料声子性质已经完全收敛。

实际力常数为16×16×3×3,原胞色散有6条支。PhononBAND.dat的空行和分段标记用于画图;横坐标沿用Phonopy不额外乘2π的路径距离。资料包脚本从完整YAML和数据文件画图,不删除接近零的频率。

下载包不含POTCAR、WAVECAR或完整原始OUTCAR/XML;重新计算会在自己的work中产生它们。资料包分发的是自己的实际数值力常数、结构、输入和频率数据。

参考:qvasp官方教程、VASP的DFPT声子、Phonopy与VASP DFPT。

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

查看配图

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

100%查看原图 ↗