前言

最近在科研上要用到LAMMPS,进行高熵合金的分子动力学仿真。时隔多年,又要重拾当年计算材料学的书袋子。想当年虽然学了很多,但记得不多,故写作本文主要记述笔者在学习分子动力学仿真软件LAMMPS中的心得和遇到的问题。

LAMMPS的语法规则

1、对于input scripts来说,LAMMPS的语法规则类似于命令行语句,即在输入命令并回车后会立即执行。

2、&符号表示改行命令还没有结束,下一行命令同本行。

3、#符号表示其之后的本行内容是注释,于Python语法类似。

4、$符号表示宏定义,类似于C语言的#define,参见如下代码。

variable X equal (xlo+xhi)/2+sqrt(v_area)
region 1 block $X 2 INF INF EDGE EDGE
variable X delete

注意:若$后跟大括号,则大括号中的文字代表了宏定义的变量名。如${myTemp}代表定义了myTemp这个定义。$不能进行嵌套操作,但可以使用$()的形式来进行临时定义。

5、使用空格、制表符等将行进行分隔,得到的部分均成为“单词”(或可理解为参数“words”)。也即被空格、制表符分隔开的字母、数字、下划线和标点符号都科可以被看作“单词”

6、每个命令行的第一个词即为控制命令。所有连续的单词都可以被视作参数。

7、与Python语法类似,可以使用三个双引号"""表示长行的开始和结束,并保留长行中的换行符。若只用两双引号"",虽然亦可表示长行的开始和结束,但行中的换行符将不被保留。