Lammps 源代碼解析

所有的頭文件都以下面的編譯預處理命令開始, 例如 fix_setforce.h

#ifdef FIX_CLASS
FixStyle(setforce,FixSetForce)
#else

其中 FixStyle 宏定義在lammps.cpp 的help函數裏,相關代碼片段如下:

pos = 80;
fprintf(screen,"* Fix styles\n");
#define FIX_CLASS
#define FixStyle(key,Class) print_style(#key,pos);
#include "style_fix.h"
#undef FIX_CLASS
fprintf(screen,"\n\n");

其中在 key 前加 # 是爲了給key對應的字符串加入雙引號,即等價於 “key”。再通過查看,print_style函數,我們知道這段代碼的目的就是打印所有已經定義的 fix style。這段代碼當我們調用 lmpmac -help 時會打印,例如本人mac上打印的所有 integrate的style

* Integrate styles:

respa           respa/omp       verlet          verlet/intel    verlet/kk       
verlet/split    verlet/split/intel              

因此,當自己加入新的 style 時候,需要更改對應的 “style_*.h” 文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章