1. 程式人生 > 其它 >lammps教程:velocity命令三種使用方法

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

技術標籤:lammsp教程lammps

原子速度在分子動力學模擬中是一個重要的引數,不僅決定了當前時刻體系的溫度,也決定了原子在下一個的位置。

速度的設定是分子動力學模擬必不可少的一個步驟。

在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手冊。

更多lammps教程請關注微信公眾號:lammps加油站