《lammps各种命令讲解》由会员分享,可在线阅读,更多相关《lammps各种命令讲解(34页珍藏版)》请在金锄头文库上搜索。
1、作者: 御剑江湖 收录日期: 2011-03-31 发布日期: 2011-03-24Commands描述了 lammps 输入文件的格式和在定义 lammps 模拟所需要的命令.1.1 LAMMPS input script我们用 lammps 做分子动力学模拟, 需要一个输入文件. lammps 在执行计算的时候, 从这个文本文件中逐行读入命令. 大多数情况, lammps 输入文件中各个命令的顺序并不是很重要. 但是你要注意以下几点:(1) lammps 并不是将你的输入文件全部读入之后才开始进行计算的, 或者说, 每条命令在它被读入之后就会起作用了. 注意, 下面两组命令的执行效果是不相
2、同的.timestep 0.5run 100run 100和run 100timestep 0.5run 100(2) 有些命令只有在另一些命令已经被定义的情况下才有效. 例如如果你要设定一组原子的温度, 那么用 group 命令定义哪些原子属于这个组才行.(3) 还有一种情况就是: 命令 B 要用到命 A 设置的一些数值 , 这样你也不能颠倒这两个命令的顺序.每个命令的详细介绍中的 Restrictions 部分会说明要使用该命令定义的时候哪些命令必须要被预先定义.如果你的输入文件书写的格式有问题, lammps 在执行的时候会提示 ERROR 或者WARNING , 出现类似信息时, 你可
3、以到手册的第九章中查询原因.1.2 Parsing rules输入文件中的每一非空行都被认为是一条命令. lammps 中命令的书写是对大小写敏感的, 不过一般的命令和参数都是小写的, 大写字母用于极少数的情况.(1) 命令行后的 & 表示这一行跟下一行是同一条命令. 这一点跟 FORTRAN 很像.(2) 命令行最开始的 # 表示这一行在执行过程中被忽略 , 你可以用它来写注释.(3) $ 是跟声明变量有关系的, 我暂时还没用到过, 具体请参阅 variable 命令的详细介绍.(4) 命令行被 tabs, spaces 间隔成各个“ words”, 注意这里的“words”可以包含字母、数
4、字、下划线、或标点符号.(5) 一行中第一个词是命令名, 后续的词是相关的参数 .(6) 双引号内的文字空格被整体地当作一个参数, 其中的 # 或 $ 就没有前面说的作用了.1.3 Input script structurelammps 的输入文件一般分为4个部分 Initialization, Atom definition, Settings, Run a simulation后面的两个部分可以按照需要多次重复. Remember that almost all the commands need only be used if a non-default value is desire
5、d.(1) Initialization在你的模拟体系定义之前, 一些参数必须要被设置. 相关的命令有:units, dimension, newton, processors, boundary, atom_style, atom_modify.units: 选择单位系统, lammps 提供了 lj、real、metal 三种单位系统dimension: 2d 模拟还是3d 模拟, 默认是3dboundary: 边界条件:周期性边界 or 自由边界atom_style: 定义你的模拟体系中的原子属性, 注意这个 style 要区分后面设置力场参数时命令里提到的 atom type还有, 这
6、些命令告诉 lammps 在你的模拟中使用何种力场: pair_style, bond_style, angle_style, dihedral_style, improper_style.(2) Atom definitionlammps 提供3种方式定义原子: 通过 read_data 或 read_restart 命令从 data 或 restart 文件读入, 这些文件可以包含分子拓扑结构信息. 按照晶格的方式创建原子 (不包含分子拓扑信息 ), 你会用到这几个命令: lattice, region, create_box, create_atoms. 已经设置好的原子可以用 repl
7、icate 命令复制以生成一个更大规模的模拟体系.(3)Settings原子和分子的拓扑信息定义好后, 你要制定一系列的设置: 力场系数、模拟参数、输出选项 等等.力场系数可以通过这些命令定义: pair_coeff, bond_coeff, angle_coeff, dihedral_coeff, improper_coeff, kspace_style, dielectric, special_bonds. 注意, 其实力场系数也可以在 data 文件中制定, 详见 read_data 命令介绍.各种模拟参数由这些命令设置: neighbor, neigh_modify, group, t
8、imestep, 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 static
9、s), 使用 temper 命令来进行 parallel tempering(replica-exchange) simulation.1.4 Commands listed by category这一节分门别类地列出了 lammps 的所有命令. 注意有些命令的有些选项是特定的lammps package 的一部分, 也就是说只有在编译 lammps 的时候包括了这些 packages, 这些命令才能被使用. 默认情况下编译 lammps 并不包括所有的 packages. 这些依赖关系在相关命令的详细介绍中 Restrictions 部分中列出了.Initialization: atom_
10、modify, atom_style, boundary, dimension, newton, processors, unitsAtom definition: create_atoms, create_box, lattice, read_data, read_restart, region, replicateForce fields: angle_coeff, angle_style, bond_coeff, bond_style, dielectric, dihedral_coeff, dihedral_style, improper_coeff, improper_style,
11、kspace_modify, kspace_style, pair_coeff, pair_modify, pair_style, pair_write, special_bondsSettings: communicate, dipole, group, mass, min_modify, min_style, neigh_modify, neighbor, reset_timestep, run_style, set, shape, timestep, velocityFixes: fix, fix_modify, unfixComputes: compute, compute_modif
12、y, uncomputeOutput: dump, dump_modify, restart, thermo, thermo_modify, thermo_style, undump, write_restartActions: delete_atoms, delete_bonds, displace_atoms, displace_box, minimize, run, temperMiscellaneous: clear, echo, if, include, jump, label, log, next, print, shell, variable作者:御剑江湖一、各种文件的介绍:1
13、in file:建立该文件以便程序的写入2 log file:写入状态信息( if the switch is used?)3 screen file 决定结果的是否进行屏幕输出4 var name file 定义一个变量,name 指变量名,可为字母也可为字符串,形式$x / $ abc二、屏幕输出:结果显示在屏幕上,同时在 log file 中。开始前 LAMMPS 计算出所需的存储空间,运行中每隔几个时步显示一次热力学状态,直至输出最终状态。Loop time of 49.002 on 2 procs for 2004 atoms 该部分显示了几个大类的计算时间Pair time (%)
14、 = 35.0495 (71.5267)Bond time (%) = 0.092046 (0.187841)Kspce time (%) = 6.42073 (13.103)Neigh time (%) = 2.73485 (5.5811)Comm time (%) = 1.50291 (3.06703)Outpt time (%) = 0.013799 (0.0281601)Other time (%) = 2.13669 (4.36041)Nlocal: 1002 ave, 1015 max, 989 min 每个处理器中特定原子的数目 Histogram: 1 0 0 0 0 0 0
15、0 0 1 Nghost: 8720 ave, 8724 max, 8716 minHistogram: 1 0 0 0 0 0 0 0 0 1Neighs: 354141 ave, 361422 max, 346860 minHistogram: 1 0 0 0 0 0 0 0 0 1Total # of neighbors = 708282 Ave neighs/atom = 353.434Ave special neighs/atom = 2.34032Number of reneighborings = 42Dangerous reneighborings = 2当运用了能量最小化命令
16、进行能量最小化时,还将出现如下所示语句:Minimization stats:E initial, nexttolast, final = 0.895962 2.94193 2.94342 (显示初终能量以及 next-to-last 循环的能量)Gradient 2norm init/final= 1920.78 20.9992 (给出能量梯度,即所有原子的受力)Gradient infnorm init/final= 304.283 9.61216 2-form 是力向量的长度,inf-form 是最大构成?Iterations = 36 循环次数 Force evaluations = 177 对力进行评定的次数当程序中有 kspace_style longrange Coulombics solve