給def2以ma-方式加彌散函數的Gaussian格式的基組定義文件(含所有def2支持的元素)
給def2以ma-方式加彌散函數的Gaussian格式的基組定義文件(含所有def2支持的元素)
文/Sobereva@北京科音
First release: 2019-Aug-28 Last update: 2019-Oct-11
def2系列基組非常流行,在筆者的很多博文里都提到、用到,但遺憾的是沒有官方標配的帶彌散函數的版本。之前筆者寫過一篇文章《給ahlrichs的def2系列基組加彌散的方法》(http://www.shanxitv.org/340)介紹了幾種給def2加彌散函數的方法,其中一個是以ma-方式加彌散函數,諸如def2-TZVP以ma-方式加彌散后叫ma-TZVP。在Truhlar課題組的基組網站http://comp.chem.umn.edu/basissets/basis.cgi上直接提供了這些ma-基組的定義,但關鍵缺點是元素不全。原本def2系列是對于除了錒系以及最后一個周期外所有元素都有定義,但那個網站上提供的ma-TZVP.gbs基組文件里甚至連常用的碘都沒有,因此用的時候還得自己去基于def2的定義和ma-規則手寫,比較麻煩,初學者還容易搞錯。而且每當有人問怎么去手動改,如果對方沒基組常識,解釋起來可費勁了。
為了解決上述問題,筆者寫了個程序,直接基于BSE上的def2系列基組支持的所有元素的定義文件,自動批量按照ma-方式添加彌散函數。這些文件可以在這里下載:http://www.shanxitv.org/attach/509/file.zip。此文件包里比如ma-QZVPP.txt就是def2-QZVPP所有元素按ma-方式加上彌散函數的版本。里面還有個文件def2-ECP.txt,這是所有def2基組共用的贗勢文件,因為def2系列對第五周期開始的元素是贗勢基組。
基于這個文件包里的文件,用Gaussian使用ma-系列基組可省事了。只要把文件先放到某個目錄,要用的時候用@來include即可。
下面是一個Windows下計算的例子,用B3LYP-D3(BJ)/ma-TZVP計算水-氟代甲烷的單點。計算前先把ma-TZVP.txt放到C:\下。@代表把后面的文件計算Gaussian之前會被自動展開。
#p B3LYP/gen em=gd3BJ int=fine
[空行]
test
[空行]
0 1
O 2.21137200 -0.00419200 -0.00194900
H 2.78894100 -0.77058600 0.00034800
H 2.79813100 0.75514700 -0.00127500
C -0.65861500 0.01454700 0.00490000
H -0.29784800 -0.58761200 0.83720700
H -0.28960200 -0.38738100 -0.93713900
H -0.32683900 1.04530400 0.12361900
F -2.04578600 -0.01206800 -0.00406300
[空行]
@C:\ma-TZVP.txt
由于ma-TZVP.txt里所有元素前頭都有個負號,因此只有當前體系里存在的元素才會自動取.txt里的基組定義,而.txt里定義的其它元素不影響當前計算。
再看另一個例子,BP86計算順鉑,對所有元素用ma-SVP,對Pt還加了贗勢,因為def2系列對Pt是贗勢基組。計算前先把ma-SVP.txt和def2-ECP.txt放到C:\下。
#P BP86/genecp int=fine
[空行]
b3lyp/def2TZVP opted
[空行]
0 1
Pt 0.00000000 0.00000000 0.18195700
Cl 0.00000000 1.70827400 -1.36819100
Cl 0.00000000 -1.70827400 -1.36819100
N 0.00000000 1.59755500 1.56108400
H -0.82596600 1.64390200 2.14978600
H 0.00000000 2.40772900 0.93575300
H 0.82596600 1.64390200 2.14978600
N 0.00000000 -1.59755500 1.56108400
H -0.82596600 -1.64390200 2.14978600
H 0.00000000 -2.40772900 0.93575300
H 0.82596600 -1.64390200 2.14978600
[空行]
@C:\ma-SVP.txt
[空行]
@C:\def2-ECP.txt
上例中C:\ma-SVP.txt對體系涉及的所有元素都定義了基組,對Pt而言相當于贗勢基組。C:\def2-ECP.txt是def2系列支持的從第五周期開始的所有元素的贗勢定義,其中自然也包括對Pt的定義。此文件里也是各個元素前頭都有負號,因此定義的元素在當前體系中沒出現也不會報錯。
在Linux下也可以用引用的方式用,下面還是順鉑的例子。這里/N避免Linux下運行時自動把文件里的內容完整輸出一遍。兩個文件之間這回沒有了空行,因為如果有的話,會導致Pt的贗勢信息沒法被載入。
[同上...一直到坐標]
[空行]
@/sob/ma-SVP.txt/N
@/sob/def2-ECP.txt/N
[空行]
[空行]
當然了,自己手動把.txt文件里的涉及到的元素的基組、贗勢定義拷出來,按照常規的genecp的格式去定義基組和贗勢也可以正常使用這些ma-基組,但顯然不如靠@來引用基組/贗勢文件省事。如果在看上文時感到有不解之處,參看《詳解Gaussian中混合基組、自定義基組和贗勢基組的輸入》(http://www.shanxitv.org/60)。
文件包里還有個ma-TZVP(-f).txt,是對def2-TZVP(-f)以ma-方式加彌散函數的版本。def2-TZVP(-f)比def2-TZVP便宜得多,差異在于前者把后者的f極化函數去掉了(對鑭系元素筆者保留了f函數,因為f函數對于La系并非是極化函數,而g極化函數被去掉了)。ma-TZVP(-f)比6-311+G(2d,p)略大一丁點,由于def2系列基組很適合代替Pople系列基組,因此強烈鼓勵將之代替6-311+G(2d,p)使用。順帶一提,由于def2-TZVP(-f)比def-TZVP更大(比如對于碳,前者有兩層d極化而后者只有一層),因此ma-TZVP比起將def-TZVP用ma-方式加彌散函數的版本更貴一些。
最后,給出筆者構建上面那些ma-的基組定義的程序ma-diffuse:http://www.shanxitv.org/soft/ma-diffuse.rar。里面是Windows版可執行文件,Def2-SVP.gbs是原始的def2-SVP的定義文件,可以作為ma-diffuse的輸入文件。此程序運行時可以由用戶設定最小的s和p指數要除的因子,如果設成3,對應的就是以標準的ma-方式加彌散函數的情況。新產生的基組會輸出到當前目錄下的new.txt。
PS:筆者之前還有另一個給原有基組加彌散函數的工具,見《給基組以even-tempered方式增加彌散函數的工具adddiffuse》(http://www.shanxitv.org/347)。