lammps教程:如果动态统计区域内的原子数量

您所在的位置:网站首页 怎样算原子数目 lammps教程:如果动态统计区域内的原子数量

lammps教程:如果动态统计区域内的原子数量

2024-07-13 00:56| 来源: 网络整理| 查看: 265

大家好,我是小马老师。

lammps模拟中,group是一个比较重要的命令,几乎所有的fix和compute命令均对group id进行操作。

默认情况下,原子组是一个静态(static)类型的组当原子被划入到一个组中后,原子将“永远”属于这个组,除非被新的group命令设置。

如有命令:

group 1 region mobile

组1的原子离开mobile区域后,还是属于组1,同理,当有新的原子进入到mobile区域,该原子也不会被归入到组1中。

如果以region区域作为讨论对象,研究region内某一时刻原子的性质,就必须动态的跟踪region内的原子。

用普通的静态分组显然无法满足要求,这时候就需要用到动态组(dynamic group)。

lammps教程:如果动态统计区域内的原子数量_公众号

如统计半径为15的球形区域内气体的数量.

lammps教程:如果动态统计区域内的原子数量_公众号_02

气体处于扩散状态,球形区域内的气体有进有出,所以需要设置动态组。

region ss sphere 0 0 0 15group mobile dynamic all region ss every 10variable number equal count(mobile)

在组名mobile后面加dynamic表示改组为动态组,all表示所有进入球形内的原子都会被归入mobile组。

every 10表示每10步判断一次是否有原子进入或者离开球形区域,every命令可不写,不写的话默认为1步更新一次。

最后一句count()命令统计组内原子数,并把结果存储在number变量内。

统计结果如下图所示:

lammps教程:如果动态统计区域内的原子数量_微信_03

完整的in文件程序如下:

#气体粒子数量variable npart equal 1000#模拟基本参数设置units ljdimension 3atom_style atomicboundary p p pneighbor 0.5 binneigh_modify every 1 delay 0 check yes#三维box尺寸region box block -20 20 -20 20 -20 20#生成boxcreate_box 1 box#随机产生100个气体原子create_atoms 1 random ${npart} 324523 box#设置摩尔质量1mass * 1#力场设置,soft势pair_style soft 1.0pair_coeff * * 10.0#温度初始化velocity all create 2.0 34234123 dist gaussian#能量最小化minimize 1e-4 1e-4 1000 1000reset_timestep 0#保存轨迹文件dump img all atom 100 gas.xyz#模拟步长timestep 0.001#设置nve系综fix 1 all nveregion ss sphere 0 0 0 15group mobile dynamic all region ss every 10variable number equal count(mobile)thermo_style custom step v_numberthermo 100run 10000

 

END

公众号案例代码以及学习交流,请加QQ群:236862503

点击关注微信公众号



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3