1. 程式人生 > >LAMMPS-用fix nve一定表示NVE系綜的模擬麼

LAMMPS-用fix nve一定表示NVE系綜的模擬麼

最近QQ群裡有部分小夥伴,問我關於命令和系綜的事情,對命令和系綜的理解沒有到應有的地步,我記得之前在口說LAMMPS命令系列教程(優酷有視訊可免費觀看)中強調過此事。下面再說一遍。

首先要宣告的是,或者要強調的是:命令和系綜沒有直接聯絡,除非你的in檔案裡只有一個和系綜相關的fix.

我們知道,按統計物理的概念來講,我們常用的模擬系綜分NVE(表示系統粒子數、體積、總能量保持不變,是為微正則系綜),NVT(表示,粒子數、體積、溫度保持不變,是正則系綜,大多數體系都會用此係綜進行抽樣),NPT(表示粒子數、壓強、溫度保持不變,是等溫等壓系綜)。注:上面說的保持不變,指的是巨集觀統計平均值。

而與上面對應的LAMMPS命令有 fix nve; fix nvt; fix npt. 到這裡大家應該沒有什麼疑問,因為系綜和命令是一一對應的。那下面一個命令組如何理解呢?:

Fix nve+ fix temp/rescale

……………………………………………………….(此處大家先思考下)

看到上面命令,你判斷是nve還是nvt,還是npt呢????????????????

正確答案是 nvt系綜!想不明白的仔細讀我下面說的話。我們上面所說的系綜,是指的你的模擬體系巨集觀上對應於什麼樣的系統。當整個體系保持,N, V, T不變時,就是NVT系綜。而上述組合命令的最終結果,就是保證了體系N、V、T的不變。所以我們不能看的有fix nve就認為是nve系綜。只要大家抓住N、V、T、P這些量哪些被調控了,就能理解自己的系統是什麼系綜了。比如fix nve+ fix langven; fix nve+ fix temp/berendsen都是NVT的系綜。

Fix nve+ fixtemp/berendsen + fix press/berendsen; fix nvt +fix press/berendsen 就是NPT系綜.

到這,大家應該理解最前面的fix命令,其實是啟動更新座標和速度的作用,後面的命令是進行相關量的調控。比如fix +nve 進行位置和速度的更新,體系沒有能量的輸入輸出,所以是NVE。。當你加上fix temp/rescale時,這個命令在第一個命令更新速度時,進行了速度的標度(也就是說對溫度進行了調控,使其保持不變),那這樣的系統,最終導致的結果就是T也保持了恆定。所以是NVT系綜。

到此,大家應該能理解fix nvt+ fix press/berendsen為什麼不是nvt系綜了吧。

注:fixnvt已經對體系進行了T的調節,而沒對V進行調節;到加上fix press/berendsen時,這個命令對V進行了調節來保證體系P恆定。