lammps教程:velocity命令三种使用方法

原子速度在分子动力学模拟中是一个重要的参数,不仅决定了当前时刻体系的温度,也决定了原子在下一个的位置。

速度的设置是分子动力学模拟必不可少的一个步骤。

在lammps中,使用velocity命令设置原子的速度,命令格式为:

velocity group-ID style args keyword value ...

其中,group-ID指定哪一组原子将要被设置速度,style决定了速度设置的类型。

常见的速度设置方式有以下三种:

(1)velocity create进行初始化

分子动力学模拟需要有一个初始的状态,因此,当原子模型建立完成,进行minimize能量最小化之后,需要进行速度初始化,体系的温度是由原子的温度计算得到,因此,这个过程也称为温度初始化。

使用的命令为velocity create,例如:

velocity all create 300 4928459

这一条语句的作用是对所有原子进行速度初始化,总体系的温度为300k,4928459为随机数,每个原子的速度被随机设置,默认的情况下,原子的速度符合正态分布。

也可以设置dist参数,使原子的速度符合高斯分布:

velocity all create 300 4928459 dist gaussian

当然,也可以对部分原子进行速度初始化,只需要改变原子组即可:

velocity mobile create 298 4928459

(2)velocity set设置原子在特定方向上的速度

在拉伸、剪切等动力学模拟中,需要这种一部分原子沿着某一个方向移动,可以使用velocity set命令设定特定方向的速度。

例如在沿着Z轴进行拉伸模拟时,需要把底部原子固定住,使上部(top)原子沿着Z轴施加一个速度,可以写为:

velocity top set NULL NULL 2 sum yes units box

上句代码中 NULL NULL 2 表示不设置x和y方向的速度,仅设置z方向速度,sum yes的意思是将速度2加到原子当前时刻速度分量上,如果不写sum yes,则表示忽略原来的速度,直接将z方向速度直接设为2。

默认的单位为晶格单位(lattice),units box关键字可将单位设置为实际速度单位,具体单位与体系units有关。

也可以多个方向同时设置:

velocity top set 2 2 0 sum yes
将x、y方向移动速度设为2(晶格单位),z方向速度为0,覆盖掉原来的速度值。设置之后相当于top组原子沿着x和y方向的对角线方向移动。

(3)velocity ramp设置速度场

lammps允许在某一个方向上按照不同的坐标位置设置不同的速度,例如:

velocity flow ramp vx 0.0 5.0 y 5 15

这句代码是将y坐标从5到15的原子在x方向的速度设为0到5,y坐标小于5的原子x方向速度为0,y坐标大于15的原子x方向的速度为5,中间的原子x方向速度按照比例关系进行设定,例如y坐标为10的原子x方向上的速度为2.5。

掌握以上三种velocity用法,可以应付绝大部分的模拟场景,如果需要更复杂的速度设置,可以查lammps手册。

上一篇
下一篇