結(jié)構(gòu)優(yōu)化和單點能計算的能量為何不同
結(jié)構(gòu)優(yōu)化OPT和單點能計算SP是第一性原理計算最最基礎(chǔ)的計算任務(wù),計算結(jié)束時都會輸出能量。細(xì)心的朋友可能發(fā)現(xiàn)同一個結(jié)構(gòu)、用相同泛函和精度,這兩個能量并不相等。那么,到底該用哪一個?鑒于不少同學(xué)問我,就干脆寫個帖子解釋一下。為嚴(yán)肅起見,我專門做了一個金屬銀的體系作為測試,并附錄我測試的數(shù)據(jù)。以下為方便起見,下面用到的例子都基于密度泛函方法,而且采用PBE泛函,精度相關(guān)的設(shè)置并不高,僅為示例。
首先把我用到的模型我提供下圖,包含三個:A是元胞1×1×1,然后我沿著X方向擴(kuò)大獲得B與C,分別是2×1×1和3×1×1, 這些數(shù)字表示我沿著X、Y、Z擴(kuò)胞時采用的重復(fù)單元的數(shù)量。之所以選擇不同大小的超胞,是下面會看到這個計算誤差與這個尺寸也是有關(guān)的。我的測試采用八核工作站,CASTEP軟件,每個測試花費(fèi)時間在2分鐘以內(nèi),感興趣的朋友可以自行對比重復(fù)。具體操作就是先做結(jié)構(gòu)優(yōu)化(OPT),結(jié)束后把最后輸出的能量收集起來(成為E1),然后用得到的結(jié)構(gòu)重新做一次單點能計算(SP),收集能量并標(biāo)為E2。我關(guān)注的是OPT和SP的能量不一致問題,所以研究ΔE=E2-E1

測試結(jié)果放在下圖,其中左圖代表ΔE隨模型大小的變化,而右圖則是隨計算精度的變化??梢钥偨Y(jié)出兩個重要信息:(1)元胞1×1×1,ΔE很小,大約為10-4 eV,但一旦擴(kuò)胞,ΔE迅速變大到0.1 eV量級,說明ΔE對體系大小非常敏感(參看左圖,A與BC差1000倍);(2)ΔE數(shù)值對優(yōu)化精度不敏感(自洽精度從10-3 eV(low)提升10-5 eV(medium)到10-6 eV(high),ΔE變化在10-5eV水平)。簡言之,OPT和SP肯定有差別,且差別隨體系尺寸增加而更顯著。

從測試來看,顯然OPT相比SP可能少了點什么。要理解這一差異,得明白第一性原理真正計算是如何運(yùn)行的。這得追溯到多體粒子的薛定諤方程,物理化學(xué)方面一般指多電子體系,要解析求解太困難,所以一開始就采用了三大近似,分別為非相對論近似、波恩-奧本海默近似(又稱絕熱近似)以及軌道近似。按照波恩-奧本海默近似,原子核因體量太大總跟不上電子的運(yùn)動,有點類似大象和蜜蜂,所以就把原子核和電子運(yùn)動分離,同時要讓二者關(guān)聯(lián),所以每次大象走一步都讓會停下來讓蜜蜂調(diào)整位置跟上,這樣蜜蜂始終在大象周圍,但坐標(biāo)又不需要同步更新。這樣處理肯定有誤差,但大大簡化了問題,直接效果就是求解電子狀態(tài)(蜜蜂)時可以凍結(jié)原子核(大象)的坐標(biāo),所以一切與原子核相關(guān)的作用可以處理為常數(shù)。
這和今天的問題有什么關(guān)系呢?關(guān)系就在于結(jié)構(gòu)優(yōu)化OPT針對的是原子坐標(biāo)(大象的位置)而沒有精準(zhǔn)定位電子的分布(蜜蜂),但是體系的能量是二者共同貢獻(xiàn)的,也就是說,從能量角度看結(jié)構(gòu)優(yōu)化只是完成了一部分任務(wù),蜜蜂完全可能在大象的鼻子或尾巴上,究竟在哪里體系能量最低呢?這需要在原子核位置確定下來后單獨(dú)對電子狀態(tài)進(jìn)行優(yōu)化,這正是單點能計算的意義所在。所以,當(dāng)我們需要獲得除結(jié)構(gòu)參數(shù)意外的、和電子相關(guān)的準(zhǔn)確信息時(例如能量、電子分布、電荷等)都需要基于優(yōu)化良好的電子狀態(tài)(即電子波函數(shù))的基礎(chǔ)上進(jìn)行,否則是會存在人為誤差的。這里需要提醒一些初學(xué)者,不要為了圖簡單或省時間,就直接使用結(jié)構(gòu)優(yōu)化的能量輸出來做精確計算。這個誤差會隨體系電子數(shù)增加而增加,通過簡單提高收斂精度并不能消除(參看上圖)。
最后問一個更深入的問題:是不是每次SP的能量就一定比OPT要低?答案是不一定!這個不確定性來自于優(yōu)化電子波函數(shù)(即SP步驟)的初始波函數(shù)是哪里來的。如果我們從前一步結(jié)構(gòu)優(yōu)化那里讀?。ㄇ疤崾悄愕挠嬎愫蛙浖贾С帜爿敵霾ê瘮?shù)供后續(xù)計算分析,這個文件一般較大),那么我們一定是會得到更低的能量(哪怕只低一點點)。但很多初學(xué)者沒有很強(qiáng)保留或者分析波函數(shù)的意識,而只讀取了結(jié)構(gòu)坐標(biāo),其本質(zhì)是原子核的坐標(biāo),那么程序計算時往往是基于原子的基態(tài)波函數(shù)(一般就是原子軌道)出發(fā)來優(yōu)化電子分布和具體波函數(shù),完全有可能得到和幾何優(yōu)化有輕微差別的結(jié)果和能量本征值。其原因就是此時程序是看不到你前面已經(jīng)獲得的波函數(shù),因此它進(jìn)行自洽判斷的依據(jù)是重新優(yōu)化波函數(shù)前后步驟能量差,達(dá)到收斂標(biāo)準(zhǔn)就退出。這樣就很可能得到的能量比幾何優(yōu)化輸出的能量還略高。原則上講,這并沒有找到體系真正的電子基態(tài)。正是因為這個原因,一般我會建議做單點能計算都盡可能讀取結(jié)構(gòu)優(yōu)化時輸出的波函數(shù)和電荷分布,這不僅能大大加快計算進(jìn)度,而且能獲得更精準(zhǔn)的基態(tài)波函數(shù)。
對量子力學(xué)和密度泛函理論不熟悉的朋友,可能對于三大近似沒有概念,或難以理解波函數(shù)優(yōu)化。建議閱讀量子力學(xué)的相關(guān)教材,我也會在后面寫個初淺的帖子,分別解釋三大近似以及帶來的問題,進(jìn)而介紹一些更精確的修正方案。如果您覺得有用,請?;貋恚視粫r更新。這個帖子,放在了我的公眾號和B站(請搜 計算老司機(jī)),請關(guān)注。本帖由計算老司機(jī)原創(chuàng),轉(zhuǎn)載請聯(lián)系我,請勿用以商途。
感謝您的關(guān)注!