GPUMD 有限位移声子色散
有限位移声子色散,包含终端命令、完整输入与集群实际算例。
阅读本篇目录
本文使用鸢算科技集群GPUMD 5.9.1实际运行结果。先下载全部实例与绘图脚本并解压,进入gpumd-examples目录。参考结果在cases,新运行放在work;不要在参考目录重复运行,让输出不断追加。
本篇做什么#
以硅两原子原胞为输入,复制为超胞计算有限位移力常数,并沿Γ—X—L—Γ绘图。

1 准备算例#
python new-case.py 10-phonon
cd work/10-phonon
ls
附件中已包含结构与势文件,不需要自己输入几百行坐标。若要从自己的结构开始,请先阅读建模与输入文件。
2 查看和修改输入#
replicate要放在potential之前。model.xyz定义基元,replicate 5 5 5定义力常数超胞;kpoints.in坐标对应原胞倒易基矢。many-body势的力常数范围可能大于势本身截断,需要检查超胞尺寸。
10-phonon / run.in
replicate 5 5 5
potential potential.txt
compute_phonon 0.01
10-phonon / kpoints.in
0 0 0 G
0.5 0 0.5 X
0.5 0.5 0.5 L
0 0 0 G
3 提交并检查进度#
sbatch run.sh
squeue -u "$USER"
tail -n 20 run.log
默认脚本用于V100核时队列。P100或套餐用户先运行yskit,选择复制Slurm脚本及匹配的用户类型、GPUMD版本、GPU型号。单进程启动,不要再套mpirun启动多个相同实例。
本例在计算节点执行的命令为:
gpumd > run.log 2>&1
这条命令已经在提交脚本内,平时只需sbatch run.sh。等待任务结束、查看日志,再读取结果。
4 查看结果和本次数据#
omega2.out首列为路径距离,后续列为频率平方。负值不能简单取绝对值掩盖虚频,绘图用带符号平方根显示。近Γ极小负值需检查数值精度;明显负支需要检查结构和势函数。
head -n 12 omega2.out
| 本次集群算例 | 实际数值摘要 |
|---|---|
10-phonon |
数值输出见下方摘录与原始附件 |
本次omega2.out开头的数据(完整文件在附件中):
0.000000 -9.22134e-10 -4.70363e-10 5.64358e-10 9714.63 9714.63 9714.63
0.011569 0.431278 0.431287 0.857345 9714.29 9714.35 9714.35
0.023138 1.72484 1.72488 3.42898 9713.26 9713.53 9713.53
0.034707 3.87987 3.87995 7.71369 9711.56 9712.15 9712.15
工具选择与输入格式#
GPUMDkit的414可用NEP有限位移计算并用gpumdkit.sh -plt phonon画图,但它需要专门的QPOINTS与phonon_NEP.dat。本篇原生GPUMD输出是omega2.out,不能把文件改名后直接传给工具;本篇按ω²转频率并使用附件plot.py。完整的工具入口见GPUMDkit结构、XRD与声子。
5 用自己的输出重新画图#
回到附件根目录,加载绘图环境:
cd ../..
module load ase/3.29.0
python plot.py --chapter phonon --root work
如果想先查看附件里的参考数据,执行python plot.py --chapter phonon。生成的图片在相应根目录的figures中,脚本只读取数据,不修改结果。

换成自己的体系时#
先确认结构、元素和势函数适用范围,再确定温度、边界条件、时间步长与统计长度。随机初速度会使短程数值不同;复现时先比较数量级、趋势、能量稳定性和输出维度。正式研究应做势函数可靠性、尺寸与时间收敛检查。