LAMMPS 专题

LAMMPS ADP与MEAM Kokkos实操

Al–Cu和Ni完整输入、势文件格式、元素映射、Kokkos启动、质量与固定晶胞应力。

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

下载完整输入、势文件、实际结果与绘图脚本,在一个新目录解压后,先查看已有结果:

bash run.sh

得到 analysis/ 和 figures/。重新计算时先核对 submit.slurm 的分区适合自己的账户,然后:

sbatch submit.slurm

模板申请1个CPU核、1个P100,顺序计算76个小体系条件,再分析自己的结果。直接运行 bash run.sh compute 或文中的 lmp 命令时,必须已经处于分配好的计算资源中。已有 work/analysis/figures 时请另解压一份;只有 work 而没有分析/图目录时可用 bash run.sh analyze 继续后处理。

本例使用LAMMPS 30Sep2026,GCC 13.3、OpenMPI 5.0.10、CUDA 12.8;GPU包Mixed Precision,Kokkos 5.2.1双精度。已链接PLUMED 2.9.4,本文没有施加偏置。后处理使用ASE 3.29环境的NumPy与Matplotlib。普通CPU计算路径在同一P100计算资源上完成,不是Intel Xeon 8173M性能测试。

1. 两类势分别用于什么#

本例补充Al–Cu ADP和Ni MEAM。两者都含局域环境/角向描述,输入格式及参数来源不同。Al–Cu使用原配套 AlCu.adp;Ni使用 library.meam 中的 Ni 项,本例不叠加额外MEAM参数文件。

模型 本例结构 普通路径 本例GPU加速路径
Al–Cu ADP 108原子FCC,a=4.05 Å,5个组成 adp adp/kk
Ni MEAM 108原子FCC,参照a=3.52 Å,5个尺度 meam meam/kk

本例不使用 adp/gpu 或 meam/gpu。一个编译环境中存在普通样式,不代表该普通样式正在GPU上求力;要看实际调用的后缀、启动方式和运行输出。

2. Al–Cu ADP的完整Kokkos输入#

inputs/alcu-composition-0p5-kk/in.lammps:

package kokkos neigh half
newton on
units metal
atom_style atomic/kk
boundary p p p
lattice fcc 4.05
region box block 0 3 0 3 0 3
create_box 2 box
create_atoms 1 box
group copper id <= 54
set group copper type 2
pair_style adp/kk
pair_coeff * * potentials/AlCu.adp Al Cu
neighbor 0.5 bin
neigh_modify every 1 delay 0 check yes
compute pea all pe/atom
compute pesum all reduce sum c_pea
thermo 1
thermo_style custom step atoms pe vol press c_pesum
thermo_modify norm no format float %.16g
run_style verlet/kk
run 0
write_dump all custom final.dump id type mass x y z fx fy fz c_pea modify sort id format float %.16g
print "$(pe:%.16g) $(vol:%.16g) $(press:%.16g) $(c_pesum:%.16g)" file energy.dat screen no

Al Cu依次对应type 1和type 2。ADP文件不能直接交给 eam/alloy 读取。本例按ID把54个原子换成Cu,保持固定晶胞,没有把它当作充分优化的合金结构。

单独运行这份输入时,在已分配计算资源中执行:

module purge
module load lammps/30Sep2026-p100-kokkos
cd inputs/alcu-composition-0p5-kk
cp -r ../../potentials .
lmp -k on g 1 -in in.lammps
cat energy.dat

-k on g 1为本MPI进程启用分配到的1个GPU;配套 atom_style atomic/kk、pair_style adp/kk 和 run_style verlet/kk。默认仍遵守作业的CUDA可见设备,不另选未分配的卡。

本例等原子数Al–Cu普通路径的全胞能量为 -346.71585864 eV,压力约−30.57 GPa。这么大的应力提示该固定FCC晶胞与组成未处于平衡,正式物性计算前需要结构/晶胞优化与适合的相模型。这里保留原值,演示如何及时识别它。

3. Ni MEAM的完整Kokkos输入#

inputs/meamni-force-0-kk/in.lammps:

package kokkos neigh half
newton on
units metal
atom_style atomic/kk
boundary p p p
lattice fcc 3.52
region box block 0 3 0 3 0 3
create_box 1 box
create_atoms 1 box
pair_style meam/kk
pair_coeff * * potentials/library.meam Ni NULL Ni
neighbor 0.5 bin
neigh_modify every 1 delay 0 check yes
group probe id 1
displace_atoms probe move 0.03 0 0 units box
compute pea all pe/atom
compute pesum all reduce sum c_pea
thermo 1
thermo_style custom step atoms pe vol press c_pesum
thermo_modify norm no format float %.16g
run_style verlet/kk
run 0
write_dump all custom final.dump id type mass x y z fx fy fz c_pea modify sort id format float %.16g
print "$(pe:%.16g) $(vol:%.16g) $(press:%.16g) $(c_pesum:%.16g)" file energy.dat screen no

pair_coeff 的结构为 library.meam Ni NULL Ni:前面的Ni从库中选条目,NULL表示本例不读取第二份附加参数文件,最后的Ni映射唯一原子类型。多组分MEAM需选对应元素和适合的交叉参数,不能把单元素示例机械扩展成任意合金。

在已分配计算资源中:

module purge
module load lammps/30Sep2026-p100-kokkos
cd inputs/meamni-force-0-kk
cp -r ../../potentials .
lmp -k on g 1 -in in.lammps

这份输入把1号原子沿x移动0.03 Å,用来获得非零力。下载包还包括参照晶格常数乘0.98、0.99、1、1.01、1.02的五个固定晶胞条件,以及普通CPU路径的逐项对照。

Ni MEAM体积曲线及实际压力差分

曲线中CPU与Kokkos几乎重合,是相同势、相同坐标下的数值比较;五点扫描没有代替完整的结构/晶胞优化与收敛研究。

4. 质量、输出与后续检查#

原势文件中的Al质量为26.982、Cu为63.546;本份MEAM库中的Ni为58.71,与Cu–Ni EAM文件中的Ni 58.689略有差别。脚本按实际势文件读取和核对,没有用一组通用原子量强行覆盖所有势。

在包根目录查看:

head analysis/conditions.csv
head analysis/forces.csv
head analysis/pressures.csv

实际逐原子输出是 final.dump,含类型、质量、坐标、力及逐原子势能;energy.dat含全胞势能、体积、压力和逐原子势能求和。需要判断差分值和单位时,继续看能量、力与压力的独立检查。完整势文件作者、参数来源和日期保留在下载包头部,另见LAMMPS ADP官方命令和MEAM官方命令。

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

查看配图

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

100%查看原图 ↗