lammps教程:fix setforce命令詳解
阿新 • • 發佈:2021-02-03
在分子動力學模擬中,有時需要固定一部分原子,例如,使用velocity命令對體系進行拉伸時,固定底部原子,對頂部原子施加一定的速度實現拉伸。
在奈米磨削中,也需要固定設定一個固定層,防止工件在磨削力的作用下移動。
在lammps中固定原子的方式有多種,我比較常用的是fix setforce命令。
fix setforce命令語法格式為:
fix ID group-ID setforce fx fy fz keyword value ...
其中:
- ID是本次fix設定的id,可以任意命名。
- group-ID是需要被施加力的原子組
- fx、fy、fz是施加力的方向和大小。
fix setforce原理是在xyz方向上設定原子新的受力值,如果某個方向不需要設定,可設為NULL。
#將indenter在xyz三個方向的受力設為0
fix freeze indenter setforce 0.0 0.0 0.0
#將edge在yz方向上的受力設為0,x方向受力保持原值不變
fix 2 edge setforce NULL 0.0 0.0
如果打算固定boundary組,就可以把boundary組各個方向的受力設為0:
fix 1 boundary setforce 0.0 0.0 0.0
如果只是使用setforce一句命令,有可能還會存在一個問題。
當boundary組的原子手裡為0,但如果boundary組原子有非零溫度,也就是原子有速度的話,即使受力為0,原子也會按照初始的速度繼續移動,同樣達不到固定原子的效果。
這種情況下,需要配合velocity使用,把該原子組的速度設為0.
velocity boundary set 0.0 0.0 0.0
fix 1 boundary setforce 0.0 0.0 0.0
上面兩句程式碼配合使用,就可以固定boundary原子。
更多lammps教程和原始碼請關注微信公眾號:lammps加油站