py4vasp专题

py4vasp声子色散与DOS实操

Si小超胞真实力常数、完整声子路径和均匀q网格DOS,展示VASP计算、复用力常数及py4vasp读取绘图。

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

已有Γ点模式不等于声子色散。要画随q点变化的分支,先从超胞得到力常数,再做傅里叶插值;声子DOS使用均匀q网格,不能用一条高对称路径代替。

本篇在鸢算科技集群实际计算Si16原子超胞,得到80个路径点、每点6条原胞声子分支,并用同一力常数计算6³和12³均匀网格DOS。下载完整输入、数值和绘图程序,保存为 py4vasp-phonon.zip。

1 先看结构与结果#

实际Si16超胞与声子DOS模式数检查

采用晶格常数5.43 Å的Si金刚石原胞,重复2×2×2得到16原子超胞。这里固定晶胞,使用对称参考结构计算有限位移力;参考结构的最大原子力为0。它是有限超胞教学例,没有完成超胞尺寸、k网格和截断能的材料级收敛研究。

VASP 6.6.1 HDF5 GPU构建使用NVHPC 25.3、CUDA 12.8和串行HDF5 1.14.6;P100/V100 16G使用对应模块和配套MPI。py4vasp固定0.11.3,绘图用ASE 3.29.0环境中的Matplotlib。

先重画已有数值,不提交新计算:

python3 -m zipfile -e py4vasp-phonon.zip .
cd py4vasp-phonon-band-dos-wave282
bash run.sh
ls analysis/figures

2 准备力常数计算#

bash prepare.sh

选择 1(力常数与色散),GPU选择 1 为P100、2 为V100 16G,再按提示提交:

cd work/forceconstants
sbatch run.sh

程序会复制完整输入和本地授权Si势文件。实际任务使用1个MPI进程与1张GPU,核心命令是:

module load vasp/6.6.1-p100-hdf5
mpirun --bind-to none -np 1 vasp_std > vasp.log 2>&1

完整POSCAR:

Si
 1.0000000000000000
     0.0000000000000000    5.4299999999999997    5.4299999999999997
     5.4299999999999997    0.0000000000000000    5.4299999999999997
     5.4299999999999997    5.4299999999999997    0.0000000000000000
 Si 
  16
Direct
  0.0000000000000000  0.0000000000000000 -0.0000000000000000
  0.1250000000000000  0.1250000000000000  0.1250000000000000
  0.0000000000000000  0.0000000000000000  0.5000000000000000
  0.1250000000000000  0.1250000000000000  0.6250000000000000
  0.0000000000000000  0.5000000000000000 -0.0000000000000000
  0.1250000000000000  0.6250000000000000  0.1250000000000000
  0.0000000000000000  0.5000000000000000  0.5000000000000000
  0.1250000000000000  0.6250000000000000  0.6250000000000000
  0.5000000000000000  0.0000000000000000 -0.0000000000000000
  0.6250000000000000  0.1250000000000000  0.1250000000000000
  0.5000000000000000  0.0000000000000000  0.5000000000000000
  0.6250000000000000  0.1250000000000000  0.6250000000000000
  0.5000000000000000  0.5000000000000000 -0.0000000000000000
  0.6250000000000000  0.6250000000000000  0.1250000000000000
  0.5000000000000000  0.5000000000000000  0.5000000000000000
  0.6250000000000000  0.6250000000000000  0.6250000000000000

完整INCAR:

SYSTEM=Si16-native-phonon-band
ENCUT=450
PREC=Accurate
EDIFF=1E-6
EDIFFG=-0.02
IBRION=6
NFREE=2
POTIM=0.015
NSW=1
ISIF=2
ISYM=2
NBANDS=48
KPAR=1
ISMEAR=0
SIGMA=0.05
ALGO=Normal
NELM=160
LREAL=.FALSE.
LASPH=.TRUE.
LWAVE=.FALSE.
LCHARG=.FALSE.
LPHON_DISPERSION=.TRUE.
PHON_NWRITE=1

IBRION=6 通过有限差分计算力常数,并利用对称性减少独立位移;NFREE=2 使用正负位移,POTIM=0.015 是位移幅度,单位Å。本例实际有1个独立位移自由度,原始参考加正负位移共3次力评估。

EDIFF=1E-6 控制电子自洽。计算声子前先确认参考结构的原子力足够小,通常可按0.02 eV/Å的结构优化阈值准备;不能要求每个故意位移的结构也满足零力。

电子KPOINTS:

Si16 electronic mesh
0
Gamma
3 3 3
0 0 0

声子路径单独写在QPOINTS中,电子k点和声子q点不要混用:

Si primitive phonon reference path
20
Line-mode
Reciprocal
0 0 0 ! G
0.5 0 0.5 ! X

0.5 0 0.5 ! X
0.5 0.25 0.75 ! W

0.5 0.25 0.75 ! W
0 0 0 ! G

0 0 0 ! G
0.5 0.5 0.5 ! L

每段20点,四段共80点,段边界有重复端点。LPHON_DISPERSION=.TRUE. 会利用刚得到的力常数计算这条原胞路径;PHON_NWRITE=1 把各q点频率写入OUTCAR。

3 检查输出并保留力常数#

tail vasp.log
ls -lh vaspout.h5
grep 'q-point No.' OUTCAR | head

保留 vaspout.h5、OUTCAR和输入。后面的DOS可以直接复用力常数,不需要再做有限位移与SCF。

4 生成均匀网格DOS#

返回资料包根目录:

cd ../..
bash prepare.sh

选择 2 准备6³网格DOS,GPU类型按实际资源选择,再提交:

cd work/dos-mesh6
sbatch run.sh

返回根目录选择 3,准备并提交12³网格DOS。脚本把 work/forceconstants/vaspout.h5 复制为各目录的 vaspin.h5,并使用以下INCAR:

SYSTEM=Si16-reused-FC-DOS6
LPHON_READ_FORCE_CONSTANTS=.TRUE.
LPHON_DISPERSION=.TRUE.
PHON_DOS=1
PHON_SIGMA=0.001
PHON_NEDOS=301
PHON_NWRITE=1
ENCUT=450
EDIFF=1E-6
IBRION=-1
NSW=0
ISYM=2
ISMEAR=0
SIGMA=0.05
LREAL=.FALSE.
LWAVE=.FALSE.
LCHARG=.FALSE.

DOS的QPOINTS:

Uniform phonon DOS mesh
0
Gamma
6 6 6
0 0 0

LPHON_READ_FORCE_CONSTANTS 读取已有力常数,VASP完成声子后处理后直接退出;本例两档DOS实际没有新的SCF迭代。PHON_DOS=1 是高斯展宽,PHON_SIGMA=0.001 的单位是eV,约等于0.241799 THz。

DOS必须用均匀网格。即使程序接受路径点并给出谱形,也不能把路径采样当作代表整个布里渊区的态密度。VASP官方流程对两类QPOINTS及力常数复用有相同区分。

5 提取并画自己的结果#

两档DOS都结束后,回到资料包根目录:

bash extract.sh
ls analysis-my-run/tables
ls analysis-my-run/figures

脚本调用真实py4vasp接口,导出CSV与Plotly数据,再绘制静态图;没有重新调用VASP。它还会把80×6个频率与原生OUTCAR逐项比较,并检查DOS的模式数与投影求和。

Si实际声子色散与两档均匀q网格DOS

Γ点三个光学模式均约15.429901 THz,三个声学模式的数值在约10⁻⁷ THz量级,属于这里的数值零。原胞有两个原子,因此每个q点应有6条分支;不要把16原子超胞的48个位移自由度误认为插值后的原胞分支数。

接下来见声子投影、单位与积分。换成其他材料时,需重新建超胞、生成相应声子路径,并检查极性材料的长程修正与超胞收敛;不能只替换元素名后照抄Si的结果。

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

查看配图

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

100%查看原图 ↗