Phonopy振动模式、热位移与随机快照
基于鸢算科技集群实际VASP数据的Phonopy 4.8.3终端操作、输入、数据和图片。
阅读本篇目录
下载完整输入、原始输出和后处理脚本。解压后进入phonopy-workflows子目录。在已分配的CPU资源中运行bash run.sh,可重建本文全部后处理结果;这不会重新提交VASP任务。
从同一套力常数继续提取信息#
本例使用硅声子工作流得到的真实力常数,提取群速度、Γ点模式动画、对称表示、热均方位移和300 K谐近似随机快照。
module purge
module load phonopy/4.8.3
python modes_sampling.py
ls modes/
1 频率与群速度#
脚本在原胞倒易q=(0.25,0,0.25)提取六个模式。频率为2.897970、2.897970、6.882433、14.344610、14.344610、14.564877 THz。群速度接口原始单位为THz·Å,乘100转为m/s;本例模长约2757.10、2757.10、6810.06、1425.16、1425.16、1398.96 m/s。
phonon.run_qpoints([[0.25, 0, 0.25]],
with_eigenvectors=True, with_group_velocities=True)
modes/RESULTS.json保留原始值和坐标。群速度是矢量,不能把一个分量直接当成模长。
2 查看一个振动模式#
modes/gamma-modes.xyz给出Γ点第4支模式的20帧动画,可用OVITO等支持多帧XYZ的软件打开。本例显示振幅为0.1 Å,只是可视化设置,不是300 K物理振幅。modes/irreps.yaml给出Γ点不可约表示分析。
head -n 12 modes/gamma-modes.xyz
cat modes/irreps.yaml
看动画时重点是相对运动方向和相位,而不是为了好看设置的放大幅度。
3 热均方位移#
使用12³完整q网格与本征矢,排除Γ点声学平移并取0.1 THz频率下限。本例硅各方向相同,单方向均方位移为:
| 温度/K | ⟨uₓ²⟩/Ų |
|---|---|
| 0 | 0.00265158 |
| 100 | 0.00376180 |
| 300 | 0.00845883 |
| 600 | 0.01623808 |
0 K的非零值来自零点振动。不同网格或低频截断会影响数值;与更密网格结果比较时应保留这些设置。
4 生成随机热快照#
mkdir -p my-random
cd my-random
phonopy ../si/analysis/v100/phonopy.yaml \
--rd 4 --rd-temperature 300 --random-seed 27129 --cutoff-freq 0.1
ls POSCAR-* phonopy_disp.yaml
上面生成4个可独立计算的新POSCAR。Python脚本生成20个同类快照,输出为modes/POSCAR-random-000等,并核对相同种子的重复性。

随机快照是从谐振动分布采样的独立构型,不是分子动力学轨迹,不能用相邻快照计算扩散系数。有限16原子超胞上的20个快照也不应被要求与12³网格热均方位移精确相等。
本包没有为这些新快照做DFT受力计算。如用于训练势函数,还需分别提交能量/力计算、检查标签并划分训练与测试集。Phonopy生成新位移数据后会重置部分派生状态;若要再次从同一力常数采样,重新载入原始phonopy.yaml,不要误用已被更新的对象。