LAMMPS命令
1. fix
命令
fix
用于一组原子。在LAMMPS中,fix
命令可认为是在某一时间段或能量最小化中对系统的任何操作。包括
- 原子的位置、速度的更新
- 控制温度
- 对原子团施加限制
- 更新边界条件等
若重新设置一个具有相同ID和设置的fix
,则在这之后旧的fix
会被覆盖,对unfix
也是如此。
某些fix
可计算三种量:全局变量;原子变量;局部变量。
2. unfix
命令
删除先前设置的fix
命令,同时也删除通过fix_modify
更新的任何设置
unfix
方法是删除fix
的唯一方法,在一个fix
之后新增一个fix
不会删除前一个。
3. variable
命令
该命令将一个或多个字符串定义为变量,以用于在input
文件和模拟中调用。变量名在variable
后定义,只能包含字母数字和下划线。
4. boundary
命令
在三个维度的方向上设置所模拟盒子的边界性质。使用一个字母则可对盒子三个方向的前后进行统一设置。若为两个字母,则分别表示一个方向的前后两面。
可选的选项包括:
p
, 周期性,必须对一个维度的两个方向同时应用f
,非周期性,固定的,若原子超出这个边界,则被删除s
,非周期性,可收缩的(?shrink-wrapped),原子若超出边界,不会被删除,边界可适应原子的位置m
,非周期性,具有最小值的可收缩性
5. lattice
命令
定义一个模拟的盒子。在LAMMPS中,一个点阵是由空间中的晶胞边界上的原子构成的点阵,在多个方向上都可重复。lattice
在LAMMPS中有两种用法。
create_atoms
命令可根据点阵上的点创建原子- 在x, y, z方向上定义的晶格间距可被其他命令所使用
6. units
命令
定义模拟中使用的单位,包括input
、data
文件中的单位。此处设置的单位仅仅设置物理量在LAMMPS内部的转换方式。
常用的单位选项包括lj
, real
, metal
, si
, cgs
, electron
, micro
, nano
lj
中的单位均为无量纲的或简化的, 默认使用这种单位。
单位制 | lj | real | metal |
---|---|---|---|
mass | mass | grams/mol | grams/mol |
distance | $ \sigma$ | $ \AA $ | $\AA $ |
time | $\tau$ | fs | ps |
energy | $\epsilon$ | Kcal/mol | eV |
velocity | $\sigma / \tau$ | $fs/ \rm \AA$ | $\AA / ps$ |
force | $\epsilon / \sigma$ | $Kcal\cdot mol^{-1} \cdot \AA^{-1}$ | $eV /\AA$ |
temperature | 约化的lj温度 | K | K |
pressure | 约化的lj压力 | 101.325 kPa | 100 kPa |
7. change_box
命令
改变模拟盒子的体积、形状或者边界条件。对于正交的盒子,可以改变x
, y
, z
三个参数。对于三斜盒子,可改变的参数包括x
, y
, z
, xy
, xz
, yz
。
8. velocity
命令
改变或设置一组原子的速度。
9. run
命令
运行一定时间步长的分子动力学模拟。可运行0次,这种情况下,只计算体系的热力学并将其输出。
10. thermo
命令
在模拟的开始、结尾、以及中间N个时间步长时间点上计算热力学数据。计算输出的内容和格式由thermo_style
以及thermo_modify
命令控制。
11. thermo_style
命令
控制输出到屏幕或者日志文件中的热力学数据。
部分可输出的数据包括:
ke
, 动能pe
, 总势能etotal
, 总能量,动能+势能enthalpy
, 焓, 总能量+压力*体积- ……
12. read_data
命令
从外部数据文件中读取可供LAMMPS模拟计算的数据。通常可读取的数据为使用ACSII编码的文件,或者使用gzip
压缩的文件。
文件格式
通常一个数据文件包含一个文件头和主体。文件头的第一行通常跳过不读。以
#
开头的注释忽略。文件头格式
文件头中各个关键字出现的顺序可以打乱。所有的关键字的初始值都为0,除了
lo/hi box size
分别为-0.5和0.5。atoms
, 体系中原子个数bonds
,体系中键的个数angles
, 体系中键角个数dihedrals
,体系中二面角个数impropers
,体系中不当二面角的个数atom types
, 体系中原子种类bond types
, 体系中键的种类angle types
, 体系中键角种类dihedral types
, 体系中二面角种类improper types
, 体系中不当二面角个数xlo xhi
, 模拟盒子x方向的边界ylo yhi
, 模拟盒子y方向的边界zlo zhi
, 模拟盒子z方向的边界xy xz yz
, 三斜盒子的倾斜系数
13. print
命令
输出指定的变量或字符串到文件或日志中。字符串使用引号以囊括尽可能多的信息。如果使用了file
关键字,则输出的信息将写入到文件中。
14. minimize
命令
通过调整原子的坐标使体系的能量最小化。当达到指定的收敛容差时,停止迭代,在这时体系的能量可能达到局部最小。能量最小化的算法通过min_style
指定。
一般来说,能量最小化的目标函数为包含N个原子的体系的总能量,以下式表示
最后一项为fix
命令对体系施加的限制所造成的能量。
15. dielectric
命令
设置静电相互作用下的介电常数,该值用于减少静电作用的强度,是无量纲的,用于静电作用公式的分母上,即若该值为4.0,则静电作用强度下降到原来的25%,默认值为1.0
。
16. dump
命令
每隔一定时间步长导出当前状态下所有原子信息的一份快照到一个或多个文件去,只有指定的某个组的原子才会被导出
17. reset_timestep
命令
将时间步长计数器设置到指定数值,通常用于在读取一个restart
文件之后用于重置时间步长。read_data
和createbox
命令也会将时间步长重置为0。若设置了任何fix
来跟踪持续的时间来执行某些与时间有关的操作时,则不能使用该命令。
18. box
命令
box
命令有一个关键词:tile
,可以设置为small
或者large
,对于三斜模拟盒子来说,这个关键词允许创建任意倾斜因子的模拟盒子。倾斜因子决定了这个三斜盒子有多倾斜。
一般情况下,LAMMPS允许设置不超过盒子长度一半的倾斜因子。如果设置为small
,则当模拟设置超过这个限制时,程序会报错。若设置为large
,则可以设置任意大小的倾斜角度。
需要注意的是,当盒子的倾斜因子过大时,LAMMPS的运行效率会下降。对于极端程度的倾斜,LAMMPS可能会由于丢失原子而报错。
19. neighbor
命令
设置影响最近邻列表的参数。
20. write_coeff
命令
将当前定义的力场参数导出为文本格式,以供include
命令读取。搭配write_data
的nocoeff
选项,可将参数项与数据文件分离。
21. write_data
命令
将包含当前模拟状态的数据文件导出为文本格式。导出的数据文件可以使用read_data
命令读取。导出的文件名中可使用通配符*来表示模拟当前的时间步。由于该命令是使用文本格式导出数据的,因此新的模拟的初始态可能和导出前的终态有些许不同,若将终态导出为二进制文件,则可以避免这种情况,使用restart
, write_restart
, read_restart
等命令可以做到。
nocoeff
选项表示在导出的数据文件中不包含力场参数。
22. log
命令
该命令将LAMMPS的标准输出重定向到另一log文件中去。如果指定的文件名为空,则不新建log文件。若指定append
参数,则在原有的log文件之后加上log内容,而非覆盖原有内容。文件名为log.lammps
的文件为LAMMPS的log标准输出文件。