hiPhive专题

hiPhive 有限温度力常数与频移

用六条真实Si温度轨迹拟合有效谐模型,实际调用Phonopy并展示采样与种子波动。

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

有限温度轨迹包含不同振幅的位移和力。给每个温度拟合一个有效谐模型,再用Phonopy计算频率,就能学习“轨迹→温度相关力常数→声子”的操作流程。本例采用NEP标签、固定体积Si64,不是新做的DFT计算,也没有包含热膨胀。

三个温度的实际Si位移投影,箭头放大3倍

1. 从同一个晶胞生成六条轨迹#

每个温度两组初速度种子。下面是600K种子1的完整 run.in:

potential potential.txt
velocity 600 seed 2612701
time_step 1
ensemble nvt_bdp 600 600 100
dump_thermo 100
run 5000
ensemble nvt_bdp 600 600 100
dump_thermo 100
dump_xyz 100 trajectory.xyz precision double mass velocity force potential
dump_restart 20000
run 20000

前5000步准备,后20000步生产,步长1fs。每个run前重新指定ensemble;输出设置也按阶段重新声明。模型坐标是金刚石Si常规晶胞2×2×2、64原子、立方边长10.86Å,完整 model.xyz 已随包。

在已分配P100任务中只运行这条轨迹:

bash run.sh si-600K-seed1
head -n 3 work/si-600K-seed1/trajectory.xyz
tail -n 2 work/si-600K-seed1/thermo.out

轨迹头的Time是累计时间,生产首帧5100fs、末帧25000fs;拟合所说的1–20ps是从生产段起点计时。GPUMD输出中包含各原子的力和能量。入口还取三个构型做零步静态重算,确认标签与当前几何配套。

2. 抽帧、分组,再拟合#

每条生产轨迹200帧,每1ps取一帧,得到20个构型。种子1前12帧训练、后8帧验证,种子2的20帧测试;温度频率对照固定使用5Å截断的二阶OLS模型。随后交换种子,独立拟合第二套温度模型。

bash fit.sh
cat fit/RESULTS.json
cat fit/REPLICATES.json
cat fit/PHONONS.json

不要把同一构型的x、y、z力分量打散到训练和测试。不同初速度轨迹可以帮助观察采样差异,但只有两个种子不能给出稳健置信区间。

位移平方的实际相关函数,以及训练/验证/测试的时间分块

左图仅用位移平方和这一标量观察相关性,并非所有力常数参数的独立样本数。相隔1ps不是“已不相关”的证明,正式应用应增加采样时长、分块和独立轨迹。

3. 导出后真正调用Phonopy#

fit/finite-T-300K/ 等目录保存二阶文本、HDF5和模型,种子2目录增加 -seed2。脚本按原子坐标重排超胞,再构造2原子原胞,实际计算Γ–X–Γ–L共91个q点:

module purge
module load phonopy/4.8.3
python phonons.py fit
cat fit/PHONONS.json

路径用FCC原胞倒空间分数坐标,Γ=(0,0,0)、X=(0.5,0,0.5)、L=(0.5,0.5,0.5)。更换结构后需要重新生成相应路径,不能机械沿用这些点。

实际六套温度拟合模型的声子分支

4. 观察频移,也观察种子波动#

目标温度/K 种子1 Γ光学均值/THz 种子2 Γ光学均值/THz 两者均值/THz
300 14.669215 14.340828 14.505021
600 14.070035 14.218243 14.144139
900 14.143412 13.798876 13.971144

实际Γ点光学模均值、两种子范围和生产温度曲线

这里的Γ光学均值是三个光学分支的均值。300→600→900K的两种子平均值下降,但种子1的600→900K并不单调,说明短轨迹拟合的采样波动不可忽略。图中误差棒是两种子范围的一半,不是95%置信区间。

声学Γ点在数值上接近零,不表示整个布里渊区稳定;图中有限路径也不能替代完整网格。当前差异同时受小超胞、有限采样、截断和谐模型近似影响,不能直接作为硅的收敛实验频移。有效谐模型的背景参见hiPhive官方实例。

下载与运行#

下载Si64轨迹、输入、拟合模型与绘图脚本。解压后先看随包结果:

bash analyze.sh

结果位于 reference/analysis/,图片位于 reference/figures/。在新的解压目录重新运行全部六个温度/种子条件、拟合和声子处理:

sbatch run.slurm

默认一张P100、一个CPU核、30分钟,分区为 gpu-8p100-hs;套餐用户按自己的权限改为例如 gpu-8p100-tc。也可将六个条件并行提交:

bash submit.sh

并行入口在 submit.py 中修改分区;只生成脚本用 bash submit.sh --dry-run。全部完成后:

bash analyze.sh work fit static-checks

bash run.sh si-600K-seed1 是已经分配GPU资源后的单例入口,会做该条MD和三个末态抽查;拟合需要六条轨迹齐全,再用 bash fit.sh。不要在登录节点直接运行MD。重跑请重新解压,脚本不会覆盖已有work/fit/jobs目录。

本例环境为GPUMD5.9.1 P100构建(GCC13.3、CUDA12.9)、hiPhive1.5与Phonopy4.8.3,入口已配置所需Python工具环境。力标签由 Si_2022_NEP4_5body.txt 产生,不是DFT力;它用于低成本演示拟合与判断参数。64原子、每条20ps生产轨迹和两个种子不足以给出收敛材料频移、完整稳定性或精度排名。

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

查看配图

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

100%查看原图 ↗