大家好,我是小马老师。
本文介绍如何使用lammps命令计算原子位移。
原子位移可反映材料变形程度或局部变形情况,在lammps后处理中经常会用到。
在lammps中可使用compute displace/atom命令计算原子位移。
这个命令语法比较简单:
compute 1 all displace/atom
计算结果是一个单原子矢量,默认情况下一共输出4个值,分别是原子在xyz三个方向的位移和平均位移sqrt(dxdx + dydy + dz*dz)。
单原子位移可以在dump命令中输出。
如在cu融化案例中添加该命令,可输出融化过程中所有原子的平均位移:
compute 1 all displace/atom
dump 1 all custom 100 cu.xyz id type x y z c_1[4]
在ovito中使用color coding可直观显示原子位移,不同颜色表示不同位移:
模拟体系比较大,输出每个原子的位移可能会导致轨迹文件尺寸过大,可在命令中添加refresh关键词,只输出位移满足条件的原子。
如cu融化案例中,仅输出位移大于0.6的原子,对应代码为:
variable Dhop equal 0.6
variable check atom "c_dsp[4] > v_Dhop"
compute dsp all displace/atom refresh check
dump 1 all custom 100 tmp.dump id type x y z
dump_modify 1 append yes thresh c_dsp[4] > ${Dhop} refresh c_dsp delay 100
显示结果为:
可以看出,轨迹中只显示了位移大于0.6的原子,在模拟初期,原子位移较小,基本没有符合条件的原子,随温度升高,位移大于0.6的原子越来越多。
该命令解释及参考例句均来自lammps官网手册,有兴趣的可阅读手册详细了解命令使用方法。
公众号:lammps加油站