LAMMPS 配套工具实操
Atomsk建模、ASE互转与OVITO结构分析的实际命令。
阅读本篇目录
本文使用鸢算科技集群 LAMMPS 30 Sep 2026 的真实计算。下载输入、参考轨迹、分析脚本与数据图(约 72.5 MB),解压后进入 lammps-examples。cases 保存参考结果,inputs 保存干净输入,使用 new-case.py 创建自己的计算副本。
1 Atomsk建立实际晶体#
以下命令实际生成 256 原子的 FCC 镍。使用新目录,避免覆盖旧结果。
mkdir my-tools
cd my-tools
module load atomsk/0.13.1
atomsk --create fcc 3.52 Ni -duplicate 4 4 4 ni.lmp
module unload atomsk
--create 决定晶格和元素,-duplicate 决定重复数。Atomsk 写出的 LAMMPS data 是结构输入,还需要在 LAMMPS 脚本中设置正确势函数、系综与输出。
2 ASE转换数据格式#
把附件 tools/ase_convert.py 复制到当前目录后运行:
module load ase/3.29.0
python ase_convert.py
module unload ase
from ase.io import read,write
atoms=read('ni.lmp',format='lammps-data',atom_style='atomic',Z_of_type={1:28})
write('ni.extxyz',atoms)
write('ni.POSCAR',atoms,format='vasp')
print('ASE converted',len(atoms),'Ni atoms; volume',atoms.get_volume())
本次实际输出为 256 个 Ni 原子,盒子体积 2791.309312 ų。Z_of_type={1:28} 明确把类型1映射为Ni;不要让类型编号被误当成原子序数。输出 ni.extxyz 与 ni.POSCAR 可用于可视化和其他程序输入,势函数不会随坐标自动转换。
3 OVITO按实际轨迹识别局部结构#
回到附件根目录,从 tools 运行分析脚本;相对路径会读取参考的镍轨迹。换成新计算时修改 import_file 的路径即可。
cd tools
module load ovito/3.16.1
export QT_QPA_PLATFORM=offscreen
python ovito_analysis.py
from ovito.io import import_file,export_file
from ovito.modifiers import CommonNeighborAnalysisModifier,CoordinationAnalysisModifier
import json
p=import_file('../cases/ni-300/trajectory.lammpstrj')
p.modifiers.append(CommonNeighborAnalysisModifier())
p.modifiers.append(CoordinationAnalysisModifier(cutoff=3.0,number_of_bins=100))
d=p.compute(p.source.num_frames-1)
a={k:int(v) for k,v in d.attributes.items() if k.startswith('CommonNeighborAnalysis.counts')}
export_file(d.tables['coordination-rdf'],'ni-rdf.txt','txt/table')
export_file(p,'ni-analysis.xyz','xyz',columns=['Particle Identifier','Particle Type','Position.X','Position.Y','Position.Z','Structure Type','Coordination'],frame=p.source.num_frames-1)
open('ovito-results.json','w').write(json.dumps(a,indent=2))
print(a)
本次 300 K 镍末帧的自适应 CNA 识别到 FCC 2048 个,其他类别为0;这是本构型的实际结果,不代表所有温度或缺陷模型都应如此。ni-rdf.txt 保存 RDF,ni-analysis.xyz 保存结构类型和配位数,可导入图形界面进一步着色。

4 数值图重画#
# 回到资料包根目录
module unload ovito
module load ase/3.29.0
python analyze.py --root .
LAMMPS 内置 compute/fix 优先用于实时统计,Atomsk用于建模,ASE用于格式互转,OVITO用于局部结构与轨迹后处理。不同Python工具用各自模块环境,避免一次混入多套依赖。新体系若用Packmol或Moltemplate,还要核对分子拓扑、原子类型和力场;本批没有把未实跑的复杂建模流程算作实例。