lammps统计原子个数

[lammps第十七讲]lammps统计原子个数

原创 一直陪着你的 LAMMPS交流站 2021-11-18 18:00

收录于话题

#lammps21个内容

#lammps后处理17个内容

图片

   大家好,之前一直有小伙伴想让小编出一期统计原子数量的教程,鉴于小编最近科研任务缠身,最近抽出一点时间来满足下小伙伴的愿望。

   不足之处请各位指出,希望能给读者提供一定的帮助,同时希望专业前辈提出不足,小编会和大家共同学习。

  

图片

01

官网用法

      小编也是向老师请教,知道了使用count命令来统计原子个数,让我们先看看在lammps官网中,当然,直接去找count命令的小伙伴你会发现,根本找不到count命令。

      这时,你就需要去找variable命令了,在lammps官网中,variable命令的具体用法:

  variable name style args ...
  name就是变量的名称,style = delete or index or loop or world or universe or uloop or string or format or getenv or file or atomfile or python or internal or equal or vector or atom,我们最常用的就是 equal  了,也就是等于的意思了,使用
equal  时,语法为:
   variable name equal ()
   也就是将()的值赋给name.
  count的用法为count(group)或count(group,region)
  所以,统计原子个数的语句为:

variable N equal count(group_ID,region_ID)
##或
variable N equal count(group_ID)

02

示例教程

下面将统计易挥发元素一段模拟时间后剩余的原子个数。

完整in文件如下:


# lammps交流站统计原子数量示例教程
#------------------start-------------------
#模型基本参数
units      metal
boundary        f f f                        #固定边界条件
atom_style      atomic
#生成方形区域
region              box block -20 20 -20 20 -20 20  #创建方形区域
create_box          1 box                           #生成盒子,1种原子
#创建球形区域
region Pb sphere 0 0 0 20 units box
#在内核内填充Bi原子
lattice             sc 3.23                         #Pb晶格常数3.27
create_atoms        1 region Pb
#------------------------------------------
#设置原子质量
mass                1 207                           #Pb原子质量
#------------------------------------------
#分组
group  Pb region Pb 
#------------------------------------------
#固定墙
fix xwalls all wall/reflect xlo EDGE xhi EDGE 
fix ywalls all wall/reflect ylo EDGE yhi EDGE 
fix zwalls all wall/reflect zlo EDGE
#------------------------------------------
#统计Pb原子个数 
variable N equal count(Pb,box)
#------------------------------------------
#热力学信息输出
timestep        0.001                        #时间步长
thermo      500                     #100步输出一次
thermo_style    custom step v_N           #输出类型:步长,原子个数
thermo_modify   lost ignore flush yes 
#------------------------------------------
#近邻信息
neighbor        1.0 bin                      #近邻原子距离
neigh_modify    every 1 delay 0 check yes
#------------------------------------------
#设置势函数
pair_style      lj/cut 10.0             #lj势/截断半径
pair_coeff    * * 0.02246 3.8932              #epsilon:ev  sigma:A
#------------------------------------------  
#温度初始化
velocity      all create 300 898955 dist gaussian    #原子速度调控温度
#------------------------------------------
#1能量最小化    
dump            1 all atom 5 1min.xyz        #能量最小化输出文件
min_style       cg
minimize        1e-15 1e-15 5000 5000
undump          1
reset_timestep  0
#------------------------------------------
#2nvt系综升温温熔化
dump      2 all atom 100 2nvt_hot.xyz  #升温过程输出文件
fix             2 all nvt temp 300 2000 0.1  #nvt升温:300-2000
#------------------------------------------ 
run          100000                 #升温步长 
#---------------lammps交流站---------------- 
#------------------end---------------------

03

运行结果

  在cmd窗口运行in文件,在log文件中,根据自定义输出的步长及原子个数,可以看到,lammps已经将所统计的原子个数显示在log文件中

   在cmd窗口运行in文件,Pb蒸发过程如下

图片

将统计的原子数量作图可得到如下的原子数量变化曲线:

图片

注意

1.文中所需的data文件及势文件已上传至QQ群-lammps交流站。

更多案例代码,请关注公众号 LAMMPS交流站

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值