LAMMPS ADP与MEAM实操
实际运行Al ADP与Si MEAM,说明元素映射、library/参数文件、普通执行路径和角向模型范围。
阅读本篇目录
ADP与MEAM在相应嵌入模型中引入角向或环境相关项,读取方式和普通两体势不同。本篇分别用Al的ADP文件和Si的MEAM库,实际完成九点能量—体积扫描。
下载五种势模型输入、冻结势文件、实际EOS和压力数据、ASE分析脚本,解压进入run.sh目录。
1 提交整套流程#
sbatch submit.slurm
模板申请核时P100分区1GPU1CPU,顺序完成五种势的普通EOS、三种EAM的GPU对照及五组普通路径压力差分。共有8个EOS后端运行、每个9个体积点,另有5个压力检查、每个3点,共87次固定结构能量与压力求值;按五个势模型工作流组织。
套餐用户用yskit生成所属分区脚本,在已分配资源中执行bash run.sh;不要在登录节点计算。多卡仅使用分配的CUDA可见设备和CPU亲和范围,每卡一个势模型工作流,每程序1MPI1OMP。已有work请重新解压。
LAMMPS30Sep2026、GNU C++13.3.0/C++17、Open MPI5.0.10、CUDA GPU包混合精度;分析ASE3.29.0。普通路径在同一P100节点运行,不是CPU专用节点的性能数据。inputs保存新输入、DATA为本例势文件、reference为实际原始输出、work为新计算。
2 Al ADP完整输入#
units metal
atom_style atomic
boundary p p p
lattice fcc 4.05
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
pair_style adp
pair_coeff * * ../DATA/AlCu.adp Al
neighbor 0.3 bin
thermo_style custom step atoms pe vol press
thermo_modify norm no format float %.16g
variable a index 3.888 3.9285 3.969 4.0095 4.05 4.0905 4.131 4.1715 4.212
label scan
change_box all x final 0 $(4*v_a) y final 0 $(4*v_a) z final 0 $(4*v_a) remap units box
run 0
print "EOS ${a} $(vol:%.16g) $(pe:%.16g) $(press:%.16g) $(atoms:%.0f)" append eos.dat screen no
write_dump all custom atoms-${a}.dump id type x y z fx fy fz modify sort id format float %.16g
next a
jump SELF scan
AlCu.adp包含Al与Cu;本例一种原子类型映射到Al。ADP扩展的嵌入模型考虑局部环境的角向项,文件除常规EAM相关表外还包含相应函数,不能直接当普通setfl交给eam/alloy读取。
本例为256个FCC Al原子,基准格常数4.05Å,扫描±4%的9点。原始势文件头注明Apostol与Mishin(2011)等来源,具体参数适用范围应以相应原始文献为准。
3 Si MEAM完整输入#
units metal
atom_style atomic
boundary p p p
lattice diamond 5.431
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
pair_style meam
pair_coeff * * ../DATA/library.meam Si NULL Si
neighbor 0.3 bin
thermo_style custom step atoms pe vol press
thermo_modify norm no format float %.16g
variable a index 5.21376 5.26807 5.32238 5.37669 5.431 5.48531 5.53962 5.59393 5.64824
label scan
change_box all x final 0 $(4*v_a) y final 0 $(4*v_a) z final 0 $(4*v_a) remap units box
run 0
print "EOS ${a} $(vol:%.16g) $(pe:%.16g) $(press:%.16g) $(atoms:%.0f)" append eos.dat screen no
write_dump all custom atoms-${a}.dump id type x y z fx fy fz modify sort id format float %.16g
next a
jump SELF scan
MEAM的pair_coeff顺序是库文件、选取的元素、额外参数文件、各原子类型映射。本例从library.meam选取Si,额外参数位置为NULL,最后一个Si将唯一的LAMMPS原子类型映射到库中的Si。
NULL表示本例不读取额外参数文件,并不表示其他MEAM模型都可以省略自己的参数文件。若原模型提供了元素间参数、屏蔽或其他专门设置,应按该模型的完整文件组合使用。
本例为4×4×4个金刚石常规晶胞,共512个Si原子,基准格常数5.431Å;MEAM库参数只是当前所选模型,不是所有Si势的通用参数。
4 这里选择什么执行路径#
本篇ADP和MEAM使用lammps/30Sep2026-p100-gpu中的普通CPU路径。该GPU包构建没有adp/gpu与meam/gpu后缀,给输入加suffix gpu并不等于它们实际在GPU上求力。其他加速实现需要相应构建和独立数值核对,本篇不把它们写成已经完成的GPU例子。
cat work/cases/adp-cpu/eos.dat
cat work/cases/meam-cpu/eos.dat


模型对一种结构给出能量最低点,并不证明它能准确描述缺陷、表面、相变、断裂或其他组分。用于自己的研究时,先核对势参数覆盖的结构与性质,再补充所需验证。
提取与重画#
module load ase/3.29.0
python analyze.py work
python plot_results.py work
python check_results.py work
cat work/analysis/eos-fits.csv
cat work/analysis/pressure-check.csv
eos-fits.csv包含局部五点与完整九点两种拟合的晶格常数、每原子体积、能量、体积模量和拟合残差;pressure-check.csv保存原生压力与独立能量差分。JSON还保存所有原始扫描值和GPU对照。查看本文数据时将work改成reference。