lammps做分子动力学模拟时,需要一个输入文 件(input script),也就是in文件,以及关于体系的 原子坐标之类的信息的文件(data file)。lammps在
执行计算的时候,从这个in文件中读入命令,所以对LAMMPS的使用最主要的就是对in文件的编写和使
用。下面介绍一些关于in文件的事项
? 每一非空行都被认为是一条命令(大小写敏 感,但极少有命令或参数大写的)。
? in文件中各命令的顺序可能会对计算产生影 响,但大部分情况下不会有影响。
每行后的“?&” 表示续行(类似fortran)。 ? “#”表示注释(类似bash)。
? 每行命令中的不同字段由空格或者制表符分 隔开来,每个字段可以由字母、数字、下划线、或 标点符号构成。
? 每行命令中第一个字段表示命令名,之后的 字段都是相关的参数。
? 很多命令都是在需要修改默认值的情况下才 特别设置的。
in文件整体来看分为4个部分 1. Initialization
这一部分包含了关于计算体系最基本的信息, 例如:
units: 单位系统(units style),lammps现在提供包 括lj、real、metal、si和cgs几种单位系统。 dimension: 定义了两维或者三维模拟(默认是三 维)。
boundary: 定义了分子动力学体系使用的边界条 件,例如周期性边界条件或者自由边界条件等。 atom_style: 定义模拟体系中的原子属性,这一
命令与力场设置的参数中的原子类型(atom type)不 同。
pair_style: 相互作用力场类型,例如范德化势或者硬球势等。 bond_style: 键合相互作用势类型。 angle_style: 键角作用势类型。
dihedral_style: 二面角作用势类型。 improper_style: 混合作用势类型。
其他还有一些参数设置,例如newton, processors, boundary, atom_modify等。 2. Atom definition
lammps提供3种定义原子方式:
通过read_data或read_restart命令从data或restart文 件读入,这些文件可以包含分子拓扑结构信息,这 一方法在续算上也很有用。
按照晶格的方式创建原子,这种方式不包含
分子拓扑信息,可能会用到例如如下的一些命令: lattice, region, create_box, create_atoms。
对已经设置好的原子可以用replicate命令复制后 生成一个更大规模的计算体系。 3. Settings
原子或分子的拓扑信息定义好后,就需要制定 一系列的设置,例如力场系数、模拟参数、输出选 项等。
力场系数可以通过例如这样的一些命令来
定义:pair_coeff, bond_coeff, angle_coeff, dihedral_ coeff, improper_coeff, kspace_style, dielectric, special_ bonds等。实际上力场系数也可以在关于体系的原子 坐标之类的信息的文件(data file)中制定,这样具 体参考read_data命令的相关介绍。
各种模拟参数可以由例如如下这样一些命令来
设置:neighbor, neigh_modify, group, timestep, reset_ timestep, run_style, min_style, min_modify等。模拟过程 中通过compute, compute_modify, variable等一些命令来 制定。而输出选项可以由thermo, dump, restart等一些 命令来设置。 4. Run a simulation
通常run命令被设置在in文件的最后,使用run命 令来开始一个分子动力学模拟的过程。另外,使用 minimize命令来实施能量最小化计算。使用temper命 令来进行复制品交换采样模拟。
其他一些重要的命令被分类列于如下:
Initialization: atom_modify, atom_style, boundary, dimension, newton, processors, units
Atom definition: create_atoms, create_box, lattice, read_data, read_restart, region, replicate
Force fields: angle_coeff, angle_style, bond_coeff, bond_style, dielectric, dihedral_coeff, dihedral_style, improper_coeff, improper_style, kspace_modify, kspace_
style, pair_coeff, pair_modify, pair_style, pair_write,special_bonds Settings: communicate, dipole, group, mass, min_
modify, min_style, neigh_modify, neighbor, reset_timestep, run_style, set, shape, timestep, velocity Fixes: fix, fix_modify, unfix
Computes: compute, compute_modify, uncompute Output: dump, dump_modify, restart, thermo, thermo_ modify, thermo_style, undump, write_restart
Actions: delete_atoms, delete_bonds, displace_atoms, displace_box, minimize, run, temper
Miscellaneous: clear, echo, if, include, jump, label, log, next, print, shell, variable
关于LAMMPS计算前后的处理问题,计算前
的原子初始形态文件的生成,由read_data读入一个 data文件,这个文件包括体系中各个原子的xyz坐标 等等相关参数,或者由其他软件生成并修改后符合 LAMMPS的输入文件格式生成。而计算后的输出, 因为LAMMPS不支持图形输出,需要借助第三方可 视化软件实现,例如VMD。LAMMPS的输出文件主 要可以分为三种:一种是log.lammps,这里面记录了 整个计算过程屏幕上显示的所有信息,可由thermo、 thermo_modify等命令控制;另一种是输出应力、能 量、原子位置、速度等等信息,由dump命令控制输 出文件;第三种是断点续算的restart文件输出信息, 由write_restart命令控制。