計算化學學習筆記(一)

2021-10-07 14:20:48 字數 1601 閱讀 5076

以前以為csdn只有計算機相關的博文,今天也在論壇上看到了一些量子化學的博文。最近也在學習量子化學,同時使用gaussian軟體進行實驗,想在這裡寫一些東西作為學習的記錄。

之前學習過使用**iew軟體用視覺化的方法得到分子結構輸入檔案,使用gaussian進行單點能的計算,這些都比較簡單的入門內容。

今日從另一本教參上學習了文字方式輸入結構的幾種方法,以及如何通過不同的傳參方法控制結構的自由度。如下所示,使用兩種傳參方式表示cfh3分子,兩種方式得到的分子初始結構是一致的,區別在於使用第一種傳參方法則固定了三個碳氫鍵鍵長使用同一引數r2,而是用第二種傳參方式則沒有進行限制。事實有基本的化學理解就會知道三個碳氫鍵鍵長必然相等,因此第一種方法在限制優化過程的同時在計算上有一定的簡化。

0 1

cf 1 r1

h 1 r2 2 a

h 1 r2 2 a 3 b

h 1 r2 2 a 3 -b

r1 = 1.38

r2 = 1.09

a = 110.6

b = 120.0

0 1

cf 1 r1

h 1 r2 2 a

h 1 r3 2 a 3 b

h 1 r4 2 a 3 -b

r1 = 1.38

r2 = 1.09

r3 = 1.09

r4 = 1.09

a = 110.6

b = 120.0

另外今天開始學習勢能面的基礎知識,在量子化學中,我們從分子中原子核與電子的空間座標出發,通過薛丁格方程可以得到分子體系的能量。從數學角度理解也即勢能是一組座標的多元函式,而該函式在高維空間中則形成乙個高維曲面,也即勢能面。

然而乙個分子中含有大量的電子,如果要根據所有粒子的座標建立勢能面,勢必會匯入大量的複雜度,因此在量子化學中有著born-oppenheimer近似,根據這一近似方法,分子勢能僅與原子核座標相關。如果乙個分子有n的原子,則體系有3n-6個內座標(相對座標),故勢能面是3n-6維的。

我們如果可以找到這一勢能面也就很容易找到勢能的極小值,極大值或者鞍點,這樣子也很容易得到化學反應中的反應路徑。在量子化學中大部分的計算都是依賴於勢能面掃瞄,比如幾何優化,過渡態搜尋,振動分析,構象搜尋等工作。

然而根據目前的數學理論基礎,我們無法得到勢能面的解析式,只能通過對大量樣本代入計算得到一些離散點來模擬勢能面。同時目前的算力基礎,我們很難甚至大多時候都無法建立完整維度的勢能面。假設乙個僅有5個原子的簡單分子,理論上有9個自由度,如果每乙個自由度取樣10次來模擬勢能面,我們也需要進行10^9次能量計算,這顯然是我們無法接受的。

目前對於這一問題一般考慮用on-the-fly的方式進行,也就是根據感興趣的結果來選擇性計算附近結構的能量。另一方面,大部分情況下我們根據化學直覺或者計算工作的目的出發,推測所有自由度中的部分自由度對於結果影響較大,那麼可以僅掃瞄勢能面在這些維度的變化。

求多元函式極小點的常用演算法有以下幾種,單純形法,最速下降法,共軛梯度法,牛頓法,準牛頓法。量子化學一般使用牛頓法和準牛頓法進行極值點的尋找。

在演算法學習過程中還是複習了一下多元函式和矩陣的基礎知識,另外還在嘗試使用python實現這一演算法,目前填坑中。

2023年6月28日寫於上海科技大學宿舍

SQL初學學習筆記(一)

sql初學 印象中只記得select from where,此次學習中記錄遇到的一些執行的實際問題 rownum 是否可以大於某值 oracle下 select prod name from products where rownum 5 實際有9列,但未報錯,提示0 rows selected s...

《笨辦法學》 學習筆記一

習題1 5 總結 1 使用terminal 建立乙個目錄 在terminal中 輸入mkdir mystuff 目錄名可隨意設定 使用terminal 進入這個目錄 繼續輸入cd mystuff。當然,若想進入其他的目錄,都可以用 cd 目錄名 使用terminal 檢視目錄中的檔案 在cd 進入目...

《凸優化》學習筆記(一)

凸優化在數學優化中有著重要且特殊的身份。數學優化是乙個廣泛的話題,理解凸優化之前,請先理解線性優化。在機器學習演算法中,已知的比如logisticregression,svm,都與數學優化有關,在數學中,不存在無約束優化問題。比較常見的構建損失函式方法,從最簡單的兩個向量的二階範數的平方 knn,k...