• 產生Gaussian的IRC和SCAN任務每個點的波函數文件的工具:IRCsplit和SCANsplit

    產生Gaussian的IRC和SCAN任務每個點的波函數文件的工具:IRCsplit和SCANsplit

    文/Sobereva @北京科音
    First release: 2013-Sep-9   Last update: 2019-Mar-21


    將Gaussian產生的IRC路徑或SCAN任務(特指剛性掃描,后同)當中每個點的波函數文件導出,從而通過Multiwfn等程序進行分析,對于研究反應過程中電子結構的變化是十分有益的。以前寫過一個帖子介紹怎么實現這一點,見《自寫Link生成Gaussian的IRC任務中每個點的波函數文件》(http://www.shanxitv.org/85),并介紹了應用實例,見《制作動畫分析電子結構特征》(http://www.shanxitv.org/86)。之前介紹的通過非標準路徑+自寫link的方法生成每個點的wfn文件雖然可以避免在每個點的結構下重新做一遍單點計算,但是實現過程對于初學者來說過于復雜,得自行編譯Gaussian。為了簡化這個過程,這里提供筆者開發的IRCsplit和SCANsplit程序,可以分別將Gaussian的IRC和SCAN任務的每個點的坐標提取出來生成一批新的單點任務文件,全都執行后就有了IRC上所有點的.wfn文件或.chk文件。

    本文的一個應用例子見《通過鍵級曲線和ELF/LOL/RDG等值面動畫研究化學反應過程》(http://www.shanxitv.org/200)。


    1 處理IRC任務

    先介紹怎么處理IRC任務。IRCsplit程序的下載地址為http://www.shanxitv.org/soft/IRCsplit_1.0.3.rar

    壓縮包內IRCsplit.exe是Windows版可執行文件,IRCsplit是Linux版可執行文件。examples目錄下是例子。script里是Windows下和Linux下用于Gaussian任務批量執行和chk->fch批量轉換的小腳本。

    下面就用examples下的SiH2+H2反應的IRC任務文件為例來說明用法。

    examples\SiH2+H2.out是個普通的IRC任務的輸出文件。Route section部分為
    # irc=(maxpoints=20,calcfc,maxcyc=50,stepsize=10) rhf/3-21g
    此任務中前后兩個方向實際各走了20個點。(注意,如果maxpoints設得太大,由于可能走到了極小點,實際前后走的IRC點數都可能小于maxpoints。另外注意不要用geom=check關鍵詞,否則輸出信息和平時不符而無法被IRCsplit處理)

    用戶必須自己創建一個與這個IRC任務對應的普通單點文件,此文件將被作為模板來由IRCsplit生成新的輸入文件。此文件中%chk不要寫,route section里面只定義理論方法和基組而不寫別的,但可以加上幫助收斂的關鍵詞如vshift。里面的坐標就是過渡態結構的坐標,應當以笛卡爾坐標方式書寫。末尾要空兩行。examples\SiH2+H2_SP.gjf就是與SiH2+H2.out對應的單點文件例子,內容如下。
    # rhf/3-21g

    IRC test:   SIH2+H2 OPTM. AT 3-21G LEVEL (STEP=0.1,POINT NUMBER 1-30)

    0 1
     Si                 0.00000000    0.00000000    0.00000000
     H                  0.78338953    1.23552312   -0.25085843
     H                  0.78338953   -1.23552312   -0.25085843
     H                 -0.54807474    0.00000000    1.44193846
     H                  0.54807474    0.00000000    1.59366154
    [空行]
    [空行]


    啟動IRCsplit,然后依次輸入
    examples\SiH2+H2.out
    examples\SiH2+H2_SP.gjf
    3    //如果輸入1,則生成的Gaussian輸入文件只能用來產生.wfn,輸入2則只能產生.chk,這里輸入3可以讓.wfn和.chk都產生
    C:\IRC\Watamote    //定義輸出的.wfn和.chk文件的路徑和名稱
    (此時屏幕上顯示出當前IRC任務文件里面向前和向后的點分別有多少。)
    20,20    //IRC前后方向的點都提取20個,加上TS結構,總共將提取41個結構。假設寫的是8,13,則TS以及離它最近的正向8個點和最近的逆向13個點將被提取。當然,提取的點不能超過實際數目
    最后按回車退出。

    程序已經在examples目錄下生成了41個Gaussian單點任務的輸入文件,即SiH2+H2_SP0001.gjf、SiH2+H2_SP0002.gjf、SiH2+H2_SP0003.gjf...建議自行隨便打開一個看看內容對不對。編號從0001到0041對應于從IRC的始端經過TS到達末端的過程。

    最后,將這些.gjf文件隨便拷貝到某文件夾里,然后用Gaussian批量執行它們即可。可以通過如下方法實現:
    (1)如果是Windows系統,把script目錄下的runall.bat拷到那個目錄下,然后雙擊之,就會調用g09來執行此目錄下所有.gjf文件。然后在就生成了C:\IRC\Watamote0001.wfn、C:\IRC\Watamote0002.wfn...以及C:\IRC\Watamote0001.chk、C:\IRC\Watamote0002.chk...如果想把所有這些.chk文件轉換為.fch,就把script目錄下的chk2fch.bat也拷到這個目錄下并雙擊運行。
    注意:如果你還沒有對Gaussian運行環境進行配置,應當進入 系統-高級系統設置-環境變量,把Gaussian的目錄添加進用戶的PATH環境變量,并新建GAUSS_EXEDIR環境變量,內容也定義為Gaussian的目錄(如D:\study\g09w)。否則將無法通過命令行調用Gaussian和formchk。
    (2)如果是Linux系統,把script下的runall.sh和chk2fch.sh拷到相應目錄下,然后進入此目錄下運行./runall.sh和./chk2fch.sh就可以調用Gaussian運行當前目錄下所有.gjf文件并且調用formchk將.chk都轉換為.fch了。

    注意如果用了rcfc關鍵詞,由于過渡態結構的信息不出現在IRC任務的輸出中,因此IRCsplit產生的對應于過渡態結構的.gjf文件將會是空的。請自行處理。

     

    2 處理SCAN任務

    SCANsplit的下載地址為http://www.shanxitv.org/soft/SCANsplit_1.0.rar

    SCANsplit的使用方法和IRCsplit幾乎如出一轍,區別僅在于處理的是G09的SCAN任務(注意只支持剛性掃描,不支持柔性掃描)而非IRC任務,因此不再詳述。

    操作例子如下,啟動后輸入
    examples\H2O2.out   //SCAN任務輸出文件
    examples\H2O2_SP.gjf   //與此體系對應的普通單點文件,將被作為模板
    2   //假設只生成chk文件
    C:\SCAN\ltwd    //chk或wfn文件的輸出路徑
    按回車退出。
    此時Gaussian輸入文件H2O2_SP0001.gjf,H2O2_SP0002.gjf...就在examples目錄下生成了。按照前述方法批量執行即可。

    久久精品国产99久久香蕉