当前位置: 首页 > 工具软件 > atoms > 使用案例 >

LAMMPS—create_atoms详细命令解析

益承颜
2023-12-01

来源:“分子动力学”公众号
链接:https://mp.weixin.qq.com/s/P7TpjiZhJi1wq4DG8zG9fQ

create_atoms命令用来在晶格阵点上创建原子,或创建一个单独的原子,或创建一些列随机原子。

使用语法
create_atoms type style args keyword values …
create_atoms 1 box create_atoms 3 region regsphere basis 2 3 create_atoms 3 single 0 0 5
该命令用来在晶格阵点上创建原子,或创建一个单独的原子,或创建一些列随机原子。也可以用命令read_data或read_restart通过直接给出原子坐标的方式创建原子。在使用该命令之前,模拟盒子必须是存在的(使用create_box命令创建),同时晶格也必须已经被定义(使用lattice命令)。但对于创建single类型且以box为单位的原子,或创建random类型的原子时,不需要先定义晶格。

box类型:该命令在整个模拟盒子中所有的晶格阵点上创建原子。如果你的模拟盒子是周期性的,你应该确保其尺寸是晶格距离的整数倍,从而避免在盒子边界处可能存在的原子重叠。如果你的盒子是周期性的,并且在某个方向上盒子的尺寸是晶格距离的整数倍,那么LAMMPS会在边界上只放置一个原子(译注:边界上的原子不会丢失或在两个面同时出现)。

region类型:该命令会在region-ID所指定的区域与模拟盒子相交的公共区域内创建原子。参考命令region,可以了解更多细节。需要注意的是,这里定义的区域可以在模拟盒子内,也可以在模拟盒子外。还需要注意,即便你在这里定义的区域与周期性模拟盒子的尺寸是一样的,LAMMPS所执行的逻辑跟box类型也不一样,就是说并不能像box类型那样确保在边界上只有一个原子。所以如果你希望达成像box类型那样的效果,你最好使用box类型,或者就是非常精确的调整region的尺寸来获得你想要的原子。

single类型:将指定坐标的原子添加到系统中。这对于调试或者创建一些列手动添加的原子会比较有用。

random类型:在系统中按着随机坐标产生N各原子,这对于产生无定形系统会比较有用。根据指定的随机种子数seed,程序会依次创建N个随机原子。这N个随机原子的坐标与所使用处理器的个数没有关系。另外,如果region-ID设置为NULL,那么创建的原子会随机填充模拟盒子的任何位置;如果指定了特定的region-ID,那么原子就只会随机填充在模拟盒子与region-ID所共同指定的区域。

注意:使用random类型产生的原子很有可能是相互重叠的(译注:或者是距离较近,不太符合实际物理),从而导致计算出较大的力或能量。因此,在你开始进行正常的动力学计算时,最好先使用minimize对体系进行能量最小化,或先使用fix nve/limit进行动力学计算。

该命令是向已经存在的体系中继续添加原子。换句话说,该命令可以多次使用,从而可以在模拟盒子中创建多组原子。举例来说,通过交错地使用create_atoms命令和lattice命令(配置为不同晶向orientations),就可以创建晶界;联合使用create_atoms命令和delete_atoms命令,可以创建非常复杂的体系。

create_atoms命令也可以在已经读入的体系中继续创建原子。在所有列举的这些情况中,都需要注意不要让新创建的原子与已经存在的原子重叠。可以使用delete_atoms命令来处理重叠原子的问题。

basis关键字:用来为要创建的特定的基本原子指定原子类型。参考lattice命令,了解如何为原胞定义基本原子。默认情况下,所有创建的原子都被指定为参数type说指定的原子类型。

remap关键字:仅仅在single类型下使用。如果将其设置为yes,那么当指定的位置在模拟盒子外面时,它会将其挪到盒子里面,就好像在相应的方向上设置了周期性边界条件一样。如果将其设置为no,就不会进行类似上面的调整,就是说如果创建原子的位置在模拟盒子外面,那么就不会创建原子。

units关键字:用来设定要创建的single类型的那个原子的坐标的单位。若取值box,坐标的单位就与命令units说指定的距离单位相同,比如units设为real或metal时,其单位为Angstroms。若取值lattice,坐标是以晶格距离为单位的。

所创建的原子的ID是遵从如下规律:所有待创建原子的ID是连续的,其中第一个被创建原子的ID是紧接着体系中已经存在原子的最大的ID。使用不同数目的处理器进行计算时,不能保证某个特定的原子会分配到同样的ID。

除了原子的ID之外,原子类型、坐标以及其他性质都设为默认值。具体到有哪些性质,是由atom style决定的。参考set和velocity命令,了解如何改变这些默认值。

charge = 0.0
dipole moment magnitude = 0.0
diameter = 1.0
shape = 0.0 0.0 0.0
density = 1.0
volume = 1.0
velocity = 0.0 0.0 0.0
angular velocity = 0.0 0.0 0.0
angular momentum = 0.0 0.0 0.0
quaternion = (1,0,0,0)
bonds, angles, dihedrals, impropers = none
sphere类型会将默认的粒子直径和密度设置为1.0,那么粒子对应的质量就不是1.0,而是PI/6 * diameter^3 = 0.5236.

ellipsoid类型会将默认的粒子形状设置为(0.0 0.0 0.0),密度设置为1.0,也就是一个点粒子,而不是真正的ellipsoid,并且质量为1.0。

peri类型会将默认的体积和密度设置为1.0,因此粒子的质量也就是1.0。

可以使用set命令来重写这些默认设置。

使用限制
在使用该命令之前,必须已经定了atom_style。

默认设置
basis的默认值是所有创建的原子都分配参数type所指定的原子类型。
remap的默认值是no。
units的默认值是lattice。

 类似资料: