1. 程式人生 > 其它 >lammps教程:fix setforce命令詳解

lammps教程:fix setforce命令詳解

技術標籤:lammsp教程lammps

在分子動力學模擬中,有時需要固定一部分原子,例如,使用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加油站