lammps教程:如果动态统计区域内的原子数量 |
您所在的位置:网站首页 › 怎样算原子数目 › lammps教程:如果动态统计区域内的原子数量 |
大家好,我是小马老师。 lammps模拟中,group是一个比较重要的命令,几乎所有的fix和compute命令均对group id进行操作。 默认情况下,原子组是一个静态(static)类型的组当原子被划入到一个组中后,原子将“永远”属于这个组,除非被新的group命令设置。 如有命令: group 1 region mobile组1的原子离开mobile区域后,还是属于组1,同理,当有新的原子进入到mobile区域,该原子也不会被归入到组1中。 如果以region区域作为讨论对象,研究region内某一时刻原子的性质,就必须动态的跟踪region内的原子。 用普通的静态分组显然无法满足要求,这时候就需要用到动态组(dynamic group)。 如统计半径为15的球形区域内气体的数量. 气体处于扩散状态,球形区域内的气体有进有出,所以需要设置动态组。 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变量内。 统计结果如下图所示: 完整的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 |