[lammps第十五讲]lammps输出MSD(均方根位移)详解及示例教程

原创 一直陪着你的 LAMMPS交流站 2021-10-23 11:45

收录于话题

#lammps21个内容

#lammps后处理17个内容

图片

   大家好,前面小编讲解了一期RDF(径向分布函数)的详解及LAMMPS输出过程,就有很多小伙伴问到小编MSD的LAMMPS输出过程,所以本期小编本期介绍下MSD(均方根位移)的输出办法,小编就把自己学到的在这里跟大家分享,也算是小编学习过程中的一个笔记。

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

  

图片

01

MSD介绍

1.均方根位移     

     均方根位移计算材料的均方位移,当观测时间趋于无穷大时,MSD与极限观测时间成正比,MSD的定义的定义式如下:

图片

式中,N是粒子数,t代表时间,r(t0+t)-r(t0)是给定粒子在一段时间内经过的矢量距离,<...>为平衡后的系综平均。

图片

 图 均方根位移(xyz三个方向及总的MSD)

02

官网用法

我们在lammps官网可以看到输出MSD的具体语法

compute ID group-ID msd keyword value ...fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...#com value = yes or no#average value = yes or no

  

举例:

compute 1 all msdcompute 1 upper msd com yes average yes

     在compute msd命令中,keyword为关键词。

     在fix ave/time命令中,Nfreq必须是Nevery的整数倍,Nevery

必须是非零。用compute msd命令时,value1、value2 ... 为c_ID[1],c_ID[2],c_ID[3],c_ID[4],输出结果按列依次为序号,c_ID[1]、c_ID[2]、c_ID[3]x、y、z方向上的MSD值,c_ID[4]为总的MSD值。

     例如以下命令可用于输出每1000步的MSD值:

compute msd all rdf 200 2 6  #rdf       fix rdf all ave/time 1000 1 1000 c_rd1[1] c_rd1[2] c_rd1[3] file data.rdf mode scalar

03

代码示例

  本文同样将之前做的一个案例CuNi合金熔化模拟的1550K-2500K升温过程的MSD输出,添加的代码为:

#输出MSD----------------------------------
compute msd all msd com yes   #计算MSD
fix savemsd all ave/time 500 1 500 c_msd[1] c_msd[2] c_msd[3] c_msd[4] file msd.data mode scalar
 

完整in文件如下:

#lammps交流站案例
units           metal
boundary        p p p

atom_style      atomic

read_data  melting.in.dat

lattice         fcc 3.65 
region          box block -30 30  -5 5 -5 5
#create_box      1 box
#create_atoms  

mass            1  64.55
mass            2  58.69 

pair_style      eam/alloy
pair_coeff      * * CuNi.lammps.eam Cu Ni

region          1 block INF -0.01  -6 6  -6 6
group           left region 1
region          2 block -0.01 INF  -6 6 -6 6
group           right region 2

timestep        0.002
velocity        all create 1550.0 4928459 dist gaussian
fix             1 all npt temp 1550 1550 0.1 iso 0 0 0.2

dump            melt all atom 10000 dump.dat
#dump            melt all custom 1000 dump.atom.slow tag type xu yu zu vx vy vz  sxx syy szz
restart         50000  restart.*

thermo          100
run             4000

#thermo_style    custom step temp etotal pe press vol pxx pyy pzz pyz pxz pxy

unfix   1
fix             1 right npt temp 1550 2500 0.1 x 0 0   0.2
#输出MSD
compute msd all msd com yes   #计算MSD
fix savemsd all ave/time 500 1 500 c_msd[1] c_msd[2] c_msd[3] c_msd[4] file msd.data mode scalar
run             2000
unfix   1
fix             1 right npt temp 2500 1550 0.1 x 0 0   0.2

run             44000

unfix           1
fix 1     all nph iso 0.0 0.0 0.2  
run             100000

    最后,用记事本打开生成的msd.data文件,用里面的数据绘图,就可以得到如下的MSD曲线。

图片

图 CuNi合金熔化过程均方根位移曲线

注意

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

更多案例请关注lammps交流站

LAMMPS交流站

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐