GPUMD专题

GPUMD 多元素映射与原子顺序

双组分LJ与SiGe真实对照,元素顺序、参数重排、原子置换与能量力核对。

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

多元素体系最容易出错的地方,是把“原子在文件里的行号”“元素符号”“势中的类型顺序”当成同一个东西。本篇用真实运行的双组分LJ和SiGe模型,展示怎样修改和核对。

同一物理结构在三种文件排列中的投影和实际能量

1. 元素符号与行号各自代表什么#

model.xyz 每行的 Ar/Ne/Si/Ge 说明这个位置是什么元素;第几行只是当前原子排列。势文件首行及后续参数有自己的元素顺序。不能只按模型中哪个元素先出现就猜参数类型,也不能只改势首行而保持后面的参数不动。

例子中的binary-LJ是用于演示映射的自定义系数,不是经材料验证的真实Ar–Ne力场。完整势文件为:

lj 2 Ar Ne
0.01032 3.405 8.5
0.00700 3.100 8.5
0.00700 3.100 8.5
0.00310 2.750 8.5

第一行是 lj、元素种类数、元素顺序。随后四行依次是Ar–Ar、Ar–Ne、Ne–Ar、Ne–Ne的 epsilon sigma cutoff,单位分别为eV、Å、Å;交叉项在本例中明确给定且对称,不依赖程序自动混合。

2. 改原子行顺序,几何和元素仍要绑定#

在计算资源里分别执行:

bash run.sh binary-lj
bash run.sh binary-lj-reordered
head -n 5 inputs/binary-lj/model.xyz
head -n 5 inputs/binary-lj-reordered/model.xyz

第二例只调整原子行顺序,元素、质量和坐标整行一起移动;CASES.json 中保存了实际置换表。比较力时,也必须先按这个置换对应同一个物理原子,不能直接把两份输出的第0行相减。

本次双组分LJ的总能量差为 1.825e-07 eV,对应原子的最大力差为 3.274e-09 eV/Å。这种微小差别可以来自计算累加顺序;不要求所有GPU结果逐位相同。

3. 改势的元素顺序,参数必须同步重排#

第三例把势元素顺序改成Ne、Ar,同时将四组参数改成Ne–Ne、Ne–Ar、Ar–Ne、Ar–Ar:

lj 2 Ne Ar
0.00310 2.750 8.5
0.00700 3.100 8.5
0.00700 3.100 8.5
0.01032 3.405 8.5

bash run.sh binary-lj-reversed-potential

这次结构保持原顺序,仅使用同步重排后的等价势。实算总能量和力与原例相同。只交换首行元素名称会改变物理模型,不是等价的格式转换。

4. SiGe势再做一次真实材料参数对照#

bash run.sh sige-tersoff
bash run.sh sige-tersoff-reordered
head -n 3 inputs/sige-tersoff/potential.txt

这里使用官方5.9.1随附的 SiGe_Tersoff_1989.txt,首行为 tersoff_1989 2 Si Ge。216原子结构中Si与Ge各占一半;本篇没有做混合自由能或相稳定性研究。调整原子行顺序后的能量差为 1.137e-13 eV,最大力差为 8.882e-16 eV/Å。

5. 换成自己的多元素体系#

先列出结构的元素,再确认势真的包含这些元素及你关心的局域环境。需要不同物种时,换用相容且经过验证的势;不要为了“程序能读”就把元素名称改成别的材料。完整质量/速度/分组列也要与原子一起移动。最后在相同物理构型上检查能量、力、元素计数和周期边界,再进入正式MD。

原生静态输出和差分方法见势函数加载与静态检查;官方model.xyz说明给出本版本读取的属性名。

下载、提交与分析#

下载完整结构、势参数、控制输入、参考结果和绘图脚本,解压后进入目录。先分析随包真实结果:

bash analyze.sh

输出在 reference/analysis/RESULTS.json 和 reference/figures/。提交默认硅实例:

sbatch run.slurm

需要其他实例时,只修改 run.slurm 中的 CASE_NAME。整套19条件及依赖分析可以在新解压目录提交:

bash submit.sh

只看生成的脚本、不提交,用 bash submit.sh --dry-run。工作结果写入 work/条件名;整套19条件完成后运行 bash analyze.sh work。只运行一个条件时,直接查看对应的 snapshot.xyz、thermo.out 和日志;这个统一分析入口需要全套条件。已有 work/jobs 不覆盖,重新执行整套流程请重新解压。

默认分区为 gpu-8p100-hs,单进程、一张P100、一个CPU核。套餐用户按自己可用的分区修改,例如 gpu-8p100-tc;整套提交同时修改 submit.py 中的partition。正文的 bash run.sh 条件名 只在已分配的计算资源内执行,不在登录或管理节点直接启动计算,也不套 mpirun。

环境固定为 gpumd/5.9.1-p100,GCC13.3、CUDA12.9,公共构建含PLUMED2.10.1和NetCDF-C4.10.1;本批没有施加PLUMED偏置。CPU分析使用ASE3.29.0环境中的NumPy/Matplotlib。公开运行脚本按集群现有模块加载,不需要另行安装软件。

这些实例做静态输入和数值关系演示,不是材料精度、物性收敛或GPU性能评测。换成客户体系时,先确认元素、化学环境、边界与势的适用范围,再做优化和动力学。

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

查看配图

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

100%查看原图 ↗