javascript:void(0);

lammps的restart命令写在哪里 lammps运行命令_ci

01

lammp常用命令

1.units命令

2.dimension命令

3.boundary命令

3.atom_style命令

4.neighbor命令

5.neigh_modify命令

6.atom_style命令

7.pair_style命令

8.bond_style命令

9.angle_style命令

10.dihedral_style命令

11.improper_style命令

12.special_bonds命令

13.kspace_style命令

14.read_data命令

15.pair_coeff命令

16.bond_coeff命令。

17.angle_coeff命令。

18.dihedral_coeff命令。

19.improper_coeff命令。

20.持续更新

    分子动力学的基本任务就是获得研究对象不同时刻的位置和动量,然后基于统计力学知识获得想要的物理量,解释对象的性质和行为。因此,分子动力学的模拟流程超级简单。

第一步,设置研究对象组成原子或者粒子(下面统一称为粒子)初始位置和速度;

第二步,基于粒子的位置计算每个粒子受到的合力,并基于牛二定律计算粒子的加速度;

第三步,基于加速度计算粒子下一时刻的速度;

第四步,基于下一时刻的速度计算下一时刻的位置;

第五步,循环第二步到第四步的过程,得到一系列时刻粒子的位置和速度;

第六步,基于位置和速度信息得到描述对象性质和行为的物理量。

分子动力学的基本原理就是这么简单,正因为简单所以有效。需要指出的是在实际编程求解的过程考虑到计算精度等原因上述过程在某些细节上会略有改动。但是,基本上你可以认为这就是分子动力学的原理和流程。上述过程由LAMMPS帮你实现,你需要做的就是设置研究对象的基本信息,即写in文件,告诉给LAMMPS,然后开始模拟。

那我们就开始写in文件,开启LAMMPS模拟的第一步。根据上面说的分子动力学原理,那么第一步就是设置粒子的初始位置和速度?等等。在这之前我们还需要做一些前期准备工作。首先是设置单位制,即涉及到的物理量的单位都是什么。为什么要这么做呢?就是为了能够定量描述我们的对象。回想在高中的著名实验——小球平抛。我们怎么描述小球的运动呢?我们会说小球经过多少秒,向前运动了多少米,下落了多少米。这里就采用了国际制单位描述小球的运动。只有先确定了单位制,我们才好定量描述研究对象。不同的研究对象,为了描述方便会采用不同的单位制。比如描述高铁的速度我们会用km/h,而不是m/s。同样,在LAMMPS中面对不同的研究对象,LAMMPS内置了不同的单位制。所以in文件中的

1.units命令—设置单位制。

语法


units style


  • style = ljrealmetalsicgs电子micronano

举例


units metal units lj


此命令设置用于模拟的单位样式。它确定输入脚本和数据文件中指定的所有数量的单位,以及输出到屏幕、日志文件和转储文件的数量。通常,此命令在输入脚本的最开始处使用。

2.dimension—设置边模拟维度,设置模拟的维度。默认情况下,LAMMPS 运行 3d 模拟。要运行 2d 模拟,应在通过create_box或read_data命令设置模拟框之前使用此 命令。重新启动文件也存储此设置。


dimension N


  • N = 2 or 3

举例


dimension 2


3.boundary命令—第三条命令是设置边界条件。

设置每个维度中全局模拟框的边界样式。单个字母为盒子的下表面和上表面指定相同的样式。两个字母将第一种样式指定给下表面,将第二种样式指定给上表面。模拟框的初始大小由read_data、 read_restart或create_box 命令设置。

p表示盒子是周期性的,因此粒子在边界上相互作用,它们可以离开盒子的一端并重新进入另一端。由于恒定压力边界条件或盒子变形,周期性尺寸的尺寸可能会发生变化(请参阅fix npt和fix variant命令)。该p 风格必须适用于维度的两面。

fsm表示盒子是非周期性的,因此粒子不会跨边界相互作用,也不会从盒子的一侧移动到另一侧。

对于f,人脸的位置是固定的。如果一个原子移动到面外,它将在下一个发生重新邻接的时间步长处被删除。这通常会产生错误,除非您设置了thermo_modify lost选项以允许丢失原子。

对于s,面的位置被设置为包含该维度中的原子(收缩包裹),无论它们移动多远。请注意,当当前盒子尺寸和收缩包装盒尺寸之间的差异很大时,这可能会导致在并行运行时在运行开始时丢失原子。这是因为(全局)框尺寸的巨大变化也导致了各个子域大小的显着变化。如果这些变化比通信中断更远,原子就会丢失。最好通过使用m样式边界(见下文)设置初始框尺寸以更紧密地匹配收缩包装尺寸来解决此问题。

对于样式m,会发生收缩包装,但受数据或重新启动文件中指定的值或由create_box命令设置的值的限制 。例如,如果数据文件中上 z 面的值为 50.0,则该面将始终位于 50.0 或以上,即使所有原子的最大 z 范围变得小于 50.0。如果您用一个空盒子开始模拟,或者如果您希望在盒子的一侧留出空间,例如让原子从表面蒸发,这会很有用。

对于三斜(非正交)模拟框,如果倾斜因子的第二个维度(例如 y 表示 xy)是周期性的,则通过倾斜因子偏移来强制执行周期性。如果第一维是收缩包装,则收缩包装应用于倾斜的盒面,以包含原子。例如,对于正 xy 倾斜,盒子的 xlo 和 xhi 面是随着 y 增加而在 +y 方向上倾斜的平面。这些倾斜的平面被收缩包裹在原子周围以确定盒子的 x 范围。

语法


boundary x y z


  • x,y,z = psfm,一两个字母 p是周期性 f是非周期性且固定的 s是非周期性且收缩包裹 m是非周期性且收缩包裹有最小值

举例


boundary p p f boundary p fs p boundary s f fm


4.neighbor命令—设置建立邻居列表的。此命令设置影响成对邻居列表构建的参数。相邻截止距离内的所有原子对都存储在列表中,该距离等于它们的力截止加上皮肤距离。通常,skin距离越大,需要构建的邻居列表就越少,但每个时间步长必须检查更多的对以了解可能的力相互作用。skin默认值 取决于模拟单位的选择;

语法


neighbor skin style


  • skin = 超出力截止的额外距离(距离单位)
  • style = binnsqmultimulti/old

举例


neighbor 0.3 bin neighbor 2.0 nsq


5.neigh_modify命令—是设置邻居列表的更新频率。此命令设置影响成对邻居列表的构建和使用的参数。根据定义的配对交互和其他命令,模拟可能需要一个或多个邻居列表。在每一个延迟检查,并一度选项会影响多久列表被建成一个模拟运行。该延迟设定手段从来没有建立新的名单,直到以前的版本后至少N个步骤。在每一个设定手段构建列出每M步骤(延迟过后)。如果检查设置为no,则列表建立在满足延迟每个设置的第一步上。如果 检查设置为yes,则每个延迟设置确定何时可能执行构建,但只有在自上次构建以来某个原子移动了超过一半的皮肤距离。

语法


neigh_modify keyword values ...


举例


neigh_modify every 2 delay 10 check yes page 100000 neigh_modify exclude type 2 3 neigh_modify exclude group frozen frozen check no neigh_modify exclude group residue1 chain3 neigh_modify exclude molecule/intra rigid neigh_modify collection/type 2 1*2,5 3*4 neigh_modify collection/interval 2 1.0 10.0


6.atom_style命令。定义在模拟中使用的原子类型。这决定了与原子相关联的属性。在通过read_data、 read_restart、 create_box 命令设置模拟之前,必须使用此命令。

语法


atom_style style args


举例


atom_style atomic atom_style bond atom_style full atom_style body nparticle 2 10 atom_style hybrid charge bond atom_style hybrid charge body nparticle 2 5 atom_style spin atom_style template myMols atom_style hybrid template twomols charge atom_style tdpd 2


7.pair_style命令—设置势类型。在 LAMMPS 中,成对力场包含多种相互作用,其中一些包括多体效应,例如 EAM、Stillinger-Weber、Tersoff、REBO 势。它们仍被归类为“成对”势,因为相互作用的原子集随时间变化(与分子键不同),因此使用邻居列表来查找附近的相互作用原子。可以使用混合对样式设置指定的原子类型对通过不同对势相互作用的混合模型。

语法


pair_style style args


  • style = 下面列表中的样式之一
  • args = 特定样式使用的参数

举例


pair_style lj/cut 2.5 pair_style eam/alloy pair_style hybrid lj/charmm/coul/long 10.0 eam pair_style table linear 1000 pair_style none


8.bond_style命令—设置键类型。设置 LAMMPS 用于计算原子对之间键相互作用的公式。在 LAMMPS 中,键不同于通过pair_style 命令设置的成对相互作用。键定义在指定的原子对之间,并在模拟期间保持有效(除非在某些键势中可能发生键断裂)。键合原子列表通过read_data或 read_restart命令从数据或重启文件中读入。相比之下,对电位通常定义在截止距离内的所有原子对之间,并且活性相互作用集随时间而变化。可以使用混合键样式设置使用不同键势计算键的混合模型。

语法


bond_style style args


  • style =混合class2fenefene/扩展或 谐波莫尔斯非线性四次
  • args = none 对于除混合之外的任何样式
  • 混合参数 = 一种或多种样式的列表

举例


bond_style harmonic bond_style fene bond_style hybrid harmonic fene


9.angle_style命令。这条命令是可选的,根据不同的对象可定。其设置简单,没啥好说的,就是计算相邻三个粒子的相互作用,其语法为

语法


angle_style style


  • style= none or hybrid or charmm or class2 or cosine or cosine/squared or harmonic

举例


angle_style harmonic angle_style charmm angle_style hybrid harmonic cosine


10.dihedral_style命令。设置 LAMMPS 用于计算四组原子之间的二面角相互作用的公式,这些原子在模拟期间保持有效。二面体四元组列表由数据或重启文件中的read_data或read_restart命令读入 。可以使用混合二面角样式设置使用不同二面角势计算二面角的混合模型。可以在数据或重新启动文件中或通过dihedral_coeff 命令指定与二面角样式关联的系数。所有二面体势将其系数数据存储在二进制重新启动文件中,这意味着 dihedral_style 和 dihedral_coeff命令不需要在重新启动模拟的输入脚本中重新指定。有关如何执行此操作的详细信息,

语法


dihedral_style style


  • style = none or hybrid or charmm or class2 or harmonic or helix or multi/harmonic or opls

举例


dihedral_style harmonic dihedral_style multi/harmonic dihedral_style hybrid harmonic charmm


11.improper_style命令。

设置 LAMMPS 用于计算四组原子之间不适当相互作用的公式,这些原子在模拟期间仍然有效。不正确的四胞胎列表由read_data或read_restart命令从数据或重启文件中读入 。请注意,不正确四元组中 4 个原子的排序决定了公式中用于每种样式的不正确角度的定义。有关详细信息,请参阅各个样式的文档页面。可以使用混合style来设置使用不同不当势计算不当的混合模型。

语法


improper_style style


  • style = none or hybrid or class2 or cvff or harmonic

举例


improper_style harmonic improper_style cvff improper_style hybrid cvff harmonic


12.special_bonds命令。为直接或通过一个或两个中间键永久键合的原子对之间的成对能量和力贡献设置加权系数。这些加权因子被LAMMPS 中几乎所有计算简单成对交互作用的成对样式所使用。通过在read_data命令读取的数据文件中定义键拓扑来指定原子之间的永久键。通常是 bond_style命令也用于定义键势。使用这些加权因子的基本原理是,一对键合原子之间的相互作用全部(或大部分)由键、角度、二面势势指定,因此是一对原子之间的非键合 Lennard-Jones 或库仑相互作用应排除(或减少加权因子)。

语法


special_bonds keyword values ...


举例


special_bonds amber special_bonds charmm special_bonds fene dihedral no special_bonds lj/coul 0.0 0.0 0.5 angle yes dihedral yes special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes


13.kspace_style命令。为 LAMMPS 定义一个长程求解器,以使用每个时间步长计算长程库仑相互作用或长程 

1/r6相互作用。大多数远程求解器在 K 空间中执行计算,因此得名此命令。

当此类求解器与适当的配对样式结合使用时,库仑或 1/rN相互作用实际上是无限的。如果是库仑情况,这意味着系统中的每个电荷都与模拟域的无限周期图像中的电荷相互作用。

语法


kspace_style style value


举例


kspace_style pppm 1.0e-4 kspace_style pppm/cg 1.0e-5 1.0e-6 kspace style msm 1.0e-4 kspace style scafacos fmm 1.0e-4 kspace_style none


14.read_data命令。读入包含 LAMMPS 运行模拟所需信息的数据文件。该文件可以是 ASCII 文本或 gzipped 文本文件(由 .gz 后缀检测)。这是指定初始原子坐标的 3 种方法之一;有关替代方法,请参阅read_restart和 create_atoms命令。

语法


read_data file keyword args ...



  • file = name of data file to read in
  • zero or more keyword/arg pairs may be appended
  • keyword 

举例


read_data data.lj read_data ../run7/data.polymer.gz read_data data.protein fix mycmap crossterm CMAP read_data data.water add append offset 3 1 1 1 1 shift 0.0 0.0 50.0 read_data data.water add merge 1 group solvent


15.pair_coeff命令。指定一对或多对原子类型的成对力场系数。系数的数量和含义取决于配对类型。也可以在read_data命令读取的数据文件或重启文件中设置对系数。I 和 J 可以通过两种方式之一指定。每个都可以使用显式数值,如上面的第一个示例。I <= J 是必需的。LAMMPS 将对称 J,I 相互作用的系数设置为相同的值。可以使用通配符星号代替或结合 I,J 参数来设置多对原子类型的系数。这采用“*”或“*n”或“n*”或“m*n”的形式。如果 N = 原子类型的数量,则没有数字值的星号表示从 1 到 N 的所有类型。前导星号表示从 1 到 n(含)的所有类型。尾随星号表示从 n 到 N(含)的所有类型。中间星号表示从 m 到 n(含)的所有类型。请注意,仅考虑 I <= J 的类型对;如果星号表示 J < I 的类型对,则忽略它们。

语法


pair_coeff I J args


  • I,J = atom types (see asterisk form below)
  • args = coefficients for one or more pairs of atom types

举例


pair_coeff 1 2 1.0 1.0 2.5 pair_coeff 2 * 1.0 1.0 pair_coeff 3* 1*2 1.0 1.0 2.5 pair_coeff * * 1.0 1.0 pair_coeff * * nialhjea 1 1 2 pair_coeff * 3 morse.table ENTRY1 pair_coeff 1 2 lj/cut 1.0 1.0 2.5 (for pair_style hybrid)


16.bond_coeff命令。指定一种或多种键类型的键力场系数。系数的数量和含义取决于债券类型。键系数也可以在read_data命令读取的数据文件 或重启文件中设置。N 可以通过以下两种方式之一指定。可以使用显式数值,如上面的第一个示例。或者可以使用通配符星号来设置多种键类型的系数。

这采用“*”或“*n”或“n*”或“m*n”的形式。如果 N = 键类型的数量,则没有数值的星号表示从 1 到 N 的所有类型。前导星号表示从 1 到 n(含)的所有类型。尾随星号表示从 n 到 N(含)的所有类型。中间星号表示从 m 到 n(含)的所有类型。

语法


bond_coeff N args


  • N = bond type (see asterisk form below)
  • args = coefficients for one or more bond types

举例


bond_coeff 5 80.0 1.2 bond_coeff * 30.0 1.5 1.0 1.0 bond_coeff 1*4 30.0 1.5 1.0 1.0 bond_coeff 1 harmonic 200.0 1.0


17.angle_coeff命令。指定一种或多种角度类型的角度力场系数。系数的数量和含义取决于角度样式。角度系数也可以在read_data命令读取的数据文件 或重启文件中设置。N 可以通过以下两种方式之一指定。可以使用显式数值,如上面的第一个示例。或者可以使用通配符星号来设置多个角度类型的系数。这采用“*”或“*n”或“n*”或“m*n”的形式。如果 N = 角度类型的数量,则没有数值的星号表示从 1 到 N 的所有类型。前导星号表示从 1 到 n(含)的所有类型。尾随星号表示从 n 到 N(含)的所有类型。中间星号表示从 m 到 n(含)的所有类型。

语法


angle_coeff N args


  • N = angle type (see asterisk form below)
  • args = coefficients for one or more angle types

举例


angle_coeff 1 300.0 107.0 angle_coeff * 5.0 angle_coeff 2*10 5.0


18.dihedral_coeff命令。为一种或多种二面角类型指定二面角力场系数。系数的数量和含义取决于二面角样式。二面角系数也可以在read_data命令读取的数据文件 或重启文件中设置。N 可以通过以下两种方式之一指定。可以使用显式数值,如上面的第一个示例。或者可以使用通配符星号来设置多个二面角类型的系数。这采用“*”或“*n”或“n*”或“m*n”的形式。如果 N = 二面体类型的数量,则没有数字值的星号表示从 1 到 N 的所有类型。前导星号表示从 1 到 n(含)的所有类型。尾随星号表示从 n 到 N(含)的所有类型。中间星号表示从 m 到 n(含)的所有类型。

语法


dihedral_coeff N args


  • N = dihedral type (see asterisk form below)
  • args = coefficients for one or more dihedral types

举例


dihedral_coeff 1 80.0 1 3 dihedral_coeff * 80.0 1 3 0.5 dihedral_coeff 2* 80.0 1 3 0.5


19.improper_coeff命令。为一种或多种不当类型指定不当力场系数。系数的数量和含义取决于不当的风格。不正确的系数也可以在read_data命令读取的数据文件或重启文件中设置。N 可以通过以下两种方式之一指定。可以使用显式数值,如上面的第一个示例。或者可以使用通配符星号来设置多个不正确类型的系数。这采用“*”或“*n”或“n*”或“m*n”的形式。如果 N = 不正确类型的数量,则没有数字值的星号表示从 1 到 N 的所有类型。前导星号表示从 1 到 n(含)的所有类型。尾随星号表示从 n 到 N(含)的所有类型。中间星号表示从 m 到 n(含)的所有类型。

语法


improper_coeff N args


  • N = improper type (see asterisk form below)
  • args = coefficients for one or more improper types

举例


improper_coeff 1 300.0 0.0 improper_coeff * 80.2 -1 2 improper_coeff *4 80.2 -1 2