前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LAMMPS教程(二)初始条件命令

LAMMPS教程(二)初始条件命令

作者头像
DanielZhang
发布2021-01-18 09:57:18
3K0
发布2021-01-18 09:57:18
举报

分子动力学模拟的初始条件主要包括设定粒子的初始位置初始速度。LAMMPS软件中有丰富的命令可供用户使用。为了帮助初学者快速地掌握粒子初始条件的设定,并且灵活地得到需要的体系,本文详细介绍了命令displace_atoms, delete_atoms, read_data, set, velocity的使用方法和注意事项。

1. displace_atoms

语法

displace_atoms group-ID style args keyword value

group-ID:需要移动的组ID

style可选:move, ramp, random, rotate

keyword: units box, units lattice

举例

displace_atoms top move 0 -5 0 units box displace_atoms flow ramp x 0.0 5.0 y 2.0 20.5

说明

该命令主要用于移动一组原子,例如,在模拟之初在体系中引入切应变。

类型move用于将一组原子沿一个三维矢量移动,三维矢量中的分量可以为常量或变量。在使用变量时,变量应该被写作v_name的形式。关键字units决定了命令中常量或变量的单位,即units box表示矢量的单位与units命令设定的单位一致,units lattice表示矢量的单位为lattice命令所确定的三维晶格格点的距离。

当三维矢量以变量表示时,变量可以写作equal类型的数学函数。此时,粒子移动位移就可以根据位置、速度或模拟步等物理量变化。

类型ramp用于粒子的等比例斜坡移动,例如举例中,第二条命令的含义为:将flow组中的离子沿x方向移动0~5个单位,具体移动的距离取决于粒子在y方向上的位置,即位于y=2的粒子朝x方向移动0,位于y=20.5的粒子沿y方向移动5个单位。

类型random包括三个参数dx,dy,dz,表示将某组中的粒子沿x,y,z方向随机移动±dx,±dy,±dz。

类型rotate用于将一组原子沿某点(px,py,pz)和某方向(rx,ry,rz)旋转一定角度theta,共有七个参数,theta的正负遵循右手法则。

注意事项

体系中的原子可以被移动任意长的距离。对于周期性边界条件,原子穿越边界后仍会回到模拟盒子内。对于非周期性边界条件,如果原子移动的位移过长,模拟盒子会发生相应的变化。此时,需要注意的是,不同处理单元对应的计算区域可能不是最优的,需要利用processors命令进行调整。

2. delete_atoms

语法

delete_atoms style args keyword value

style可选:group, region, overlap, porosity

keyword可选:compress, bond, mol

举例

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 bond yes

说明

该命令主要用于删除不需要的原子。可用于创建晶界,缺陷,多孔孔结构。

类型group表示删除组内的全部原子。

类型region表示删除区域内的全部原子。此外,如果区域边界处的原子位于一个分子中,即使分子中存在不属于区域内的原子,该分子会被整个删除。

类型overlap的参数有截断距离,组1和组2的ID。程序搜索组1和组2中的原子,当存在相距距离小于截断距离时,删除第一组内的原子。两组原子的组名可以相同,保证组内原子的距离均大于截断值。

类型porosity用于删除一定百分比的原子,形成多孔结构。

关键字compress用于删除原子后,将原子的ID重新排序,从1到原子总数。该命令对含有分子的体系不适用。

关键字bond如果设置为yes,那么被删除原子涉及的键长、键角、二面角和离平面作用信息均会被删除。

关键字mol设置为yes时,当删除分子中的某个原子时,体系中所有相同分子中的对应原子均会被删除,除了ID为0分子中的对应原子。

注意事项

  1. 类型overlap在使用前需要建立邻域列表,也就是需要设置pair style和neighbor命令,保证势函数的阶段半径+邻域层半径大于overlap的截断距离。如果不希望overlap删除分子内的键合,可以使用special_bonds命令避免建立相应的邻域列表。
  2. 关键字bond不能用于使用分子模板定义的分子体系,例如命令molecule和atom_style template。

3. read_data

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bottom2top 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档