lammps输入文件命令中文详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作者: 御剑江湖收录日期: 2011-03-31 发布
日期: 2011-03-24
Commands
描述了lammps输入文件的格式和在定义lammps模拟所需要的命令.
1.1 LAMMPS input script
我们用lammps做分子动力学模拟, 需要一个输入文件. lammps在执行计算的时候, 从这个文本文件中逐行读入命令. 大多数情况, lammps输入文件中各个命令的顺序并不是很重要. 但是你要注意以下
几点:
(1) lammps并不是将你的输入文件全部读入之后才开始进行计算的, 或者说, 每条命令在它被读入之后就会起作用了. 注意, 下面两组命令的执行效果是不相同的.
timestep 0.5
run 100
run 100
和
run 100
timestep 0.5
run 100
(2) 有些命令只有在另一些命令已经被定义的情况下才有效. 例如如果你要设定一组原子的温度, 那么用group命令定义哪些原子属于这个组才行.
(3) 还有一种情况就是: 命令B要用到命A 设置的一些数值, 这样你也不能颠倒这两个命令的顺序.
每个命令的详细介绍中的Restrictions部分会说明要使用该命令定义的时候哪些命令必须要被预先定义.
如果你的输入文件书写的格式有问题,
lammps在执行的时候会提示ERROR或者WARNING , 出现类似信息时, 你可以到手册的第九章中查询原因.
1.2 Parsing rules
输入文件中的每一非空行都被认为是一条命令. lammps中命令的书写是对大小写敏感的, 不过一般的命令和参数都是小写的, 大写字母用于极少数的情况.
(1) 命令行后的& 表示这一行跟下一行是同一条命令. 这一点跟FORTRAN很像.
(2) 命令行最开始的# 表示这一行在执行
过程中被忽略, 你可以用它来写注释.
(3) $ 是跟声明变量有关系的, 我暂时还没用到过, 具体请参阅variable命令的详细介绍.
(4) 命令行被tabs, spaces间隔成各个“words”, 注意这里的“words”可以包含字母、数字、下划线、或标点符号.
(5) 一行中第一个词是命令名, 后续的词是相关的参数.
(6) 双引号内的文字空格被整体地当作一个参数, 其中的# 或$ 就没有前面说的作用了.
1.3 Input script structure
lammps的输入文件一般分为4个部分Initialization, Atom definition, Settings, Run a simulation
后面的两个部分可以按照需要多次重复. Remember that almost all the commands need only be used if a non-default value is desired.
(1) Initialization
在你的模拟体系定义之前, 一些参数必须要被设置. 相关的命令有:units, dimension, newton, processors, boundary, atom_style, atom_modify.
units: 选择单位系统, lammps提供了lj、real、metal三种单位系统
dimension: 2d模拟还是3d模拟, 默认是3d
boundary: 边界条件:周期性边界or自由边界
atom_style: 定义你的模拟体系中的原子属性, 注意这个style要区分后面设置力场参数时命令里提到的atom type
还有, 这些命令告诉lammps在你的模拟中使用何种力场: pair_style, bond_style, angle_style,
dihedral_style, improper_style.
(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 文件中制定, 详见read_data命令介绍.
各种模拟参数由这些命令设置: neighbor, neigh_modify, group, timestep, reset_timestep,
run_style, min_style, min_modify.
我觉得fix命令是lammps中很重要的一个命令, 它包括很多子命令, 可以施加一系列的边界条件、时间积分、诊断选项等等.
模拟过程中通过下面的命令制定lammps进行各种计算: compute, compute_modify, variable.
输出选项由thermo, dump, restart命令设置.
(4)Run a simulation
使用run命令开始一个分子动力学模拟, 用minimize命令来实施能量最小化(molecular statics),