所有的頭文件都以下面的編譯預處理命令開始, 例如 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” 文件。