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手冊。
更多lammps教程請關注微信公眾號:lammps加油站