• 使用Multiwfn+VMD快速繪制高質量分子軌道等值面圖(含視頻)

    注1:本文有完整的演示視頻,初學者嚴格照著操作!5分鐘內不可能學不會!https://www.bilibili.com/video/av34024335/ (別說字太小看不清楚,登錄后看1080p的,不可能看不清楚)
    注2:在本文的基礎上,通過修改材質和恰當使用Tachyon渲染器,可以得到效果遠勝于本文的軌道等值面圖,務必在看過本文后一看:《用VMD繪制藝術級軌道等值面圖的方法(含演示視頻)》(http://www.shanxitv.org/449


    使用Multiwfn+VMD快速繪制高質量分子軌道等值面圖

    文/Sobereva@北京科音

    First release: 2018-Oct-17  Last update: 2022-May-19


    1 前言

    數年之前,筆者寫過一篇文章《使用Multiwfn觀看分子軌道》(http://www.shanxitv.org/269),其中十分詳細介紹了怎么用Multiwfn自己的觀看軌道的界面看軌道等值面圖,以及如何繪制軌道的曲線圖和平面圖,也同時介紹了怎么把Multiwfn計算的軌道波函數的格點數據導出成cube文件,然后放到強大的VMD可視化程序里來獲得更好的顯示效果。那篇文章雖然對Multiwfn和VMD聯用講得非常清楚詳細,但一些接受能力差的人和比較懶的人可能還是不愿意嘗試用Multiwfn+VMD的組合去繪制軌道。本文的目的是介紹如何利用腳本,將Multiwfn+VMD聯用繪制軌道的過程變得極盡方便。這種繪制方法比起常用的GaussView繪制軌道有極大的優勢:(1)完全免費 (2)效果完爆GaussView (3)耗時遠遠低于GaussView(對大體系,本文的做法花的時間比用GaussView少兩個數量級甚至更多)。相信讀者花幾分鐘看過本文和演示視頻后,就再也不想用GaussView看軌道了。

    讀者請務必使用Multiwfn官網上的最新版本。Multiwfn可以在其主頁http://www.shanxitv.org/multiwfn免費下載,如果對Multiwfn不了解的話強烈建議閱讀《Multiwfn入門tips》(http://www.shanxitv.org/167)。VMD用的是1.9.3版,可以在http://www.ks.uiuc.edu/Research/vmd/免費下載。各種量子化學程序產生的.fch/fchk、.molden、.mwfn文件以及GAMESS-US或Firefly程序的輸出文件都可以作為輸入文件來用Multiwfn看軌道,簡單來說只要是能向Multiwfn提供基函數信息的文件都可以用,詳見《詳談Multiwfn支持的輸入文件類型、產生方法以及相互轉換》(http://www.shanxitv.org/379)。本文假定用戶用的是Windows系統,在Linux系統下也可以類似地按照本文的做法快速地用Multiwfn+VMD繪制軌道,舉一反三即可。


    2 準備工作

    首先把Multiwfn文件包的examples\scripts目錄下的showorb.bat和showorb.txt都拷到Multiwfn可執行文件所在目錄下。

    showorb.bat是Windows下的批處理文件。用戶要對它進行編輯,把里面的1.fch改成實際的輸入文件名(如果輸入文件就在當前目錄下,就寫文件名就行了,路徑不需要寫),并且把里面的VMD的路徑改成你機子里VMD的實際路徑。注意:如果VMD的路徑里面含有空格,必須路徑兩邊加雙引號,比如move /Y *.cub "D:\study\VMD 193"

    showorb.txt里面每一行都是對應在Multiwfn的界面里要敲入的命令。編輯showorb.txt文件內容,把其中第三行設成你要繪制的軌道序號范圍。比如你要考察10,20,21,22,23,28,29,30,就寫成10,20-23,28-30即可。

    把Multiwfn文件包的examples\scripts目錄下的VMD繪圖腳本showorb.vmd拷到VMD目錄下,然后用文本編輯器編輯VMD目錄下的vmd.rc,在最后插入此命令:source showorb.vmd。這樣,VMD啟動時就會自動執行這個繪圖腳本,它定義了三個命令,可以在VMD的文本窗口里輸入:
    orb:用來載入和顯示軌道。比如你輸入orb 33,就會載入VMD目錄下的orb000033.cub,并把它的繪制方式修改為等值面圖的形式。之后如果比如再輸入orb 34,則33號軌道就會被撤銷,而將orb00034.cub以等值面形式顯示。此命令顯示出的軌道等值面數值默認為0.05,可以自行編輯showorb.vmd來修改默認值。
    orbiso:用來修改等值面數值,比如用orb命令顯示出了軌道后,再輸入orbiso 0.02,就會把軌道等值面數值修改為0.02。
    orbclean:用來把VMD目錄下所有orb開頭的.cub文件全都刪掉,免得VMD目錄下文件積得多了之后太亂,如果你不嫌亂就不用運行這個。

    做完了以上準備工作后,直接雙擊showorb.bat,這個腳本就會調用Multiwfn去對指定的輸入文件計算要考察的各個軌道的格點數據,并且導出為cube文件。比如第20號軌道導出后就叫orb000020.cub。所有算出來的cube文件會被這個腳本自動挪到VMD目錄下,只要你看到VMD目錄下出現了相應cube文件就算運行成功了。然后啟動VMD,在文本窗口輸入 orb [序號] 命令就可以顯示相應序號的軌道了。


    3 實例

    這里就用Multiwfn自帶的一個NH2-biphenyl-NO2體系作為例子。把examples\excit目錄下的D-pi-A.fchk拷到Multiwfn可執行文件所在目錄,然后把它改名為1.fch(此文件名和showorb.bat里默認的輸入文件名正好對應)。此體系的HOMO是56,假定我們要看它的HOMO-2到LUMO+2,即54到59號軌道,就修改showorb.txt,把其中第三行內容改為54-59。之后雙擊showorb.bat,算完后啟動VMD,輸入orb 56來看HOMO,立刻就看到下圖,其中軌道波函數的正、負相位部分分別以紅、藍色表示。

    如果比如還想看LUMO,就再輸入orb 57即可,立刻就會切換為LUMO軌道。

    如果想把等值面數值從默認的0.05改成更小的0.02,就輸入orbiso 0.02。

    如果看完軌道后,想把VMD目錄下的cub文件都清掉省得占地方,輸入orbclean即可。


    4 其它

    本文介紹了如何利用腳本,極其便利地將Multiwfn與VMD相結合,只用很少的時間就獲得理想的軌道繪制效果,可謂繪制分子軌道最完美的解決方案。如果你沒看過《使用Multiwfn觀看分子軌道》(http://www.shanxitv.org/269)的話強烈建議一看,以了解其中細節,便于根據需要調整作圖效果。

    關于選擇beta軌道:對于非限制性開殼層波函數,在Multiwfn中beta軌道序號是排在alpha軌道之后的,如果當前有x個基函數,則1號beta軌道就是x+1,這點在《使用Multiwfn觀看分子軌道》里已經明確說了。因此修改showorb.txt里軌道序號范圍的時候也得對應地去設。懶得自己口算beta編號的話,可以在Multiwfn主功能0的界面里輸入比如-30來查看第30號beta軌道對應的Multiwfn中的序號,也可以用通過界面左上角Orbital info.里的選項把所有軌道的基本信息都輸出到文本窗口里,看特定編號的beta軌道在所有軌道中是第幾號。

    VMD的一個缺點是沒有自帶的顯示原子序號的功能(至少是對目前撰文時最新的1.9.3版而言),不過可以用我寫的腳本來顯示,見《在VMD中顯示原子序號的方法》(http://www.shanxitv.org/197)。雖然顯示效果不算很理想,但自己ps一下也沒什么難的。

    如果想獲得更好的效果,強烈建議用Tachyon渲染器渲染,對某些材質顯示的效果比直接在VMD圖形窗口里看到的會更好,而且有抗鋸齒的效果。Tachyon的使用方法在《用Multiwfn+VMD做RDG分析時的一些要點和常見問題》(http://www.shanxitv.org/291)里有詳細說明。本文的圖就是Tachyon渲染出來的。

    默認的等值面的顯示材質是Glossy,如果想改成透明的,可以手動在VMD圖形界面里改(進入Graphics - Representation,修改Material),推薦用EdgyGlass或Translucent。也可以修改showorb.vmd,把里面的Glossy替換為相應材質名即可。使用EdgyGlass或Translucent材質時,用不用Tachyon渲染器渲染效果相差不少。

    軌道的正、負相位的顏色可以自己改。默認情況下紅色是正相位,藍色是負相位,想改的話到VMD的Graphics - Representation界面里改Color ID右邊的值即可。也可以自行編輯showorb.vmd,把里面的ColorID后面的值改成你想用的顏色的ID號。

    本文的腳本默認用中等質量格點進行計算,總的點數約512000個。對于較大體系,比如100原子以上體系,這樣的點數往往就有點偏少了,會導致等值面圖可能有棱角。此時建議用高質量格點,做法就是把showorb.txt里第四行的2改為3,當然耗時也會增加。另外,對于觀看里德堡軌道(相關信息見《圖解電子激發的分類》http://www.shanxitv.org/284),Multiwfn計算格點數據的默認的延展距離不夠大,可能造成以比較小的軌道等值面數值顯示時軌道等值面被截斷,因此應該在showorb.txt的第三行和第四行之間插入
    -10
    12
    這樣延展距離就被加大到12 Bohr了,一般足夠了。

    如果之前用showorb.bat計算了比如20-30號軌道,然后又想考察比如35-40號軌道,就把showorb.txt里的軌道序號改成35-40,運行一遍,這樣VMD目錄下20-30和35-40軌道的cube文件就都有了,就都可以用orb命令看了。

    PS:如果以本文方式繪制了分子軌道,請記得引用Multiwfn程序一啟動時就顯示的Multiwfn程序原文


    5 FAQ

    如果在VMD文本窗口里輸入比如orb 23時提示Could not read file orb000023.cub,應當檢查VMD目錄下是否確實有orb000023.cub。如果沒有,有以下可能:
    (1)showorb.bat里VMD路徑沒寫對,或者路徑里有空格但是兩邊忘了加雙引號
    (2)給Multiwfn用的輸入文件格式不對,或者文件存在問題
    (3)showorb.bat里的輸入文件路徑沒寫對
    (4)showorb.txt里被計算的軌道序號范圍沒包括被考察的那個軌道
    (5)VMD裝到了C盤的默認目錄下,可能由于操作系統權限設置、安全防護程序等原因導致cub文件沒法自動被挪到VMD目錄下
    (6)用的VMD版本有bug。用VMD 1.9.3版100%沒問題
    如果不理解本文用到的批處理文件是如何工作的,看《詳談Multiwfn的命令行方式運行和批量運行的方法》(http://www.shanxitv.org/612)中的相關說明。

    如果在VMD文本窗口里輸入比如orb 23時提示invalid command name "orb",有以下幾種可能:
    (1)vmd.rc文件里沒寫入source showorb.vmd
    (2)vmd.rc文件里雖然寫入了source showorb.vmd,但之后沒保存文件,或保存完了沒重啟VMD
    (3)showorb.vmd文件沒放到VMD目錄下,導致VMD啟動時沒法自動運行此腳本

    久久精品国产99久久香蕉