《跟隨霄,LAMMPS源碼學習06》Atom:grow
最新
06-04
(儘管我們都喜歡看科普爽文,但我會把這個系列堅持更新完,直到講完所有核心代碼,相比科普,硬知識更重要。)
04期推文調用grow()的方式為:
偽代碼如下[atom.cpp]:
該函數接受一個參數,即增長的原子數目nmax。然後利用memory-grow()實現每個原子屬性的增長。總共有7個原子屬性,存儲在atom指針指向的Atom實例中。7個原子屬性詳解如下:
tag為原子標記,目前功能未知,之後遇到再說
type為原子類型
mask為掩碼,方便計算某些性質時除去某些原子
image為使用周期性邊界時,該原子的鏡像原子所在的周期標號,例如box的x方向長度為20,某個原子向x方向移動了46,則image[0]=2,x[0]=6。
x為原子的位置,有三個分量分別為x,y,z方向的位置,因此相比上面的標量,memory->grow()多接受了一個參數3(函數重載)
v為原子的速度,有三個分量
f為原子的受力,有三個分量
※Ubuntu Linux環境下shadowsocks-qt5的安裝與配置
TAG:玩玩分子動力學 |