• Multiwfn FAQ

    Multiwfn FAQ

    文/Sobereva@北京科音 

    First release: 2018-Dec-24   Last update:  2023-Apr-25


    波函數分析程序Multiwfn(http://www.shanxitv.org/multiwfn)如今已十分流行,本文針對用戶常問的問題進行統一解答,也推薦所有Multiwfn用戶完整閱讀此文!此文會經常更新。本文分為四部分:(1)常識性問題 (2)安裝、配置、運行問題 (3)一般使用問題 (4)和圖像顯示、繪圖有關的問題。


    1 常識性問題

    Q1:Multiwfn是干什么的?有什么功能?
    A:量子化學程序計算之后會產生電子波函數。Multiwfn屬于后處理程序,主要功能是對波函數進行分析,從而獲得重要、豐富的對研究化學問題十分有益的信息,諸如成鍵強度和本質、電荷分布和電子轉移的細節、分子間和分子內弱相互作用特征、電子的離域性和芳香性、電子激發的特征、體系對外場的響應、反應的優先位點和活性、分子的各種性質等等。Multiwfn也提供很多其它功能對于量子化學研究起到重要的實際幫助,例如繪制各類光譜等。請仔細閱讀《Multiwfn波函數分析程序的意義、功能與用途》(http://www.shanxitv.org/184),此文對Multiwfn有較全面的介紹。也非常建議看《Multiwfn入門tips》(http://www.shanxitv.org/167)里面給出的海量Multiwfn相關博文的列表,從文章標題就能大致看出Multiwfn的用途。在筆者的18碳環系列研究中綜合運用了大量Multiwfn的功能,是很好的實例,充分展現了Multiwfn的應用價值,見http://www.shanxitv.org/carbon_ring.html

    Q2:Multiwfn怎么引用?
    A:使用Multiwfn最起碼要引用Multiwfn程序的原文,這在Multiwfn程序剛啟動的時候屏幕上就赫然顯示了。如果甚至連這篇文章都不肯正確引用,文章作者會被納入黑名單并禁止在未來使用。使用Multiwfn的不同功能、做不同分析,還另有不同的文章應當同時引用,參見Multiwfn可執行文件包中的How to cite Multiwfn.pdf文檔的說明。筆者強烈希望用戶都能按照此文檔的說明以最恰當的方式引用Multiwfn。Multiwfn不僅不收費,而且其開發還不拿納稅人一分錢,恰當引用Multiwfn及筆者的相關文章是對Multiwfn開發的最好的鼓勵與支持。

    順帶一提,Multiwfn中里有很多獨家功能目前并未發表成為論文形式。在你的文中用到這些功能的話,除了要引用Multiwfn原文外,還應當引用Multiwfn手冊里介紹相應功能的章節,格式為比如:
    Tian Lu, Section [章節號] of Multiwfn manual version [實際版本] (accessed 日月年) available at http://www.shanxitv.org/multiwfn
    這里日月年是你下載Multiwfn手冊的日期。具體格式可以按照期刊和編輯的要求修改,但應當能體現出如上信息。

    Q3:求Multiwfn程序!求Multiwfn手冊!
    A:求人不如求己。去官網http://www.shanxitv.org/multiwfn的Download頁面自行下載,不要錢,不需要注冊。忘了官網地址時用Google搜Multiwfn,第一條就是(絕對別用百毒之流搜)。一般用戶只需要下文件名末尾是bin的包,里面是可執行程序。manual這個詞是手冊的意思。

    Q4:Multiwfn怎么學?
    A:Multiwfn的學習資源異常豐富,極少有計算化學程序有這么多、這么深入淺出的相關學習資源,也極少有程序手冊寫得像Multiwfn這般詳細、貼心、易懂。而且Multiwfn本身也及其易用,沒什么門檻。所以不要說什么“不會用Multiwfn”,不會用的前提一定是根本沒有拿出哪怕幾分鐘時間去試圖找相關的資料。

    自學Multiwfn極其容易。首先務必讀《Multiwfn入門tips》(http://www.shanxitv.org/167)和《Multiwfn波函數分析程序的意義、功能與用途》(http://www.shanxitv.org/184)以及本文,以了解Multiwfn相關的基本知識。然后針對自己要做的具體分析,在《Multiwfn入門tips》中的Multiwfn相關博文匯總里看有沒有和自己做的分析直接對應的博文,或者看Multiwfn手冊第四章提供的相應例子。Multiwfn手冊第四章提供了上百個例子,所有Multiwfn比較常用的功能在里面都有示例。Multiwfn的所有功能的原理和程序實現在手冊第三章相應章節也都有非常詳細的介紹。要注意Multiwfn的功能極多,用法極其靈活,千變萬化,一定要在博文和手冊例子基礎上充分舉一反三。為了幫助一些理解能力差或者極度不情愿看文字學習的用戶,筆者針對部分主題還專門錄了一些簡短的Multiwfn使用演示視頻,匯總見http://www.shanxitv.org/video.html。此外,強烈建議平時多去Multiwfn論壇看看,Multiwfn任何有關的新資源都會在那里發布,通過閱覽其它用戶的帖子也可以增進理論和程序使用水平。

    有條件的話,非常建議參加筆者講授的北京科音自然科學研究中心每年舉辦的“波函數分析與Multiwfn程序培訓班”。波函數分析的理論、應用以及Multiwfn的詳細使用都會非常全面、系統地介紹,可以一次性徹底學通。培訓是現場5天,視頻1天,精心制作的幻燈片總量多達2400多頁,海量知識可以學得一本滿足!內容介紹和往屆資料購買方式見http://www.keinsci.com/workshop/WFN_content.html,往屆回顧見http://bbs.keinsci.com/forum.php?mod=forumdisplay&fid=43&filter=typeid&typeid=247,未來的培訓時間安排見http://www.keinsci.com的首頁預告欄。

    Q5:有問題怎么求助?
    A:最佳的求助方式是在Multiwfn論壇發帖。在Multiwfn中文論壇http://bbs.keinsci.com/wfn發帖也行,在Multiwfn英文論壇http://www.shanxitv.org/wfnbbs發帖也行,一般筆者會在一天內回復。如果你周圍有外國Multiwfn用戶,在他們遇到問題時,希望你能建議他們到Multiwfn英文論壇提問。如果你的問題實在很私密,迫不得已實在沒法發到論壇上,也可以給Multiwfn開發者發郵件,郵件地址在Multiwfn啟動時就顯示了。不建議在任何其它地方咨詢Multiwfn的問題,否則基本不可能獲得Multiwfn開發者的回復。
    求助的時候注意盡可能把情況交代清楚、詳細。問的問題表述含糊不清、沒有提供對解決問題有效的信息的話,只會耽誤獲得有效解答的時間。

    Q6:有沒有使用Multiwfn做xxx分析的博文?以前看過xxx博文,找不到鏈接了怎么辦?
    A:去《Multiwfn入門tips》(http://www.shanxitv.org/167)給出的Multiwfn相關博文列表里找。在筆者的博客的索引頁面http://www.shanxitv.org/list.html里也可以直接通過相應詞語試圖搜索有無相關博文。
    并不是Multiwfn的各個功能筆者都寫過相應的博文,博文絕對代替不了手冊,二者目的不同。一些不是很值得專門寫博文的內容筆者不會去寫博文。沒有找到相關博文的時候必須看手冊,手冊里絕對有每個功能的非常詳細的介紹,大部分功能也都提供了例子。

    Q7:有沒有Multiwfn中文手冊?
    A:Multiwfn是面向全世界用戶的程序,自然手冊是英文的,認真閱讀《Multiwfn入門tips》(http://www.shanxitv.org/167)后就不會再問這個問題了。Multiwfn手冊內容極多(到Multiwfn 3.8版的時候都超過1000頁了),更新非常頻繁,開發者沒精力同時維護英文和中文兩個版本手冊,更何況Multiwfn手冊里根本沒有各種復雜的形容詞、副詞、句式,比高考閱讀理解題簡單太多了。

    Q8:有沒有使用Multiwfn做xxx分析的文章可以給我作為例子?
    A:一個簡單方法是用Google學術搜索搜,比如想找用Multiwfn繪制DOS的文章,可以試圖搜“Multiwfn DOS”(盡管這樣并不可能搜出來所有用Multiwfn繪制DOS的文章)。另一個方法是去Multiwfn官網cited by頁面下載以往使用了Multiwfn發表的文章的pdf文件合集,然后用acrobat的對某個文件夾里的所有pdf文檔進行全文搜索的功能進行搜索。

    Q9:Multiwfn能支持什么程序?
    A:Multiwfn的絕大部分分析功能都能支持幾乎所有知名的基于Gaussian型基函數的量子化學程序,如Gaussian、ORCA、Molpro、NWChem、GAMESS-US、Dalton、PSI4、xtb、Q-Chem等等。有極少數分析只能支持Gaussian等特定程序。第一性原理程序CP2K也是基于Gaussian型基函數描述波函數的,Multiwfn支持CP2K程序產生的.molden文件對周期性體系做波函數分析,但只有少部分功能可以用,做法和詳情參見Multiwfn手冊2.9.2節。

    Multiwfn目前沒法對任何純粹基于平面波的第一性原理程序比如Quantum ESPRESSO、CASTEP、VASP、Abinit等等產生的波函數進行分析。但有很多只需要幾何坐標的分析,是可以基于這些程序優化出的結構來分析的,比如IGM分析、Hirshfeld surface分析、promolecular近似下的RDG分析、EEM電荷計算、原子配位數計算、繪制表面距離投影圖等等。

    Q9-2:Multiwfn能對周期性體系做波函數分析么?
    如果你要做周期性體系的波函數分析,有兩種做法:
    (1)將晶體(體相或者晶體表面+吸附物)挖出個團簇,然后用量子化學程序當孤立體系計算得到波函數文件并用Multiwfn照常分析。注意此時不要討論邊緣部分的電子結構,因為由于邊界效應,靠近簇的邊緣的電子結構肯定是不真實的。分子晶體挖團簇的做法可參考《基于背景電荷計算分子在晶體環境中的吸收光譜》(http://www.shanxitv.org/579),原子晶體挖團簇可參考《使用量子化學程序基于簇模型計算金屬表面吸附問題》(http://www.shanxitv.org/540),更多的需要注意的細節、對邊界的處理等問題參見Multiwfn手冊2.9.1節。
    (2)用CP2K做周期性計算并導出.molden文件,然后把晶胞參數信息寫入.molden文件,然后就可以用Multiwfn觀看軌道、做拓撲分析、計算各種實空間函數格點數據、繪制各種平面圖等等,例如《使用Multiwfn結合CP2K通過NCI和IGM方法圖形化考察固體和表面的弱相互作用》(http://www.shanxitv.org/588)。但Multiwfn支持的海量功能中只有相對有限的功能能完美地考慮周期性,詳情和細節參見Multiwfn手冊2.9.2節。對于那些尚不明確聲明支持周期性的功能,只有對距離盒子邊緣足夠遠的區域做的分析的結果才是合理的。如果你想這么將就著分析,用CP2K計算時必須用較大的晶胞,使得被研究的區域與盒子邊緣之間的緩沖區足夠大,建議緩沖區不少于6埃(如果做個結果隨緩沖區增大的收斂性測試更放心)。

    Q10:Multiwfn支持Dmol3、ADF程序么?
    A:Multiwfn永遠、絕對不會支持又賊貴又嚴重非主流的Dmol3和ADF!!!!!!!!!Multiwfn只支持高斯型基函數,這是所有主流量化程序用的基函數形式,而Dmol3和ADF分別利用數值型基組和STO型基組,注定不可能被Multiwfn支持,也極少有其它第三方波函數分析程序能支持這倆程序。

    Q11:用Multiwfn做xxx分析應該用什么文件作為輸入文件?怎樣產生?
    A:這點在《詳談Multiwfn支持的輸入文件類型、產生方法以及相互轉換》(http://www.shanxitv.org/379)里解釋得非常清楚。

    Q12:目前的Multiwfn相比之前版本有哪些更新?
    A:看Multiwfn官網Update history頁面。從1.0版到目前最新版本的所有更新都列在那了。

    Q13:Multiwfn相關博文里提及的一些選項怎么在我用的Multiwfn里沒有?怎么結果和博文里的不同?怎么博文中提到的一些手冊章節在手冊里沒有?
    A:是因為你用的Multiwfn程序版本太老。在博文里通常會說明此博文用的Multiwfn版本,如果你用的版本是更老的,那很可能沒有這個功能,或者結果、輸出和博文里的不符。比如博文里說的是“本文用的是2018-Nov-20更新的3.6(dev)版”,那你如果用的是2018-Nov-20之前下載的3.6(dev)版就很可能情況和博文不符。Multiwfn程序剛啟動的時候屏幕上會明確提示當前的版本是幾幾年幾月幾號更新的版本。Multiwfn手冊也更新極度頻繁,經常添加新章節,顯然較新的博文提及的手冊章節在老版本手冊里可能沒有,下載官網上最新的手冊就完了。

    Q13-2:我的Multiwfn是最新版的么?
    A:只要不是1天內下載的就絕對不要信誓旦旦地認為自己用的是最新的。Multiwfn程序的更新極度頻繁,官網上Download頁面里文件名帶著(dev)后綴的版本是開發版(development version),開發版經常一、兩天就更新一次,最頻繁時甚至可能一天內就更新兩、三次。Multiwfn啟動時明確在屏幕上顯示了更新日期,去和Multiwfn官網上Download頁面里的最新版上標注的last update日期對照便知是不是最新版。懶得對照就立刻去官網上下載一次覆蓋原先的。我在回復Multiwfn的問題的時候始終假定對方用的是最新版,遇到不管什么Multiwfn的問題一律先嘗試最新版,若仍有問題再問我。

    Q13-3:為什么我明明是剛下載的Multiwfn,程序啟動時顯示的更新日期卻是老版本的?
    A:這是網絡原因,不止一個用戶曾反饋給我這種問題。我估計是有的網絡服務運營商把Multiwfn老本程序緩存到他們服務器上了,導致用戶下載的時候下載的是緩存的老版本。有三種解決辦法:(1)用手機流量下載 (2)找個用其它網絡的人下載然后傳給你 (3)通過Multiwfn網站的Download頁面中的MEGA網盤鏈接下載(如果你在大陸,需要特殊方式,你懂的)。還有一種可能是之前你下載的時候有的瀏覽器把老版本程序緩存到硬盤上了,應清空臨時文件目錄再試。


    Q14:Multiwfn怎么念?
    A:見《Multiwfn程序名讀法的統一說明》(http://bbs.keinsci.com/thread-11011-1-1.html)。

    Q15-2:怎么避免錯過Multiwfn更新?要是Multiwfn能自動更新就好啦!
    A:強烈建議用戶按照此帖的方式自動接收Multiwfn的更新提醒:《推薦通過Visualping自動接收Multiwfn的更新提醒》(http://bbs.keinsci.com/thread-12556-1-1.html)。另外,有幾位Multiwfn用戶各自開發了方便的Multiwfn更新工具,懶得每次手動去Multiwfn官網下載新版本程序包的用戶可以考慮使用,見:
    Multiwfn快樂更新小助手:http://bbs.keinsci.com/thread-20052-1-1.html
    mum: Multiwfn update manager:http://bbs.keinsci.com/thread-20070-1-1.html
    Updater for both Linux and Windows version of Multiwfn:http://bbs.keinsci.com/thread-20109-1-1.html
    A Python script for Multiwfn updates:http://bbs.keinsci.com/thread-20115-1-1.html
    Linux下利用cron實現對Multiwfn的自動定時更新:http://bbs.keinsci.com/thread-36083-1-1.html

    Q15-3:運行Multiwfn需要什么計算機配置?需要買個較好的機子跑Multiwfn么?
    A:沒法一概而論。Multiwfn里有的分析耗時極低,對大體系一眨眼也能算完,比如范德華勢的計算(http://www.shanxitv.org/551)。而有的分析耗時較高,比如對較大周期性體系做IRI分析圖形化考察化學鍵和弱相互作用(http://www.shanxitv.org/598)。只能說對于大多數分析,有個普通的個人電腦就夠了。但如果你要做那些計算量很大的分析,盡量用CPU給力、核多的服務器,耗時會比用個人計算機低得多得多。Multiwfn對于高耗時的計算都做了充分的并行化。


    2 安裝、配置、運行問題

    Q15:Multiwfn怎么安裝?
    A:Windows版不用安裝直接用。Linux下的安裝方法在手冊2.1.2節寫明了,筆者還專門錄了一段安裝演示視頻:《在Linux系統下安裝Multiwfn 3.6的演示(CentOS 7.6)》(https://www.bilibili.com/video/av41402462/)。

    Q16:我用的Windows,雙擊Multiwfn.exe啟動后是一個黑乎乎的窗口...我,我,我該怎么做?是不是中毒了?是不是進入黑客模式了?要在里面編程嗎?
    A:莫慌!這叫命令行(command-line)窗口。Multiwfn不是純圖形界面程序(好處是又方便開發,又便于寫腳本批處理,又不是必須依賴于圖形環境才能使用),只有需要圖形化展現數據的時候才會提供圖形窗口。使用Multiwfn時總要睜大眼睛仔細看屏幕上每一個提示,接下來該干什么、有什么選項可以選、該以什么格式輸入都提示得超級清楚,連輸入例子都給了(e.g.后面的內容),無比貼心!絕對不要把屏幕上的英文當做人類無法閱讀的亂碼,那些提示信息的用詞和語法比高考英語都容易,有個別不懂的用電子詞典翻譯即可,Multiwfn不可能做成中文界面的程序。Multiwfn手冊和博文里的例子把每一步要敲的命令和每一步操作的含義都寫得超級詳細,不會操作時起碼先照著例子敲一遍。

    Q16b:怎么退出Multiwfn?
    A:按Ctrl+C可隨時強制退出,也可以直接按窗口右上角的叉子按鈕把窗口直接關了。如果處在主菜單,也可以輸入q來優雅地退出。

    Q17:計算時并行核數和內存怎么設?設多少合適?
    A:Multiwfn計算時并行的線程數通過settings.ini里的nthreads來設,建議等于當前機子CPU的物理核心數,這樣速度最快。不懂啥叫物理核心和邏輯核心的話看《正確看待超線程(HT)技術對計算化學運算的影響》(http://www.shanxitv.org/392)。如果你通過命令行方式執行Multiwfn,也可以通過-nt參數設置并行核數,此文說了:《詳談Multiwfn的命令行方式運行和批量運行的方法》(http://www.shanxitv.org/612)。

    Multiwfn沒有一般意義上的內存使用上限設置,當前任務該需要多少內存就會試圖用多少內存,如果機子內存不足(物理內存+虛擬內存的總和)就會崩潰;你若用的是32bit Windows版,Multiwfn至多只能用2GB內存,需要的內存量超過這個值時也必然崩潰。

    在并行計算時需要考慮所謂的OpenMP stacksize內存設置。Multiwfn通過OpenMP方式進行并行計算,有些變量和數組是每個線程私有的,私有部分最多能利用多少內存取決于settings.ini里的ompstacksize設置,如果這個設得不夠大的話也會崩潰。除非遇到OpenMP stacksize內存不足而報錯,否則不需要改ompstacksize,改大了也不會令計算速度有任何提升。ompstacksize與nthreads的乘積絕對不能超過剩余物理內存量,內存實在不夠的話可以索性將nthreads降低以令ompstacksize能夠設大。

    Q18:程序啟動時出現找不到settings.ini的警告怎么辦?
    A:Multiwfn每次啟動時會試圖載入settings.ini里的設置。Multiwfn首先在當前目錄下尋找settings.ini,如果找不到,則會在Multiwfnpath環境變量設定的目錄下找settings.ini,如果還找不到,則會使用默認設定(和settings.ini里的默認設置相同)。
    在Linux下啟動Multiwfn時通常不是在Multiwfn目錄下啟動的,因此對于使用bash shell的用戶,應當在用戶主目錄下的.bashrc中加入比如export Multiwfnpath=/sob/Multiwfn_3.6_bin_Linux,之后重新進入終端即生效。

    Q19:Linux下啟動Multiwfn時提示version `GLIBC_x.xx' not found報錯
    A:這說明你的操作系統太老,系統里的GLIBC庫的版本低于x.xx。這需要你裝更新版本的Linux系統。網上也有直接升級操作系統的GLIBC庫的方法可以嘗試,但對于不很熟悉Linux的人有一定風險。你也可以自行在當前的機子上編譯Multiwfn源代碼,這樣編譯出來的肯定能在你機子上用。

    Q20:怎么進入某些功能時提示Can't open X Windows display而自動退出?
    A:這說明Multiwfn此時試圖顯示圖形,但你當前的環境是純文本環境,因此沒法顯示出圖形所致。如果你是通過一般方式的ssh登錄遠程服務器,或者你的Linux機子是在比如init 3模式下,那么Multiwfn所有涉及顯示圖形的功能都用不了。

    Q21:Linux下運行出現Segmentation fault報錯怎么解決?
    A:有以下可能原因:
    (1)沒有嚴格按照手冊2.1.2節的方式配置Linux。Ubuntu、Linux Mint等Linux系統的用戶漏了設置ulimit -s unlimited這一步幾乎一定會導致這種報錯。
    (2)輸入文件或者操作有問題
    (3)Multiwfn與你的操作系統有兼容性問題,或者是Multiwfn的bug。首先嘗試Multiwfn最新版本,還不行的話嘗試把nthreads設為1,即不用并行方式運行看能否解決。還不行的話嘗試用其它Linux發行版運行試試,Multiwfn的Linux版測試都是在CentOS上進行的,對Redhat/CentOS支持是最理想的。也可以改用Windows版試試,或者在你的Linux機子下自行編譯Multiwfn并運行試試。

    Q22:Windows下,在Multiwfn調用Gaussian計算時,提示“No executable for file l1.exe”錯誤
    A:按照手冊附錄1說的,設置GAUSS_EXEDIR環境變量,將之指向Gaussian目錄即可。

    Q2_1:我想在遠程Linux服務器上安裝Multiwfn,但是按照手冊里的說明安裝motif庫的時候,提示沒有權限。
    A:找管理員裝、或者借管理員的密碼sudo裝,或者用官網上可以下載的Multiwfn的noGUI版。此版本完全不依賴于圖形庫,所以運行前也不需要裝motif庫。但代價就是,這個版本喪失了所有與圖形有關的功能,即不能顯示圖形、不能保存圖像文件,而只有那些純計算的功能可以用。


    3 一般使用問題

    Q23:為什么Windows下使用Multiwfn有時會閃退?為何Linux下使用Multiwfn有時會崩潰?
    A:Windows下使用時遇到閃退是因為用戶是通過雙擊Multiwfn圖標啟動的程序,當程序出錯而崩潰時,運行窗口就會自動關閉,不明真相的用戶總是形象地將這描述為“閃退”(筆者不喜歡這種稱呼,客觀地描述為“窗口突然關閉”多好)。如果你先進入操作系統的命令行模式再啟動Multiwfn(在Windows下按住shift再點鼠標右鍵,就可以通過相應選項進入命令行模式),或者是在Linux下運行,即便程序崩潰也不會導致命令行窗口自動關閉,此時從窗口上顯示的一些信息有助于了解是因為什么而出錯(看不懂的話可以讓開發者看)。

    Multiwfn崩潰的常見原因有:
    1 用的輸入文件類型不合理。應仔細看手冊相關章節或相關博文里對輸入文件要求的說明,別瞎猜著用。
    2 輸入文件存在問題。常見情況有:
    (a)輸入文件殘缺不全。諸如文件沒傳完整,應自行用文本編輯器打開,看看最末尾的信息是否正常。如果是formchk轉換出的fch,若轉換還沒結束就著急關了formchk顯然也會導致得到的文件不完整
    (b)輸入文件里有詭異信息。比如本該是記錄數值的地方由于程序bug或計算設置不合理等原因輸出的卻是一堆星號,顯然會無法讀取
    (c)載入的文件內容的格式不符合要求。比如雖然molden輸入文件是Multiwfn支持的,但有些不知名的程序產生的此文件可能格式不規矩,導致讀取失敗。再比如有些要載入的文件需要靠用戶根據需要自行手寫,如果寫的格式不符合手冊里的要求也可能導致讀取失敗而崩潰。
    3 在Multiwfn里的操作步驟不對。每一步操作都要仔細看屏幕上的提示。如果是新手應先把手冊或博文里相關的例子完整重復一遍以確保操作方式正確。
    4 敲入的內容荒謬、不符合格式要求。諸如逗號誤寫成了全角的,提示該寫空格的地方寫的卻是逗號,輸入的原子、軌道等序號超過實際范圍,該輸入兩個數值的地方輸入了三個數值等等。Multiwfn在屏幕上的提示簡直不能更貼心,所有讓用戶輸入信息的地方都在提示中明確給了輸入例子,嚴格按照提示中的格式寫準沒錯。
    5 內存不足。如果用的是32bit Windows版,首先換成64bit Windows版再試。也可嘗試加大settings.ini里的ompstacksize。如果是Linux版,若沒有按照手冊2.1.2節的過程安裝,也可能由于可用的內存被嚴重限制住而導致這個問題。實在不行就把體系用的基組減小或想辦法減少體系的原子數。
    6 Multiwfn讓你輸入導出的文件的路徑時,你設成了C:\或C盤的某些敏感目錄,在這些目錄里往往因為操作系統權限設置或者安全防控程序設置原因無法創建新文件,從而導致文件輸出失敗而令Multiwfn崩潰。
    7 如果你做的分析依賴于NBO程序的輸出文件,而且你的計算用了彌散函數,去掉彌散函數或者使用更新的NBO版本再試。因為有彌散函數時某些版本NBO輸出的矩陣有問題,導致Multiwfn無法順利載入。
    8 程序bug或兼容性問題。先嘗試Multiwfn官網上的最新版本,如果通過反復測試能確認最新版本也有這個bug,把壓縮后的輸入文件、每一步敲入的命令、當前的操作系統版本發到Multiwfn官方論壇,筆者會很快回復。

    Q24:怎么把Multiwfn文本窗口里的數據拷出來?
    A:仔細看手冊5.4節。

    Q25:Multiwfn在窗口里輸出的信息的靠前部分看不到,即便滾動條拉到頭也看不全怎么辦?
    A:仔細看手冊5.5節,加大窗口緩沖區即可。或者通過命令行方式運行,把輸出信息都定向到指定的文件里。

    Q26:載入文件時敲輸入文件路徑麻煩,有沒有更簡單的辦法?
    A:看《將文件快速載入Multiwfn程序的幾個技巧》(http://www.shanxitv.org/237)。

    Q27:Multiwfn里已經載入了一個文件,怎么載入一個新文件?
    A:一般建議重啟Multiwfn,然后載入新文件,這樣最穩妥。如果你不想重啟,可以退回到程序主菜單,輸入-11(是一個隱藏選項),就會看到Multiwfn剛啟動的界面,然后就可以載入新文件了(這樣做一般沒問題。但如果之后發現分析結果異常,還是應當重啟Multiwfn后再載入)。

    Q28:導出的文件和圖片產生到哪里了?我怎么找不到?
    A:如果程序允許你指定產生文件的路徑,那肯定就在那個路徑下。如果提示產生在了當前目錄(current folder),那就肯定在當前目錄下。什么叫當前目錄,在手冊最開頭,以及《將文件快速載入Multiwfn程序的幾個技巧》(http://www.shanxitv.org/237)中都寫明了。

    Q29:Multiwfn導出的文本文件(比如繪制光譜功能導出的spectrum_curve.txt)里每一列是什么含義?
    A:仔細看屏幕提示(若沒看到就拉滾動條往上找),Multiwfn絕對、120%、一定會在導出文本數據的時候將文件里的每一列的含義提示得明明白白!!!

    Q30:怎么通過命令行而非交互式方式運行Multiwfn?怎么把全部輸出信息導出到文件里?
    A:看手冊5.2節,使用silent方式運行Multiwfn即可。

    Q31:怎么讓Multiwfn批量處理輸入文件?
    A:在Windows下寫批處理腳本,在Linux下寫shell腳本即可,非常簡單。此問題在《詳談Multiwfn的命令行方式運行和批量運行的方法》(http://www.shanxitv.org/612)里深入淺出介紹得超級詳細,還順便把腳本編寫的各種常識都介紹了,非常建議一看!

    Q32:Multiwfn相關博文和手冊里經常提及的“實空間函數”(real space function)是什么意思?
    A:實空間函數(real space function)是指自變量是體系所處的實際三維空間坐標的函數,諸如電子密度、電子密度拉普拉斯函數、靜電勢、ELF等等都屬于此類。Multiwfn的實空間函數分析功能極強,速度很快、支持的函數種類和分析方式非常全面,能算的絕大部分實空間函數在手冊2.6、2.7節都介紹了。

    Q33:輸出數據是一堆星號,或者顯示NaN是怎么回事?
    A:出現星號是由于數據太大,超過了預設的輸出數據的格式所致。比如某個地方本來只能輸出兩位數,而實際數值是250,那么就會顯示成星號了。NaN全稱是not a number,也是非正常情況,比如可能是這個數據在運算過程中除以了0所致。有的時候出現星號、NaN是無害的,比如對一個陽離子做定量分子表面分析考察其分子表面上靜電勢特征,本來其表面上就沒有靜電勢為負的區域,因此對靜電勢為負值部分計算的一些統計量可能就是這種無意義的輸出,不用管它即可。但如果是本該輸出有意義數據的情況卻輸出的是星號或者NaN,那要么是輸入文件問題,要么是操作問題,要么是你對當前分析理解得有問題,要么是bug。

    Q34:分析、繪制靜電勢的時候速度太慢怎么辦?
    A:仔細看《Multiwfn現已可以調用cubegen使靜電勢分析耗時有飛躍式的下降!》(http://www.shanxitv.org/435),或者手冊5.7節。

    Q35:什么級別產生波函數適合做波函數分析?
    A:波函數分析對基組的敏感性和分析方法有關。一般來說,波函數分析沒必要特意用太高檔次計算級別來產生波函數,因為大部分分析方法對于計算級別不是很敏感,用達到中等級別質量的波函數,比如B3LYP、M06-2X理論方法結合比如6-311G**、def-TZVP級別的基組,結果就已經足夠好了,基組用到高檔次3-zeta基組如def2-TZVP也就到頭了。實際上,在DFT/6-31G*級別下的波函數分析結果一般也足夠至少達到定性合理。因此用很高級別,比如CCSD/cc-pVQZ級別的波函數一般來說完全沒必要,純屬浪費時間。理論方法一般用恰當的DFT泛函就夠了,而用后HF方法產生波函數不僅很昂貴,而且一般也并不比用DFT波函數作分析有什么顯著好處。

    Q36:波函數分析時能帶彌散函數么?
    A:看你用什么具體分析方法,絕對不能一概而論。那些直接依賴于基函數的分析通常都不能帶彌散函數,否則結果沒有任何意義。這主要是因為彌散函數的空間分布范圍特別特別廣,某原子的彌散函數會嚴重伸展到相鄰的原子上去,這樣的基函數的分布范圍嚴重缺乏原子軌道的特征。明顯這會在很多情況下導致問題,比如用Mulliken方法算軌道成份的時候,由于A原子的彌散函數嚴重伸展到B空間了,會導致本來應該歸屬到B原子的一些貢獻量被誤歸屬到了A原子。另外,對于這類直接依賴于基函數方法,用很大基組時的分析結果也未必比用中、小基組好,比如很大的4-zeta基組結果有可能還不如3-zeta基組好。不兼容彌散函數的方法有不少,比如Mulliken和SCPA分析(包括其對應的軌道成分分析、布居分析、PDOS繪制等)、Lowdin布居分析、Mulliken鍵級、Mayer鍵級、多中心鍵級(基于NAO的形式除外)、CDA分析等。凡是基于實空間函數或基于實空間的原子劃分的各種分析,比如各種AIM框架下的分析、電子密度/ELF/LOL/靜電勢等實空間函數相關的分析和繪圖、IRI/RDG/IGM/IGMH等弱相互作用圖形化分析、拉普拉斯鍵級、ADCH電荷、Hirshfeld方法算軌道成份等等等等,一律都可以放心帶彌散函數。如果搞不清楚的話,可以比較一下比如6-311++G*和6-311G*的差別,如果相差特別大而不是一星半點,一般就說明此方法不適合用于帶彌散函數的情況。眾所周知,算陰離子體系的能量的時候一般都需要帶彌散函數,如果你要做的波函數分析怕彌散函數,也可以去掉彌散函數再算一次單點來產生不帶彌散函數的波函數再做分析,但這時候用的基組應當不低于3-zeta檔次。

    Q37:溶劑效應怎么在波函數分析中體現?
    A:量子化學程序計算時用隱式溶劑模型即可。溶劑模型會使得溶質的波函數響應溶劑環境,因此溶質的波函數分析結果也將對應于被溶劑極化了的情況。

    Q38:做某分析計算耗時高,怎么降低耗時?
    A:考慮以下做法
    (1)減小基組。但除非迫不得已不要低于6-31G*,否則定性正確難以保證。可以恰當使用混合基組,使得不是關鍵區域的原子用比關鍵區域更小的基組,甚至比6-31G*還小也不是不可以。
    (2)簡化計算模型,比如把不重要的區域直接截掉(斷鍵處該做飽和處理的時候要恰當處理)
    (3)在Multiwfn里用主功能6的選項-3或-4把不感興趣區域的原子帶的高斯型函數(GTF)刪掉,這樣對于之后的所有實空間函數的分析都會因此節約時間,因為Multiwfn里實空間函數都是基于GTF計算的。
    (4)恰當調節設定。有些設定恰當調節的話,可以顯著節約時間而不至于令結果變差。比如你通過RDG圖形化考察體系某個局部區域的弱相互作用時,可以把計算的盒子范圍設成僅僅框住那個區域,此時達到同樣顯示效果的時候,就可以比起讓盒子框住整個體系的時候用更少的格點數,從而節約時間。有時也可以在精度下降可以接受的情況下通過調節某些設定來降低耗時,比如模糊空間分析模塊里對各個原子空間進行積分的任務,如果把settings.ini里控制每個原子的徑向和角度部分格點數的radpot和sphpot改小,耗時顯然就會降低,而精度也會下降。

    Q39:有些任務涉及三維空間中分布的格點,在出現的格點設定界面里應該怎么設合適?
    A:Multiwfn里有很多任務是基于三維空間中均勻分布的格點來實現的,比如RDG/IGM分析、盆分析、域分析、定量分子表面分析、空穴-電子分析、(超)極化率密度分析、ICSS分析等等。計算時首先會劃定一個盒子范圍,這些格點會按照特定的格點間距均勻分布在這個盒子里,三個方向各有一定格點數,乘積就是總格點數。格點間距越小,分析結果就會越準確、顯示的等值面會越光滑,但顯然總格點數也會越高,導致耗時更高。因此設定盒子有兩方面因素要考慮:
    (1)格點的空間分布范圍(盒子范圍):一般建議讓盒子范圍只框住感興趣、被分析的區域。因為假設格點數目是固定的,盒子范圍越小,盒子里的格點的間距就會越小,分析質量就會越高。如果假設格點間距是固定的,那么盒子范圍越小,計算的格點數就會越少,耗時就會降低。因此只讓盒子范圍包圍感興趣的區域,而不讓無關區域也納入盒子范圍,從哪個角度來說都是好事。怎么讓盒子基本只覆蓋感興趣的區域,也確保不會有重要區域沒有被納入盒子,這需要根據你對分析方法和當前體系特征的理解來判斷,沒法一概而論,得具體問題具體分析。Multiwfn的設定盒子的界面里提供了很多選項用來設置盒子范圍,極度靈活,比如low/medium/high quality grid是根據體系的X,Y,Z方向的邊緣原子的位置往各個方向延展指定的距離來確定盒子范圍的,界面里也有選項可以把兩個原子間連線中點定義為盒子中心然后往各個方向延展特定距離來設置盒子,還可以直接在圖形界面里可視化地挪動盒子和調節盒子尺寸等等。
    (2)格點間距或格點數。格點間距直接決定分析質量,而計算耗時正比于格點數。當盒子尺寸是確定的時候,顯然格點間距越小則格點數越多,反之亦然。用戶應當恰當設定格點間距或格點數達到分析結果質量和耗時的權衡。Multiwfn設定格點的界面里有low/medium/high quality grid選項,對于不同功能的定義是不同的,看屏幕上的具體提示,有時對應的是總格點數,有時對應的是格點間距。對于設置的是總格點數的時候,注意low/medium/high這三個詞只是對于小體系而言的,如果是很大的體系,由于盒子大了,哪怕是medium quality grid格點數的格點間距也會很大,因此實際上得到的結果是很糙的,此時得用high quality grid或者用手動輸入格點間距的模式手動輸入格點間距。
    總之,用戶應當認真理解設定格點的界面的各個選項的含義(手冊3.6節里有相關說明),并根據實際情況選擇適合的選項恰當地設置格點。

    Q40:某些方法做布居分析、軌道成份分析時輸出的諸如S、X、YZ、D0、D+1、D-1之類是什么意思?
    A:這是基函數符號。S就是S型基函數,X就是X型P角動量基函數,YZ就是YZ型D角動量基函數。D0、D+1之類是D角動量的球諧型高斯函數的符號。如果你不明白什么叫球諧型和笛卡爾型高斯函數,看《談談5d、6d型d殼層基函數與它們在Gaussian中的標識》(http://www.shanxitv.org/51)和《球諧型與笛卡爾型Gaussian函數的轉換關系》(http://www.shanxitv.org/97)。如果你連基組的最基礎知識,諸如基函數的角動量、殼層之類都不懂,那么很難正確理解這些輸出,建議看《基組入門資料小合集》(http://bbs.keinsci.com/thread-2190-1-1.html)補補基礎,或者參加北京科音舉辦的初級量子化學培訓班。

    Q41:輸出的結果是什么單位?
    A:凡是沒明確注明單位的,一律是原子單位(atomic unit,a.u.)。原子單位是一種單位制,不是一個具體的單位,對于不同的物理量的具體單位是不同的,比如對于電荷是e(e=elementary charge,基元電荷,即一個質子帶的電荷量),對于距離是Bohr,對于電子密度是1/Bohr^3,對于靜電勢是Hartree/e,對于偶極矩是e*Bohr。如果你不清楚的話直接寫a.u.就行了。原子單位的相關知識看https://en.wikipedia.org/wiki/Atomic_units

    Q42:Multiwfn給出的某種方法的分析結果為什么和其它某個程序給出的不一樣,明明都是同一個輸入文件?
    A:可能有以下原因:
    (1)其它程序對某個方法或者函數的定義與Multiwfn不同。比如NBO程序里計算Wiberg鍵級是以NAO為基計算的,而Multiwfn算Wiberg鍵級是基于對稱正交化的基函數計算的。再比如AIM2000給出的電子密度拉普拉斯函數和一般定義不同,在前面多了個-1/4項。仔細看看手冊就知道怎么回事。
    (2)利用的輸入文件里的信息不一樣。比如用.fch文件作為輸入文件進行分析時,Multiwfn不利用其中的密度矩陣信息(極個別功能除外),而只利用.fch里的軌道信息,但有的程序利用的是.fch里的密度矩陣做波函數分析。如果.fch文件里的軌道信息和密度矩陣信息并不是對應同一個級別的,那么Multiwfn和那個程序的結果必然不同。
    (3)方法的具體實現不同。比如Multiwfn計算AIM電荷是基于均勻立方格點結合原子中心積分點算的,而AIMALL等程序里是其它實現方式。這通常不會造成定性的差異,但可能會造成可察覺的數值差異。

    Q43:用Multiwfn做拓撲分析,怎么得到某個臨界點上的各種函數值?
    A:筆者很納悶為什么經常有用戶問這個問題,在《使用Multiwfn做拓撲分析以及計算孤對電子角度》(http://www.shanxitv.org/108)和手冊4.2節的拓撲分析的例子里都充分體現了這一點,而且拓撲分析界面里也提示的非常清楚,顯然是這個選項:7 Show real space function values at specific CP or all CPs。

    Q44:怎么產生cube文件?
    A:cube文件是個容器格式,可以記錄各種各樣的實空間函數在某個空間范圍內均勻分布的格點上的數值,介紹見《Gaussian型cube文件簡介及讀、寫方法和簡單應用》(http://www.shanxitv.org/125)。所以問這個問題時你先得明確你到底要計算什么實空間函數。Multiwfn可以計算上百種實空間函數,手冊2.6、2.7節都有介紹。要產生這些函數的cube文件,在載入輸入文件后,進入主功能5,按照提示選擇被計算的函數、設定格點即可,算完之后在后處理菜單中選2 Export data to Gaussian cube file in current folder即可導出成.cub文件。完整的例子見手冊4.5.1節。

    順帶一提,Gaussian自帶的cubegen工具也可以產生特定實空間函數的cube文件,然而支持的實空間函數種類不到Multiwfn的1/10,而且速度慢得多(尤其是多核機子上),設定格點也遠遠沒有Multiwfn方便,還得記憶使用命令,機子里還得裝Gaussian,因此沒有什么使用價值。cubegen唯一有用的地方也就是計算靜電勢很快,通過Multiwfn主功能5調用cubegen計算靜電勢cube文件比直接用cubegen明顯更方便。

    Q45:怎么考察/計算/分析電子密度?
    A:這個問題非常含糊。電子密度是個三維函數,你得先明確你到底想以什么形式來研究、表征它。常見的考查方式有這些,Multiwfn都支持:
    (1)計算某個點的電子密度,用主功能1實現。這有一些實際用處,比如考察鍵臨界點位置的電子密度是AIM分析中最常涉及的手段。而考察一些芳環體系的原子核在分子平面上方比如1埃的位置的電子密度可以用來預測親電反應位點。
    (2)圖形化考察電子密度在三維空間的分布。包括繪制電子密度的曲線圖、平面圖、等值面圖,分別用主功能3、4、5實現,手冊4.3、4.4、4.5節的例子看過一遍就懂了。一般來說直接對電子密度作圖用處不大,因為電子密度分布是很“單調”、“乏味”的,一般在原子核位置是個極大的峰,向四周以指數型下降,這樣的圖上很難觀察到化學上感興趣的信息。但如果你考察的是價層電子密度,則可以討論不少化學問題,見筆者發表的《Revealing Molecular Electronic Structure via Analysis of Valence Electron Density》(http://www.whxb.pku.edu.cn/EN/10.3866/PKU.WHXB201709252)。價層密度的繪制參考手冊里4.6.2節的例子。另外值得一提的是,電子密度的0.001 a.u.等值面有特殊意義,通常被視為氣相下分子的范德華表面。
    (3)做布居分析(population analysis),由此可得知各個基函數/原子軌道/原子/片段上帶的電子總量,相當于在這些區域里對電子密度做積分。還可以計算原子電荷,本質上相當于原子的核電荷數減去原子帶的電子數,這可以非常直觀地展現實際化學環境中各個原子帶的凈電荷量。這些分析在文獻中非常常見,也非常有實用價值,可以通過主功能7的各種選項以不同方法來計算,把手冊4.7節的例子好好做一遍就理解了。沒看過《原子電荷計算方法的對比》(http://www.whxb.pku.edu.cn/CN/abstract/abstract27818.shtml)一文的讀者強烈建議閱讀一下以了解相關基本知識。

    Q46:做鍵級分析,有些數值很小的鍵級沒顯示怎么辦?
    A:那些非常小的鍵級是可以忽略的,如果非要獲得,可以根據提示讓Multiwfn導出鍵級矩陣文件,讀取對應的非對角元即可。也可以修改settings.ini里控制鍵級輸出閾值的bndordthres,將之設小。

    Q47:Mayer鍵級、多中心鍵級怎么有時候算出來是負的?
    A:首先必須確保沒用彌散函數,否則結果一定沒意義。如果沒用彌散函數,Mayer鍵級有微小的負值的話,直接當成0就行了,微小負值并沒有什么物理意義,是方法本身不足導致的。多中心鍵級也是如此。但如果算三中心鍵級的時候出現顯著而不是微小的負值,則暗示存在三中心四電子(3c-4e)作用。可以再結合Multiwfn里的軌道定域化分析或者AdNDP分析進一步考察。

    Q48:電荷分解分析(CDA)模塊里繪制的軌道相互作用圖里面連線非常混亂,密密麻麻,怎么辦?
    A:恰當設置作圖參數,總能調得清楚好看。見《使用Multiwfn做電荷分解分析(CDA)、繪制軌道相互作用圖》(http://www.shanxitv.org/166)末尾的幻燈片的講解。

    Q49:我使用Multiwfn做RDG(也叫NCI)分析過程中遇到xxx問題...
    A:仔細看本文,以及筆者專門寫的《用Multiwfn+VMD做RDG分析時的一些要點和常見問題》(http://www.shanxitv.org/291)。

    Q50:Multiwfn做靜電勢的定量分子表面分析給出的極大點的數值怎么有的是負的?極小點的數值怎么有的是正的?
    A:這完全沒有矛盾。極大點是指這個點的數值比周圍位置數值大,是相對而言的,但不代表其絕對數值非得是正的。如果體系是中性的,一般來說,數值為負的分子表面靜電勢極大點沒有太大實際意義,可以在后處理界面里使用根據數值范圍刪除極值點的功能將之刪掉。對于極小點也是類似的理。

    Q51:怎么用Multiwfn做AIM分析?
    A:AIM分析是一套理論,其中牽扯各種各樣的、各種各樣的分析方法,介紹看《AIM學習資料和重要文獻合集》(http://bbs.keinsci.com/thread-362-1-1.html)。AIM中主要涉及的分析包括
    (1)對電子密度、電子密度拉普拉斯函數、動能密度、勢能密度等實空間函數繪圖。AIM里涉及到的所有實空間函數都可以用Multiwfn主功能3、4、5分別繪制曲線圖、平面圖、等值面圖來考察,分別看手冊4.3、4.4、4.5節的例子。
    (2)電子密度的拓撲分析,包括尋找臨界點位置、考察臨界點上的函數值、生成鍵徑、產生盆間面。這可以通過Multiwfn主功能2實現。看手冊4.2節的例子以及《使用Multiwfn做拓撲分析以及計算孤對電子角度》(http://www.shanxitv.org/108)、《使用Multiwfn+VMD快速地繪制高質量AIM拓撲分析圖》(http://www.shanxitv.org/445)。
    (3)對電子密度做盆分析,包括計算AIM電荷、計算原子多極矩、實空間函數積分值等。這可以通過Multiwfn主功能17實現。看手冊4.17.1節的例子,以及《使用Multiwfn做電子密度、ELF、靜電勢、密度差等函數的盆分析》(http://www.shanxitv.org/179)。

    Q53:用拓撲分析功能時,某些臨界點找不到怎么辦?提示Poincare-Hopf關系不滿足怎么辦?
    A:對某些臨界點缺失的情況,首先嘗試不同搜索臨界點的方法、調節搜索臨界點的參數,仔細閱讀《使用Multiwfn做拓撲分析以及計算孤對電子角度》(http://www.shanxitv.org/108),其中寫得很詳細。
    另外,也有可能根本不存在那個臨界點,對于電子密度的臨界點怎么判斷這點看《利用約化密度梯度考察AIM臨界點的位置》(http://www.shanxitv.org/267)。
    對于ELF等函數分布特征復雜的函數即便極大點也可能不容易找全,如果你感興趣的只是極大點,那么也可以用主功能17做盆分析,一般可以確保把所有極大點(在盆分析語言里叫吸引子)都找到,但是位置不太精確(格點間距越小越精確),因此可以將其坐標輸入到拓撲分析主功能里的選項1里面作為找臨界點的初猜坐標從而得到極大點的更精確的位置。
    實際上,只要自己感興趣的臨界點都找到了,即便還有某些臨界點沒有找到,并且由此可能導致提示Poincare-Hopf關系不滿足,也根本無所謂,完全不妨礙你感興趣的臨界點的考察。特別是ELF等特征復雜的函數,哪怕對于小體系,找全所有臨界點都是很困難的。

    Q52:我已有一個格點數據文件(比如cube文件),怎么用Multiwfn計算各個原子對其中記錄的函數的貢獻?
    A:把settings.ini里的iuserfunc設為-1,此時用戶自定義函數(user-defined function)將對應于基于內存中的格點數據線性插值產生的函數。然后啟動Multiwfn,載入此格點數據文件,進入模糊空間分析模塊(主功能15),選擇1,然后選擇user-defined function,程序就會對這個函數在各個原子空間內進行積分,結果就相當于原子對這個函數在全空間內的總值的貢獻量。另外,主功能15里還可以選-5來定義片段,這樣可以直接得到某個片段對被積函數的貢獻。這種用法的一個實際例子見《使用Multiwfn計算(超)極化率密度》(http://www.shanxitv.org/305)的第7節。默認情況下,主功能15用的是Becke方式定義的模糊原子空間,也可以用相應選項改為比如Hirshfeld、Hirshfeld-I之類。Multiwfn也可以實現在AIM方法定義的原子盆里對函數進行積分來得到原子的貢獻,但這種劃分比較昂貴,化學意義也不強,這里就不多提了。


    4 圖像顯示、繪圖方面的問題

    這一節第一部分是綜合性問題,第二部分專門針對很多人常問的繪制平面圖的功能進行解答。

    4.1 綜合性問題

    Q53:Multiwfn的圖形界面的窗口太小,怎么弄大一些?
    A:從Multiwfn 3.6正式版開始,settings.ini里加入了plotwinsize3D選項,將其數值設得比默認值更大(更小)就可以加大(縮小)各個圖形界面里顯示三維物體的區域的尺寸,可以反復嘗試選擇一個對于當前運行環境最佳的值。

    Q54:Multiwfn的圖形界面尺寸太大,屏幕顯示不下怎么辦?
    A:有幾種做法:
    (1)對于Windows,在“控制面板”-“顯示”(或其它的控制操作系統的文本大小的界面)里面把文本尺寸改小,這需要重新登錄系統
    (2)嘗試把plotwinsize3D選項數值改小點
    (3)對于Windows版,如果只是主功能0的界面沒法顯示不完整,把settings.ini里的imodlayout設為1從而換成另一種布局再試
    (4)如果是在講課時通過投影演示Multiwfn,由于一般用的是比較低的1024*768分辨率,除非用小字號,否則窗口幾乎總是顯示不全。如果你不想改系統設置,可以把imodlayout設為2,此時起碼對于Win7中等字號設置的情況顯示效果很理想。

    Q55:顯示三維物體的窗口能不能通過鼠標拖動來調節視角?老是調節不到合適的角度怎么辦?
    A:沒法通過鼠標拖動來旋轉和縮放,這是Multiwfn用的圖形庫的限制所致。如果由于調節視角的按鈕的步長太大而沒法調到特別想要的視角,可以點窗口上方的Set perspective并選擇相應選項,然后手動輸入確切的旋轉角或距離值。
    另一種做法是借助免費的VMD來顯示,不僅視角可以自由調節,而且圖像顯示質量明顯更好。Multiwfn的很多分析、計算結果都可以非常容易地搞到VMD里顯示出來。有些效果,如填色的等值面圖,則必須通過VMD才能展現。筆者寫過大量相關文章,比如《使用Multiwfn+VMD快速繪制高質量分子軌道等值面圖》(http://www.shanxitv.org/447)、《使用Multiwfn+VMD快速地繪制高質量AIM拓撲分析圖》(http://www.shanxitv.org/445)、《使用Multiwfn+VMD快速地繪制靜電勢著色的分子范德華表面圖和分子間穿透圖》(http://www.shanxitv.org/443)、《基于Multiwfn產生的cube文件在VMD和GaussView中繪制填色等值面圖的方法》(http://www.shanxitv.org/402)、《使用Multiwfn+VMD以原子著色方式表現原子電荷、自旋布居、電荷轉移、簡縮福井函數》(http://www.shanxitv.org/425)等等。

    Q56:怎么設置保存出來的圖像格式?
    A:看手冊2.8節。順帶一提,如果繪制的圖像是由文字、線條構成的,建議使用pdf(或svg、eps、wmf)格式,這樣的圖像是矢量圖,可以無損縮放,而且線條顯得非常平滑,文件也很小。默認的png格式是目前最佳的無損壓縮的位圖格式,適合含有復雜色彩、色彩平滑變化的圖。

    Q57:怎么設置保存出來的圖像的像素?(有些人管這叫分辨率)
    A:如手冊2.8節所說,settings.ini里graph1Dsize控制曲線圖的圖像文件的像素,graph2Dsize控制平面圖的圖像文件的像素,graph3Dsize控制三維物體的圖像文件的像素。

    Q58:圖像線條鋸齒嚴重,怎么讓圖像有抗鋸齒效果?
    A:可以通過調節上述設置讓保存出的圖像的像素比較大,然后用Irfanview(免費小巧的極好的圖像觀看程序)、Photoshop等程序把圖像尺寸縮小。在縮小的時候,程序會通過Lanczos、B-spline等算法重新采樣,之后看到的圖像就沒有什么鋸齒了,這是一種經典的抗鋸齒方式。另外,對于以文字、線條為主的圖,筆者強烈建議使用pdf、svg之類矢量圖像格式,得到的圖完全不會看到有鋸齒現象(如果之后需要像素格式的圖,可以把矢量圖顯示出來后再截圖,或者直接轉換成矢量格式)。凡是你對圖像質量要求較高的時候,都不建議直接從屏幕上截圖,因為屏幕上顯示出來的圖沒有抗鋸齒效果,特別是Linux系統下Multiwfn直接顯示出來的三維圖形可能鋸齒非常明顯。

    Q59:圖像上的字體能改么?
    A:改不了。如果實在覺得不好看,可以自己ps。

    Q60:怎么有時刻度標簽上相鄰刻度的數值是相同的?比如都是0.01、0.01?
    A:這是因為刻度數值的位數太少,而這些刻度數值相差又很小,導致四舍五入后看起來相同。對于曲線圖,可以修改settings.ini里的numdiglinexy來增加顯示的位數;對于平面圖,可以修改numdigxyz。

    Q61:Multiwfn保存出的圖像的線條/文字太細,怎么加粗?
    A:仔細看界面上的各個選項,如果界面里直接提供了設置線條粗細的選項,直接修改即可,如果改不了的話,或者是嫌文字太細,按照《加粗Multiwfn保存的圖像的坐標軸和標簽文字的方法》(https://www.bilibili.com/video/av26311992/)的方法通過ps加粗。

    Q62:Multiwfn算出來的格點數據怎么在VMD里繪制成等值面圖?
    A:參考此視頻的演示:《使用Multiwfn結合VMD繪制自旋密度等值面圖》(https://www.bilibili.com/video/av26312131)。

    Q63:觀看等值面(isosurface)的時候,等值面數值(isovalue)設多大合適?
    A:首先要知道,等值面是一種常用的展現三維函數在整個空間中分布特征的方式。等值面上每一個點的數值都和你設的isovalue值相同,通過等值面圖的輪廓可以定性考察函數在不同空間位置的大小。isovalue的設定往往是有很強任意性的,沒有唯一標準,不同isovalue下看到的等值面圖像也是不同的。一般選取標準是讓所得到的等值面圖能較好展現不同區域函數大小的差異、能把你想主要表現的體系特征充分展現出來,同時圖像美觀便于理解。可以在Multiwfn里不斷調節等值面數值直到滿意為止。有時候可能單一isovalue下的圖注定沒法全面滿足要求,此時可以同時給出多個isovalue下的等值面圖,在極其靈活的VMD里還允許在一張圖里同時顯示多個等值面,比如《通過Multiwfn繪制等化學屏蔽表面(ICSS)研究芳香性》(http://www.shanxitv.org/216)第7節的圖。

    Q64:Multiwfn里顯示的等值面中的綠色和藍色代表什么?
    A:綠色等值面上的每個點與你設的isovalue值相同,藍色等值面上的每個點與你設的isovalue值符號相反。至于具體代表什么物理含義,那得看你考察的是什么函數,isovalue是怎么設的。對于專用于觀看軌道等值面的主功能0,isovalue只能設為正值,因此綠色和藍色的等值面必然分別對應的是軌道波函數的正相位和負相位的等值面。

    Q84:繪制三維結構時,怎么修改原子和鍵的顏色?
    A:如果想修改默認的鍵的顏色,調節settings.ini里的bondRGB參數。要設定的是紅(R)、綠(G)、藍(B)的分量,分量范圍從0到1。比如黑色對應0,0,0,白色對應1,1,1,亮綠色對應0.0,1.0,0.0,暗紅色對應0.3,0.0,0.0。如果想調節原子球的顏色,需要設定settings.ini里的atmcolorfile。比如atmcolorfile= C:\asuka\color.txt代表從C:\asuka\color.txt文件中讀取原子的色彩設定,此文件需包括每個元素色彩的紅、綠、藍分量。建議大家直接基于examples目錄下的模板文件element_color.txt來修改,想調節哪個元素的顏色就修改哪個元素即可,其它的不用動。

    Q85:圖形窗口里顯示的鍵和期望的成鍵關系不符怎么辦?
    A:Multiwfn默認是根據原子半徑和原子間距離判斷成鍵的,距離小于兩個原子半徑之和乘上一個因子就會被視為成鍵,這個因子可以通過圖形界面右側的Bonding threshold滑條進行修改。如果Multiwfn載入的是mol和mol2這種自帶成鍵關系的格式,圖形窗口里默認顯示的成鍵方式與文件里記錄的相一致。

    如果你用的輸入文件不是mol或mol2,而且發現Bonding threshold怎么改也改不成所有鍵的顯示方式都滿意的狀態,可以選擇圖形窗口的菜單欄里Other settings - Load bonding connectivity from mol/mol2 file,然后輸入一個mol或mol2文件路徑,Multiwfn就會把成鍵方式顯示得與你提供的這個文件里記錄的連接關系相一致。你可以在比如GaussView里把成鍵關系調好,然后保存成mol2,然后令Multiwfn讀取。

    Q86:VMD基于Multiwfn計算的格點數據繪制的填色等值面圖怎么是黑色的?
    A:注意這些問題
    (1)可能是某些VMD版本有bug,確保用的是VMD 1.9.3
    (2)可能是你的GPU驅動與VMD兼容性問題,更新GPU驅動或者換個機子再試
    (3)如果你用的是32bit的VMD,由于其內存可用量最多只有2GB,當cub文件很大時,可能無法正常載入,導致無法對等值面著色。用64bit VMD再試,可以在這里下載第三方編譯的VMD 1.9.3 64bit:http://bbs.keinsci.com/thread-23119-1-1.html


    4.2 與主功能4繪制的平面圖有關的問題

    筆者借此機會強烈建議打算用Multiwfn繪制平面圖的用戶都認真仔細照著手冊4.4節一大批繪制平面圖的例子操作一遍,努力領會每一步操作的含義,把這些例子都搞明白了就可以少問很多初級問題,同時掌握很多技巧。

    Q65:繪制平面圖時繪制體系的哪個截面合適?
    A:平面圖是展現三維函數在體系某個截面上的分布的方式。平面圖的缺點是沒法像等值面圖一樣把函數在整個三維空間中的分布特點通過一張圖大體體現出來,但優點是可以最完整地展現某個截面上的函數變化特征。只有當你對體系某個截面上的函數變化特征感興趣、由此可以幫助你討論問題的時候,才適合繪制平面圖來將之充分展現。比如你想通過ELF函數考察水分子中的O-H鍵,那就很適合繪制水分子平面的平面圖,這個平面正好穿過兩個O-H鍵鍵軸,因此可以很充分地體現出O-H鍵的內在特點。再比如,你想作圖考察苯酚pi電子分布特征,那你可以在苯酚子上方比如1埃的位置,繪制平行于苯分子的電子密度的平面圖(這個1埃是隨意取的,差不多能大致穿過pi電子分布的主體區域)。筆者有大量博文,手冊里也有大量例子,都充分體現出利用平面圖可以充分討論很多問題。如果你的體系結構特征復雜,很難恰當選取一個或幾個截面充分展現體系電子結構特點怎么辦?那就別繪制平面圖了唄,繪制等值面圖啊。

    Q66:怎么設定作圖區域?
    A:平面圖在繪制之前,需要劃定一個作圖區域(plotting region),即體系的某個截面上的一個確切的區域。在這個區域里均勻分布指定數目的格點,函數值就是在這些位置上計算的。在繪制平面圖的過程中,你會看到Multiwfn里提供了豐富、靈活的選項來定義作圖區域,各個模式在手冊3.5.2節解釋得非常清楚。其中有兩類定義方式最為常用:
    (1)繪制某個笛卡爾平面:即繪制XY或YZ或XZ平面。假設你選的是繪制YZ平面,由于YZ平面有無數個,每個對應不同的X值,因此程序還會讓你輸入X值。程序會根據體系Y和Z坐標最大、最小的原子的位置劃定實際作圖區域,并往四周延展指定距離(稱為“extension distance”,延展距離),免得繪制出的圖的邊緣正好卡著邊緣原子的原子核位置,造成感興趣的區域被截斷。
    (2)通過三個點定義一個平面:中學都學過,三點定義一個面。你可以手動輸入三個點的坐標,也可以通過輸入三個原子序號通過它們的原子核位置來定義一個面。實際的作圖區域按照下圖示意的方式來確定

    上圖中,extension就是延展距離,X和Y軸就是繪制出的圖像的橫軸和縱軸,實際的作圖區域是藍色虛線框住的范圍。可見,三個點(或原子)的選擇,以及三個點(或原子)輸入的順序,不僅影響作圖區域的大小,也影響圖像的朝向。用戶應當根據實際情況恰當設定以得到滿意的結果。

    Q67:感興趣的區域在圖上顯示不全怎么辦?
    A:作圖區域是怎么確定的,在上面已經解釋得很清楚了。顯然,加大延展距離就可以讓作圖區域變得更大,讓原本沒顯示出來的地方也可以被納入到作圖區域中。設定延展距離的選項就是定義作圖區域那一步里的選項0: Set extension distance for plane type 1~5。當你通過三個點(或原子)定義作圖平面時,如果選擇的點很不合理,那么即便加大延展距離也不會有好的效果,可能導致真正感興趣的區域又歪斜又嚴重偏離中心位置。

    Q68:繪制出來的平面圖里面的內容是歪著的,或者感興趣的區域不在圖像的中央,怎么解決?
    A:一種做法是在定義作圖平面的時候恰當定義,結合上文的示意圖,恰當選擇三個原子或者輸入三個恰當的點。還一種做法是先嘗試繪制一次,記錄下歪斜的角度和偏離中心的程度,然后在重新繪制的時候在定義作圖平面時設定旋轉角和平移量,詳見此貼的示例:http://bbs.keinsci.com/thread-11037-1-1.html。如果你并不需要坐標軸的話,最簡單的方法是通過ps等程序直接把圖像中需要的部分摳出來,然后旋轉一下就完了。

    Q69:繪制的平面圖里面有些原子的標簽沒顯示出來是怎么回事?
    A:只有當某個原子與作圖平面的垂直距離小于特定閾值時,這個原子在這個平面上的投影位置才會顯示出原子標簽(倘若沒有這個閾值設置,所有原子標簽都顯示出來,對于大體系,圖上的標簽將何等混亂可想而知)。沒顯示出來標簽的那些原子顯然是因為其距離作圖平面超過了默認閾值。閾值可以在后處理界面通過選項17 Set distance threshold for showing atom labels進行修改。閾值設定之后,你還可以選擇是否把超過這個閾值的原子用比較細的字體顯示出表現,以區別那些離作圖平面比較近的原子。這個選項的默認值通過settings.ini里的disshowlabel參數控制。

    Q70:等值線圖里面怎么標注等值線數值?標注的數值不好看怎么辦?
    A:后處理菜單中選2 Enable showing isovalue on contour lines然后重新作圖。程序自動會在曲率比較小的線條上標注等值線數值,可能標的位置不太合期望,而且可能有人嫌字號、字體不理想,這沒辦法,畢竟計算機程序沒有人的審美。你可以參考著自動標注的等值線數值,自行用ps之類工具把等值線數值以你覺得最美觀的方式標上去,比如筆者J.Mol.Model.,19,5387(2013)這篇文章里的圖3就是這么做的。

    Q71:等值線圖怎么設置等值線數值和線條顏色、粗細、風格?
    A:用后處理菜單中的選擇3 Change setting of contour lines進入等值線設定界面,其中各個選項的含義一看選項上的文字就能秒懂,在手冊3.5.4節還有詳細解釋。線條粗細和風格可能在屏幕上直接顯示的時候體現不出來,但在保存的圖像中肯定會體現出來。

    Q72:怎么在填色圖上把等值線也同時顯示上去?
    A:照常繪制填色圖,然后在后處理菜單中把顯示等值線的選項打開。

    Q73:平面圖里的橫、縱坐標單位怎么改為埃?
    A:后處理菜單里選擇-8 Change length unit of the graph to Angstrom。

    Q74:填色圖里為什么有的區域是白色、黑色的,代表什么?
    A:在默認的色彩過渡方式下,白色代表函數數值高于色彩刻度上限的區域,黑色代表低于色彩刻度下限的區域。如果你不喜歡這個處理,希望低于(高于)色彩刻度下限的區域就是用下限(上限)顏色表示,可以在主功能4的后處理菜單中的Set color transition選項里選擇“1 Rainbow”。

    Q75:填色圖、著色等值面圖的色彩刻度上下限怎么設合適?
    A:一般來說,色彩刻度(color scale)的上下限的設定的主要原則是能夠通過色彩的不同,使得圖中不同區域函數值的差異能充分展現出來,而且從審美上比較漂亮。色彩刻度范圍若設得太寬,不同區域的顏色差異往往體現得不夠顯著;刻度范圍若設得太窄,函數值超過刻度范圍的區域就完全沒法體現出差異。因此刻度范圍必須擇情而定,需要反復嘗試找到盡可能理想的。

    Q76:填色圖/著色地形圖里色彩刻度的顏色過渡方式能改么?
    A:可以。主功能4繪制填色平面圖或者著色地形圖的后處理菜單中有Set color transition選項,可以修改色彩過渡方式,Multiwfn內置了非常多的色彩刻度方式,可以多試試,總有一個適合你。在一些繪制填色矩陣圖的界面里也可以看到這個選項。另外,也可以在后處理菜單中讓Multiwfn把平面圖的數據導出為plane.txt,然后載入sigmaplot、surfer、Origin、matlab等程序再繪制填色圖,屆時作圖設定更豐富,也有很多色彩過渡方式可供選擇。

    Q77:我把平面圖的平面數據導出成plane.txt之后,想用sigmaplot之類的第三方程序繪制,用哪幾列數據繪制?
    A:導出文件的時候仔細看屏幕上的提示,根據實際情況判斷。比如你繪制的是YZ平面,程序會提示The column 1,2,3,4 correspond to X,Y,Z and function value, respectively,顯然在第三方程序里繪制時,橫軸和縱軸分別應當用第2、3列的數據,而函數值對應第4列。
    再比如你通過三個原子定義作圖平面,導出數據時Multiwfn會提示你
    The column 1,2,3 correspond to Cartesian X,Y,Z coordinates, respectively
    The column 4,5,6 correspond to X,Y coordinates in the graph and function value, respectively
    顯然,應該將4、5、6列的數據分別作為橫軸、縱軸和函數值,而對應于格點在實際三維空間中的X,Y,Z坐標的1、2、3列當前用不著。

    Q78:填色圖的色彩刻度條的標簽間隔怎么改?
    A:后處理界面里有選項-2 Set stepsize in X,Y,Z axes進行設置,其中的Z軸就是指色彩刻度軸。

    Q79:圖上的原子標簽能改成顯示原子序號么?字號、字體能改么?
    A:后處理菜單中選擇18 Change style of atomic labels可以修改顯示方式,可以選擇只顯示序號、只顯示元素、元素和序號同時顯示,默認設置可以通過settings.ini里的iatmlabtype來設。標簽字號可以通過settings.ini里的pleatmlabsize來設。字體改不了。

    Q80:繪制出來的平面圖怎么和分子結構圖合并到一起便于觀看?怎么把鍵顯示在平面圖上?
    A:看《將分子結構圖和Multiwfn繪制的平面圖準確合并的方法》(http://www.shanxitv.org/274)。另外,Multiwfn在后處理界面也提供了選項8 Enable showing bonds可以將化學鍵(根據距離判斷)用直線顯示出來,這樣也可以使得體系結構在平面圖上體現得更清楚。但哪怕兩個原子被判斷為成鍵,如果其中任何一個距離當前定義的作圖平面距離超過閾值(怎么設閾值看本文Q69),則這個鍵將不會顯示在圖上。

    Q81:平面圖的橫、縱坐標對應什么?
    A:當你繪制的是某個笛卡爾平面時,比如你當前選的是YZ平面,那么圖上的橫軸、縱軸坐標就分別是平面圖上數據點在三維空間中的Y、Z軸坐標。如果你是通過其它方式定義的作圖平面,那么橫、縱坐標僅僅體現的是距離作圖平面起點位置的相對坐標,只反映相對空間關系,和三維空間中的X,Y,Z坐標沒有直接聯系。

    Q82:怎么把AIM分析中的臨界點、鍵徑、盆之間的分界面顯示在平面圖上?
    A:先用主功能2做AIM拓撲分析,然后退回主菜單,再照常繪制平面圖,凡是與作圖平面垂直距離小于閾值的臨界點、組成鍵徑的點都會直接顯示在圖上,這個閾值以及其它相關設定可以在后處理菜單中的4 Set details of plotting critical points and paths選項中設置。另外,在后處理菜單中有選項可以在圖上生成和繪制盆之間的分界面。詳見手冊4.4.6節的例子。

    Q83:怎么用Multiwfn基于格點數據文件繪制曲線圖、平面圖?
    A:把settings.ini里的iuserfunc設為-1,此時用戶自定義函數(user-defined function)將對應于基于內存中的格點數據線性插值產生的函數。然后啟動Multiwfn,載入此格點數據文件,進入繪制曲線圖或平面圖的功能(主功能3、4),被繪制的函數選擇user-defined function即可。如果iuserfunc設為-3,則使用B-spline插值,所得圖像會更為光滑,但個別情況可能會有一些虛假現象,比如本身是尖峰的位置變成了頂端光滑的峰(盡管曲率很大)。

    久久精品国产99久久香蕉