5.1. LAMMPS 输入脚本
LAMMPS 通过逐行读取输入脚本(文本文件)中的命令来执行计算。当输入脚本结束时,LAMMPS 即退出运行。这与那些先读取并处理整个输入内容再开始计算的程序有所不同。
每条命令都会促使 LAMMPS 立即执行相应操作,而不考虑后续可能处理的命令。这些命令可能用于设置内部变量、读取文件或运行模拟。其操作可分为三大类别:
在"运行"过程中执行添加、修改、删除或替换"样式"的命令(例如:pair_style、fix、compute、dump、 thermo_style、pair_modify),以及
执行"运行"或进行其他计算操作的命令(例如:print、run、minimize、temper、write_dump、rerun、 read_data、read_restart)
类别 a)中的命令具有默认设置,这意味着您只需要在希望更改默认设置时使用该命令。
在许多情况下,输入脚本中命令的顺序并不重要,但当全局状态在类别 c)的命令之间发生变化时可能会产生影响。适用以下规则:
LAMMPS 不会读取整个输入脚本然后使用所有设置执行模拟。相反,输入脚本是逐行读取的,每个命令在被读取时立即生效。因此以下命令序列:timestep 0.5 run 100 run 100
与这个序列的执行效果不同:run 100 timestep 0.5 run 100
第一种情况下,指定的时间步长(0.5飞秒)会用于两次各100步的模拟运算。第二种情况下,首次100步模拟采用默认时间步长(1.0飞秒),第二次模拟则改用0.5飞秒步长。
某些命令必须紧随其他命令才能生效。例如在未定义原子且未使用 group 命令指定原子分组前,无法设置原子组的温度参数。
有时命令 B 会调用命令 A 设置的参数值。这意味着若需实现预期效果,输入脚本中命令 A 必须置于命令 B 之前。例如 read_data 命令会通过建立模拟箱体及分配原子处理器的方式初始化系统。若需修改默认设置,则需在read_data之前使用 processors 和 boundary 命令进行配置 告诉 LAMMPS 如何将处理器映射到模拟箱体。
LAMMPS 会检测到许多输入脚本错误,并打印 ERROR 或 WARNING 消息。 错误页面提供了关于错误含义的更多信息。每个命令的文档都列出了该命令使用方式的限制条件。
您可以使用 -skiprun 命令行标志让 LAMMPS 跳过任何 run、minimize 或类似命令的执行,以检查整个输入的正确语法,避免在长时间运行中因拼写错误或语法错误导致崩溃。