【LAMMPS翻译系列】delete_atoms命令
delete_atoms命令用于删除指定的原子。
使用语法
delete_atoms style args keyword value ...
- style = group or region or overlap or porosity
group args = group-ID region args = region-ID overlap args = cutoff group1-ID group2-ID cutoff = delete one atom from pairs of atoms within the cutoff (distance units) group1-ID = one atom in pair must be in this group group2-ID = other atom in pair must be in this group porosity args = region-ID fraction seed region-ID = region within which to perform deletions fraction = delete this fraction of atoms seed = random number seed (positive integer)
- keyword = compress or mol
-
compress value = no or yes mol value = no or yes
使用举例
delete_atoms group edge delete_atoms region sphere compress no delete_atoms overlap 0.3 all all delete_atoms overlap 0.5 solvent colloid delete_atoms porosity cube 0.1 482793
使用介绍
该命令用于删除指定的原子。具体来说,你既可以使用该命令在块体材料中创建空洞(译注:比如空位缺陷等等),也可以删除彼此相距较近的原子(比如晶界附近的原子)。group类型:所有属于该组的原子会被删掉。
region类型:所有在该区域中的原子会被删掉。如果某分子中有原子在该指定区域,那么属于这个分子的所有原子都会被删掉。参考下面对mol关键字的介绍。
overlap类型:在指定的组中查找距离小于指定截断距离的原子对,将其中一个原子删掉。原子对中的第一个原子应属于第一个指定的组,第二个原子属于第二个指定的组。被删掉的那个原子是第一个组中的。
两个组使用相同的ID(比如使用all),或者某些原子同时属于这两个组(译注:两个组在定义上有交集)也是可以的。在这种情况下,这对原子中的任何一个都有可能被删除。对于这种特殊情形,可以确保的是在删除操作结束后,所有原子间的距离都满足要求,即不小于截断指定的截断距离,但不能确保删除的原子数目是最小的,或者在使用不同数量的处理器时,删除相同的原子。
porosity类型:删除指定区域内指定比例的原子。举例来说,如果fraction设置为0.1,那么就会删除10%的原子。删除的原子是随机选取的。程序不能保证绝对精确的删除比例,也不能保证在运行不同数量的处理器时,删除相同的原子。
compress关键字:如果设置为yes,那么指定原子被删除之后,剩下原子的ID会从1开始重新编号。对于分子系统,可以忽略该关键字的作用,因为重新对ID进行编号会搞乱原来原子间键的连接。
mol关键字:如果设置为yes,那么属于该分子的任何一个原子被删掉了,所有属于该分子的原子也会被删掉。该关键字只对region类型有效。这样做可以确保整个分子都被删掉,而不是一部分原子,否则就会很容易因为剩下原子的键、角、二面角的相互作用而造成运行出错。
使用限制
overlap类型需要处理器间通信以获取镜像原子来建立邻域列表,这就意味着你在使用该命令之前,已经完成了模拟所需的其他命令的设置(如力场、原子质量等)。又因为查找重叠的原子需要用到领域列表,所以你必须定义pair_style,并且其中所指定的截断距离要大于或等于overlap类型中指定的截断距离。如果定义了special_bonds,并且参数都设为0,那么成键的原子对 (1-2, 1-3, or 1-4) 就不会出现在邻域列表中,因此也就不会被指定为overlap类型的命令删除。这样考虑是合理的,因为你大概不会希望将成键的原子对中的一个原子。