分子模擬簡介 1-1:蒙特卡洛模擬原理
由于本人水平不足,本文難免會有錯誤,如發(fā)現(xiàn)錯誤或有任何不懂的歡迎在評論區(qū)指出

本部分主要參考:

很多分子模擬的教材和其他的計算物理教材都有蒙特卡洛模擬方法的介紹。

通過前兩部分(0-1,0-2)的介紹,我們只需要得到體系狀態(tài)的概率分布:

就可以通過統(tǒng)計的方法求得物理量。但是其中配分函數(shù)????????并不容易計算,并且學(xué)習(xí)過統(tǒng)計物理會知道,如果我們知道了配分函數(shù)的解析表達(dá)式,其實可以直接通過配分函數(shù)來計算相關(guān)物理量而不需要使用(0-2)中的公式。
這里使用蒙特卡洛模擬的方法生成符合此概率分布的體系狀態(tài),從而避免了直接計算配分函數(shù),這樣就需要使用(0-2)中公式來計算物理量了。
蒙特卡洛(Monte Carlo,MC)模擬原理
一般來說,蒙特卡洛模擬是按照一定概率,隨機(jī)地將體系從狀態(tài) ?????轉(zhuǎn)換到狀態(tài) ????。轉(zhuǎn)換概率為 ??????,且要求 ???????只與當(dāng)前狀態(tài) ?????和下一個狀態(tài)狀態(tài) ?????有關(guān)(與之前的過程無關(guān),即轉(zhuǎn)換是無記憶的),即所謂馬爾科夫過程(Markov process)。

一系列馬爾可夫過程構(gòu)成馬爾可夫鏈(Markov chain),在平衡時有關(guān)系(全局平衡條件,global balance equations):

其中 ??(????) 為體系在 ?????時的概率。
引用?Thijssen 的比喻,將每個狀態(tài) ?????視為一個個水桶,而???(????) 為每個水桶中的水量,?????????(????)?為從水桶 ?? 流向水桶 ?? 的水量,從而平衡時應(yīng)有(對每一個????):
流向水桶??? 的總水量(左邊)=從水桶??? 流出的總水量(右邊)
這里模擬時僅需滿足充分條件即可,即細(xì)致平衡條件(detailed balance condition):

繼續(xù)上述的比喻,則這里認(rèn)為每兩個水桶之間相互流動的水量是相等的(自然滿足上述平衡條件)。
相比全局的平衡條件,細(xì)致平衡條件沒有考慮成環(huán)的概率流動等其他形式。上圖的例子不滿足細(xì)致平衡條件。
這里我們需要構(gòu)造 NVT 系綜下的超額部分的體系狀態(tài)分布,即要求(詳見0-1的“NVT 系綜下的進(jìn)一步化簡”,將物理量分為理想部分和超額部分):

代入上式得到:

選取滿足上述的 ?????? 構(gòu)造馬爾科夫鏈,體系概率穩(wěn)定時即為所需生成的概率分布,由此避免了直接計算配分函數(shù)。
為了方便構(gòu)造,將 ?????? 拆分成 ?????? = ????????????,令其中 ?????? 為選擇概率,?????? 為接受概率,故有:

對應(yīng)模擬中,選擇概率????????意為在狀態(tài)??????中選擇到狀態(tài) ?????的概率,而????????為選擇了上述狀態(tài)后接受這個選擇的概率。注意在模擬中即使沒有接受也應(yīng)計入統(tǒng)計。
Metropolis 算法
這里選取對稱的選擇概率:

而接受概率選擇:

(代入滿足上式)
即當(dāng)下一個狀態(tài)(????)的能量小于當(dāng)前狀態(tài)(????)時一定接受這個選擇,而當(dāng)下一個狀態(tài)的能量大于于當(dāng)前狀態(tài)時則有 exp(-βΔE) 的概率接受這個選擇。
這種選取選擇概率和接受概率的算法即為 Metropolis 算法
補充
由于蒙特卡洛方法只是一個統(tǒng)稱,許多只要涉及隨機(jī)選擇的算法都可以稱為蒙特卡洛方法。故對于本文中使用蒙特卡洛方法生成馬爾科夫鏈得到概率分布用于統(tǒng)計的方法,一般稱為馬爾科夫鏈蒙特卡洛算法(Markov Chain Monte Carlo, MCMC),或者 Metropolis?Monte Carlo 算法。
當(dāng)然這里主要用于模擬物理體系,所以筆者稱其為蒙特卡洛模擬,后續(xù)介紹動力學(xué)蒙特卡洛模擬(Kinetic Monte Carlo,KMC)時也稱這種方法為原始的蒙特卡洛模擬。
總結(jié)
本部分介紹了蒙特卡洛模擬的原理和方法,在下一部分(1-2)將會用其模擬單原子氣體(跳過 Ising 模型部分)。

如發(fā)現(xiàn)錯誤或有任何不懂的歡迎在評論區(qū)指出