[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 msd
compute 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交流站文章来源:https://www.toymoban.com/news/detail-480878.html
LAMMPS交流站文章来源地址https://www.toymoban.com/news/detail-480878.html
到了这里,关于lammps输出MSD(均方根位移)详解及示例教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!