lammps教程:group命令詳解
阿新 • • 發佈:2021-02-19
lammps教程:group命令詳解
在lammps模擬過程中,group基本上是每次都會用到的一個命令。從命令關鍵字上也能猜出來,group就是對原子進行分組的意思。
被group後的原子會被分配一個group-ID,這個group-ID被用到fix、compute、dump等命令中。
例如fix命令中的第二個引數就是group-ID:
fix ID group-ID style_name keyword value ...
fix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0
即使不對原子進行分組,lammps也會設定一個預設的原子組:all,也就是把所有的原子全部劃分到all組內。
例如對系統所有原子進行溫度初始化,可以使用下面的語句,其中all就是預設的group-ID:
velocity all create 300.0 4928459
常用的分組方式有以下幾種:
(1)配合region使用,把某一區域的原子歸入到一個組中。
例如在奈米銅的拉伸時,需要一端固定,另一端施加一定的速度進行拉伸,這就需要把Cu原子劃分為三個組:
left:固定組
right:速度載入組
mobile:中間組
group命令配合union關鍵字可實現兩個組的合併,例如left和right組合併為boundary組,可以寫為:
group boundary union left right
配合substract關鍵字可實現減法操作,所有原子減去boundary原子即為中間moible原子,可以寫為:
group mobile subtract all boundary
Cu拉伸建模全部程式碼如下:
#模型基本設定
units metal
dimension 3
boundary p s p
neighbor 0.3 bin
neigh_modify delay 0
timestep 0.001
#設定晶格引數,生成box
lattice fcc 3.61
region box block 0 20 0 5 0 5
create_box 3 box
create_atoms 1 box
#設定Cu原子質量
mass 1 64
mass 2 64
mass 3 64
#設定left和right區域,以此region設定group
region left block INF 2 INF INF INF INF
group left region left
set group left type 2
region right block 18 INF INF INF INF INF
group right region right
set group right type 3
#group組加減操作
group boundary union left right
group mobile subtract all boundary
#儲存模型資料
write_data Cu.data
(2)配合type命令,可以將多種型別的原子歸為一組
#將原子型別為3和4的原子全部歸入到water組
group water type 3 4
(3)配合原子id可將特定的原子歸入到一組
#原子id為10、25、50的三個原子歸入到sub組
group sub id 10 25 50
#原子id從500到1000的全部原子歸入到sub組
group sub id 500:1000
#原子id為100、110、120...10000的原子歸入到sub組
group sub id 100:10000:10
#原子id小於或等於150的原子歸入到sub組
group sub id <= 150
需要注意的是,lammps最多支援32個group(包含all組),如果定義的組過多,可將不再使用的組刪除:
group boundary delete
group命令在模擬過程中使用比較頻繁,靈活掌握以上幾種應用基本上能夠滿足要求,更多的設定方式可以檢視lammps手冊。
更多lammps教程和案例請關注微信公眾號:lammps加油站