官方手冊的翻譯及補充,關於系綜命令可見:

補充部分在段落結尾以“添注”形式補充。

可以採用langevin/kk進行加速設定

語法:

fix ID group-ID langevin Tstart Tstop damp seed keyword values 。。。

ID 是fix名,group-ID是fix所作用的群組名。這兩個是所有fix命令都需要的。

langevin是fix命令的型別名

Tstart, Tstop是在模擬開始和結束所設定的溫度(採用溫度單位)

Tstart可以設定為一個變數(後續進行說明)

damp是阻尼引數(採用時間單位)

seed是用來建立白噪音的種子數(正整數)

可以不新增或者新增其他關鍵詞對

關鍵詞有:angmom、omega、scale、tally和zero

angmom value = no or factor

no = do not thermostat rotational degrees of freedom via the angular momentum

factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below

gjf value = no or vfull or vhalf

no = use standard formulation

vfull = use Gronbech-Jensen/Farago formulation

vhalf = use 2GJ formulation

omega value = no or yes

no = do not thermostat rotational degrees of freedom via the angular velocity

yes = do thermostat rotational degrees of freedom via the angular velocity

scale values = type ratio

type = atom type (1-N)

ratio = factor by which to scale the damping coefficient

tally value = no or yes

no = do not tally the energy added/subtracted to atoms

yes = do tally the energy added/subtracted to atoms

zero value = no or yes

no = do not set total random force to zero

yes = set total random force to zero

例子:

fix 3 boundary langevin 1。0 1。0 1000。0 699483

fix 1 all langevin 1。0 1。1 100。0 48279 scale 3 1。5

fix 1 all langevin 1。0 1。1 100。0 48279 angmom 3。333

詳細說明:

如Schneider, et al。論文所屬,郎之萬控熱浴用來模擬一群原子與隱式溶劑的作用。使用

fix nve

命令將會進行布朗動力學模擬,每個原子所受力的形式如下:

F=F_{c}+F_{f}+F_{\tau}\\ F_{f}=-\frac{m}{\rm{damp}}v\\ F_{\tau}\infty\sqrt{\frac{k_{B}Tm}{{dt} \rm{damp}}}

F_{c}

是原子之間基於力場作用的保守力項,

F_{f}

F_{\tau}

是透過該fix命令新增在每個原子上的力。參見pair_style dpd/tstat命令中可以實現在粒子力場作用的基礎上施加類似的熱力學項。

F_{f}

是與粒子速度成正比的摩擦阻力或者粘性阻尼項。每個原子的比例係數為

\frac{m}{\rm{damp}}

,其中m是粒子質量,

\rm{damp}

是使用者自定義的阻尼因子。

F_{\tau}

是溫度

T

下溶劑原子與粒子隨機碰撞所產生的力。從漲落-耗散理論推導而來,其大小與

\sqrt{\frac{k_{B}Tm}{{dt} \rm{damp}}}

正正比,其中

k_{B}

是玻爾茲曼常數,

T

是所設定的溫度,

m

是粒子的質量,

dt

是時間步大小,

\rm{damp}

是阻尼因子。隨機數用來對Dunweg, et al。論文中所描述的力的大小和方向進行隨機化。在這裡使用統一的隨機數(而不是一個高斯隨機數)來提升速度。

Note:

和 fix nvt命令採用Nose/Hoover熱浴進行時間積分不同的是,這個fix不進行時間積分,只是修改粒子所受的力。因此你必須要用一個另外的時間積分fix命令,譬如fix nve來迭代更新速度和原子的位置。如果這樣的話,這個fix通常不應該與其他控溫的fix命令一起使用,譬如fix nvt或者fix temp/scale命令。

在Howto thermostat 頁面進行了不同計算溫度和進行熱浴控溫的方式。

溫度從Tstart到Tstop進行線性的上升,每個時間步都會進行更新。

Tstart可以定義為equal-style或者atom-style的變數。在這樣的情況下,Tstop的設定會被忽略。如果Tstart是一個變數,應該定義為v_name,其中name是變數名。此時,變數將會在每個時間步發生變化,其值決定了目標溫度。

Equal-style的變數可以採用不同的數學函式的形式,並且可以呼叫thermo_style命令中的引數,譬如模擬盒子的引數,時間步等。因此非常簡單的就可以設定一個特定的時間依賴的溫度。

Atom-style變數可以與Equal-style一樣進行設定,但是Atom-style包括per-atom的值,因此可以用來設定空間依賴的溫度。

與其他執行熱浴的fix命令一樣,該fix也可以使用compute commands來消除原子速度的“bias”,譬如去除一群原子的質心速度或者x方向的速度分量。該過程不會預設進行,而是需要透過fix_modify來進行修改指定“bias”項。

\rm{damp}

引數的單位與時間單位一致,用於決定速度釋放的速率。譬如,其值為100意味著釋放溫度大概在100個時間單位的尺度。可以認為

\rm{damp}

因子與溶劑的粘度成反比,也就是,很小的馳豫時間意味著高粘性溶劑,反之亦然。更多的細節參見fix viscous頁面的討論。

隨機的seed必須是一個正整數。使用Marsaglia隨機數生成器。 每個處理器使用輸入的種子來生成自己的唯一種子和自己的隨機數流。 因此,在不同數量的處理器上執行兩次時,系統的動態性將是不同的。

——————————————————————————————————————

下面介紹keyword/value對選項的設定細節:

關鍵詞angmom 和 omega在通常的平移自由度外,還可以對旋轉自由度進行熱浴設定。這僅適用於有限尺寸的粒子。

使用atom_style sphere的模擬為有限尺寸的sphere定義了omega。 使用atom_style ellipoid的模擬定義了非球面粒子和角動量定義了尺寸和形狀。 用於調節旋轉自由度的Langevin公式與上面的公式相同,其中力被扭矩代替,m被慣性矩I取代,v被omega替代(在非球面粒子的情形中由ω中的角動量得出)。

關鍵字 tally可以計算出在施加控溫器後原子新增/減去的累積能量。 實際上,它是無線大的熱浴與粒子之間所交換的能量。 如下所述,然後可以輸出該能量或將其新增到系統的勢能中以監視能量守恆情況。(注:採用非平衡態模擬計算熱導率時,如果採用郎之萬熱浴,就必須選定該選項,用來計算從高溫區域到低溫區域的熱流,其中高溫區域輸出的積累能量,和低溫區域得到的積累能量應當是相等的。)

Note:

積累能量不會保持採用zero關鍵詞所移除的動能,如果tally和zero關鍵詞同時設定,LAMMPS會顯示一個warning。

關鍵字zero可用於消除由於控溫器引起的漂移。由於作用在不同原子上的隨機力是獨立的,因此它們的總和不為零。這會導致此fix命令將較小的隨機力應用於整個系統,並且系統的質心經歷了緩慢的隨機行走。如果關鍵字“zero”設定為“yes”,則透過從組中的每個原子中減去相等的部分,將總隨機力精確設定為零。在這種情況下,具有零初始動量的系統的質心將不會隨時間漂移。