hiPhive 力常数拟合入门
从真实Si力数据出发,按准备、拟合、检查和导出顺序学习hiPhive。
阅读本篇目录
hiPhive把一批结构的原子位移与力,拟合成满足晶体对称性的力常数模型。可以用它准备Phonopy、phono3py、ShengBTE的输入,也可以导出GPUMD FCP。在本专题中,先用真实Si数据跑通整个流程,再逐项理解基组、训练集和导出文件。

按什么顺序操作#
- 准备参考结构和同一晶胞的一批位移结构,用DFT或已验证的势计算原子力。
- 统一原子对应、周期镜像与单位;保留参考位置。
- 确定二/三阶截断,建立ClusterSpace与StructureContainer。
- 按构型分训练/留出集,拟合参数并观察误差。
- 导出指定超胞的完整力常数,再交给下游程序。
本例直接提供可读的 Si-reference.xyz 和38帧 Si-forces.xyz,力来自鸢算科技集群已有ABACUS Si16实算。本次复用这些真实力,没有把模型自己生成的力冒充DFT标签。两个零位移重复帧仍在原始文件中,拟合时去掉,最终36个非零构型按正负位移成组分成28个训练、8个留出。
先读一帧数据#
module load hiphive/1.5
head -n 5 Si-reference.xyz
head -n 5 Si-forces.xyz
python - <<'PY'
from ase.io import read
ref = read('Si-reference.xyz')
frames = read('Si-forces.xyz', index=':')
print('原子数:', len(ref), '力数据帧数:', len(frames))
print(frames[0].get_forces()[:2])
PY
应看到16个原子和38帧。XYZ中位置为Å,力为eV/Å;用其他计算软件输出时,先确认Bohr、Hartree、Ry等单位已正确转换。只改列标题不会转换数值。
选择一个入口#
| 目标 | 操作 | 主要输出 |
|---|---|---|
| 先查看随包结果 | bash analyze.sh |
曲线、CSV、二三阶误差 |
| 从可读XYZ重新拟合并检查下游格式 | sbatch labels.slurm |
labels-fit/ |
| 重跑两种阶数与全部GPUMD条件 | sbatch run.slurm |
fit/、work/、work-fcp/ |
| 只拟合与检查基组 | 已分配CPU任务内 bash fit.sh |
二阶2参数、三阶5参数模型 |
labels.slurm 是独立的替代流程,包含一次GPU静态检查,不是自动重复整套51个条件。两种入口分别使用XYZ和NPZ形式的同一来源数据,XYZ力列的十进制保留造成约5×10⁻⁹eV/Å舍入差。
分篇阅读#
- 对称性、簇与基组:二阶、三阶到底是什么,为什么不等于不同原子个数。
- 真实力数据拟合:准备结构、分组留出、最小二乘与误差。
- 导出与下游读取:Phonopy、phono3py、ShengBTE和GPUMD。
- GPUMD FCP运行:参考坐标、静态计算及混合精度。
完整软件接口参见hiPhive官方工作流。当前Si小模型截断为3Å,只用于流程学习;不能凭单个小晶胞和小位移留出误差证明它适用于缺陷、其他温度、任意应变或化学环境。
下载与完整运行#
下载输入、真实力数据、参考输出和全部绘图脚本,解压到自己的工作目录。先重画随包结果,不重新计算:
bash analyze.sh
输出在 reference/analysis/ 和 reference/figures/。在新解压目录提交完整的两种hiPhive拟合、7组层状结构和44组FCP条件:
sbatch run.slurm
默认一张P100、一个CPU核、30分钟,分区为 gpu-8p100-hs;GPU套餐用户按自己的权限改为例如 gpu-8p100-tc。需要按条件并行提交时:
bash submit.sh
这会生成带依赖的拟合、51个条件和分析作业。只生成脚本用 bash submit.sh --dry-run。全部结束后查看 work/analysis/ 和 work/figures/,或重新分析:
bash analyze.sh work work-fcp fit
bash fit.sh 是CPU拟合入口,bash run.sh 条件名 是已经分配计算资源后的单例入口;不要在登录节点直接启动GPUMD。拟合脚本不覆盖已有 fit/,计算也不覆盖已有结果;重新计算整套请重新解压。单例完成后可以直接查看输出,统一分析需要整套条件齐全。
本例使用GPUMD5.9.1 P100构建(GCC13.3、CUDA12.9)、hiPhive1.5及ASE环境,读取导出文件使用Phonopy4.8.3、phono3py4.8.2。入口脚本会加载对应模块或已安装的工具环境。当前示例是短小的操作参考,不代替势函数、超胞、截断、位移幅度与采样的收敛检查。
截断、温度与晶格热输运实例#
hiPhive截断与阶数、正则化与独立验证、有限温度力常数提供Si64 NEP标签的完整短轨迹和拟合;ShengBTE专题则用已有真实ABACUS力常数演示RTA/迭代、数值参数、同位素、纳米线、寿命/MFP及Wigner输出。两类数据来源分开说明,终端输入、真实图和下载包配套,有限模型与短采样不作收敛材料性质或性能排名。
Phono3py热输运与频率分辨实例#
Phono3py专题提供真实Si16位移、ABACUS力收集、FC2/FC3、RTA/LBTE、同位素/边界、谱函数和累计热导的完整终端操作。28个短条件、13个配套工具命令与10张结构/数据图可复现;同一批有限力常数模型的网格/展宽差异保留,不作为收敛材料热导率。