• 回答一些關于Multiwfn的疑問以及未來Multiwfn的發展打算

    PS:這是很久以前寫的,里面的內容半數都過時了




    回答一些關于Multiwfn的疑問以及未來Multiwfn的發展打算

    Multiwfn的開發者Sobereva @北京科音   2011-Nov-13



    曾有不少人問我關于Multiwfn的各方面問題,其中比較有普遍性的問題,以及我覺得有可能會有人想問的問題,我在這里統一地回復一下,其中不包括具體操作上的問題。另外,我也打算借這個帖子,用自問自答的形式,透露一下未來Multiwfn的發展打算。


    Q:Multiwfn是干嘛用的?
    A:Multiwfn是用來做波函數分析的。波函數本身是個黑盒子,蘊藏了量子體系一切信息。通常量化計算只是從中提取了單點或者部分勢能面的信息,或是提取偶極矩、極化率、NMR核屏蔽等性質信息,然而這些只反映了體系的一個側面,還有非常多的信息有被探索,不好好挖掘就浪費了這些信息。基于波函數的電荷及鍵級計算、AIM分析、NBO分析、電子定域性分析、軌道成分分析、密度差分析等等都算作波函數分析這一類方法,這使我們對體系的狀態及內在電子結構特征能夠有更深的認識。然而,波函數分析雖然已經有很多人在研究和應用,但被重視得相對來說還是不夠,很多人只會拿Gaussian等程序去算體系,但是算完了不知道怎么分析,導致文章在討論時內容空洞,無法很好揭示本質問題。因此,必須重視波函數分析,有助于使問題研究得更透徹,也可以提高文章檔次。利用Multiwfn可以輕松、快捷地完成各種各樣波函數分析工作。

    Q:開發Multiwfn的最初動機和目的是什么?
    A:先說說最初動機。2009年秋天,當時我打算寫一個帖子,介紹wfn文件的格式以及怎么讀取wfn文件,并且如何利用其中的信息計算某個點的電子密度等性質,于是就寫了小程序去實現這個目的。后來,我發現將這個小程序經過簡單擴展后(當時只有600行代碼),以前看起來操作起來麻煩卻很有價值的事情,比如顯示一個平面上電子密度圖,現在敲幾下鍵盤就能完成了,比起生成格點文件->用gsgrid提取平面->讀入sigmaplot作圖的方法方便快捷得多。這使我受到鼓舞。加上我本身就對波函數分析方法和寫程序有興趣,后來就花了大量業余時間,逐漸將這個程序功能擴充。這個程序的開發不會止步,因為以前的波函數分析方法已經很多,新的波函數分析方法還在不斷地涌現,會有越來越多的重要分析方法納入此程序。

    此程序的繼續開發的主要動力是自己的興趣,但也有其它一些因素:
     1 彌補現有波函數分析程序的空白。目前的波函數分析程序往往有很多缺陷:(1)支持的方法局限性大,有的程序只能做AIM分析(比如AIMALL),有的程序只能計算某些格點數據(比如CheckDen、NCIplot),缺乏整合性。(2)使用復雜、麻煩。很多程序也沒有實例,手冊里全是輸入文件的關鍵詞和隱晦的解釋,令初學者無從入手。比如啃DGrid的手冊對于初學者肯定是痛苦的事。有些程序也不人性化,操作麻煩,輸出的內容不是內行往往搞不明白。另外很多軟件只能算,不能圖形顯示結果,還得倒騰到第三方可視化程序中,過程頗為繁瑣。(3)計算速度慢。很多程序代碼效率差,支持并行的甚少。(4)很多分析方法沒有現成的程序能夠很好地實現。因此,我認為很有必要開發Multiwfn去彌補這些不足。在Multiwfn的開發過程中,我一直遵循著功能全面、操作簡便、計算高效這三個原則,力圖讓量化初學者能很便利地應用波函數分析方法研究各種問題。此外我在設計程序時也充分考慮到靈活性,增加諸多可調參數和高級選項,以便資深用戶能實現特殊的研究目的。
     2 消滅一些商業化、私有的波函數分析程序。我主張學術開放,代碼免費共享。然而不少波函數分析軟件卻被賣錢(Gaussian這種由公司經營的大型程序賣錢也沒什么不對,畢竟得養活開發者,但學術性的小程序也賣錢我不同意),還有些程序都是課題組內部藏著掖著,私心太重。其他人看著華麗麗的程序運行結果只有羨慕的份兒,這是很令我不愉快的事。出于對這些行為的反感,我力圖通過Multiwfn的開發,逐漸消滅一些商業化、私有波函數分析程序的存在價值。
     3 著名的理論方向的課題組通常都有一套自己的程序,只有擁有一套自己的程序,才能容易地將一些新方法實現,更重要的是,也只有這樣,才容易迸發出創造新方法的靈感。另外,新的理論方法,只有在公開的程序中實現,才有可能夠被廣大研究者所認識并使用。我總會將我自己提出的方法寫進Multiwfn(比如ADCH電荷),以便大家能夠將這些方法應用到實際研究中去。
     4 推動中國在量化軟件開發方面的進展,讓世界范圍的量子化學研究者常用的量化軟件列表中出現一款完全由中國開發的軟件。把Multiwfn牽扯到這么大的話題其實我感覺不太好意思,有自吹之嫌。中國量子化學軟件的開發確實是個令人嘆息的事,正好前兩天在宏劍ICTCLS'11大會上,黎樂民院士也提起了這事,說目前中國用的量子化學軟件基本全靠進口,國內的軟件開發都是由各個課題組各自為陣,也不公開(至少也沒商品化),難成氣候。看著宏劍代理列表里琳瑯滿目的計算化學程序,卻貌似沒一個中國開發的,這的確令人心寒。量化方面目前比較有名的純國產的軟件,能數的出來的沒幾個,也就比如BDF、XMVB、Xi'an CI,而這些程序,涉及的領域比較窄,用戶較少。而Multiwfn的受眾群體則是相當龐大的,我希望通過不斷對Multiwfn進行改進,能逐漸讓各國的研究者通過Multiwfn認識到中國也有自主開發的量化軟件,而且很好用也很有用。

    Q:Multiwfn能算xxx(意指某個具體問題)么?
    A:這是很含糊的問題,怎么分析,用什么方法分析,這都要看研究者自己想怎么做、研究目的是什么,這種籠統的問題不可能有唯一確切的答案,何況本人也不可能對各種體系都很有研究。面對一個具體的問題,比如分析某個體系中的某種作用,如果自己對分析方法理解不深,就應當首先讀一些相關文獻,看看哪些方法對分析當前問題比較有用,然后再看Multiwfn里能不能支持這種方法,此程序能支持的分析方法都列在了官方網站上。

    Q:Multiwfn的主頁是什么?誰提供的服務器?

    (2017-Apr-5注:Multiwfn的主頁已變更為http://www.shanxitv.org/multiwfn)

    A:主頁是http://multiwfn.codeplex.com,應該在很長時間內都不會有變動,如果發生變動,我將以各種方式通知大家。主頁上可以免費下載最新版本可執行文件和源代碼,如果發現新版本有bug,可以暫時下載老版本,并且請通過電子郵件(sobereva@sina.com)告知我以便在下個版本中排除。類似于sourceforge開源項目,codeplex是微軟提供的開源項目,Mulitiwfn是codeplex項目之一。codeplex服務器位置目前應該是在國外,需要能訪問國際網才能下載。

    Q:Multiwfn會一直免費么?
    A:此程序永遠免費,永遠可以不需要注冊就直接在官網上下載,包括源代碼。如果真有一天此程序變成收費的,那說明Sobereva已經出賣了靈魂。如果有軟件公司想買斷這個程序然后銷售,我決不答應。如果有商業化的計算化學軟件平臺想把此程序作為其中一個模塊,我會欣然答應,但是保證其中的分析功能不會超過免費的通用版本(除非某些分析功能必須和其它模塊掛在一起才能實現)。曾有人建議我把銀行賬號掛網上,讓用戶自愿捐款,但我不打算這樣,一方面是寡人不貪財,開發這程序本身也用不著資金,另外我也不想被人說成打著免費的旗號卻有牟利之心。附帶一提,本程序的開發也沒有受到任何科研資金資助。

    Q:Multiwfn有沒有中文手冊?
    A:目前版本沒有。在2.0版本以前的手冊實際上就是個readme.txt文件,是全中文的,但是我并不建議大家閱讀。在2.0中,我花了近一個月時間將手冊(即壓縮包里的manual.pdf)徹底重新編寫了一遍,內容遠遠比readme.txt要豐富,不僅深入淺出地介紹了程序中支持的方法的基本原理,還有程序中各個分析功能的詳細解釋,還有20多個應用實例等等內容。這個手冊涉及內容絕不局限在此程序本身,相信哪怕不是使用Multiwfn的人,看看此手冊也會有所受益。

    之所以手冊是英文的,是因為我希望這個程序是面向國際的,而不僅限于中國科研圈子里。尤其是在2.0版發布以前,曾有一個印度人,給我發郵件說他使用這個程序時不得不用在線程序去翻譯,挺辛苦,于是我更堅定了手冊必須是英文版的決心。也有好幾次有人希望我出個中文手冊,但是我并不打算這么做。一方面是因為手冊已經有110多頁,再制作一個中文版太費時間,以后更新手冊的時候也得中英文各寫一遍,太麻煩。另外,我相信凡是如今搞量子化學的人,不可能在英語閱讀上有障礙。雖然國際化是必須的,但現階段我還是以國內用戶為程序推廣的主要立足點,因此我會陸續寫一些中文的與Multiwfn相關的使用帖子以更好地幫助國內用戶使用此程序。

    Q:Multiwfn的手冊較長,本人理論功底不足,應如何入門和使用?
    A:Multiwfn的使用非常非常容易,易于使用是本程序一直貫徹的原則。實際上哪怕沒用過Multiwfn的人,對于絕大部分分析,只要照著屏幕的提示,也能順利完成。入門最簡單的辦法,實際上我在手冊一開始的User must read里寫得很明確,就是先看一下第一章Overview,了解Multiwfn到底能干什么,然后就看第四章,把其中的實例都按照手冊里的指令敲一遍,肯定就懂得怎么用了。不過,實例部分涉及到的只是Multiwfn的最基本的功能,還有一些高級功能需要用戶自己靈活運用,這就需要用戶對理論方法有一定了解,并且閱讀手冊2、3章詳細了解一些Multiwfn的信息。為了更好地讓用戶使用Multiwfn的一些功能,我會時不時地寫一些專題帖子。比如關于ELF和RDG分析的理論和它們在Multiwfn中的操作我之前已經分別寫成了《電子定域性的圖形分析》和《使用Multiwfn圖形化研究弱相互作用》發在小木蟲量子化學區(貌似Multiwfn能夠被不少文章引用,很大程度上緣于這兩個帖子),使用Multiwfn研究電子結構在化學過程中動態變化的方法也寫成了《制作動畫分析電子結構特征》一文。

    Q:Multiwfn會有培訓班么?
    A:肯定會有。也許在2012年,也許在2013年上半年,反正至少不會在2011年上半年,因為在培訓班開辦前,我需要一定時間將幾個十分重要的功能寫進Multiwfn,這將會使此程序明顯變得更為強大,能分析更多問題。培訓內容不僅僅是介紹程序本身和程序操作,培訓的約一半時間都會用來淺入深地介紹各種主要的波函數分析方法的基本原理和相關應用。內容不會太多地涉及復雜理論知識,不需要量化研究背景,只要是有本科化學知識的人就能聽懂大半。第一次培訓班規模不會太大,打算上限35人(如果少于25人則培訓班取消),地點應該會在北京科技大學,食宿自理,不會收任何培訓費,也不做資格審核,只要提供聯系方式即可(除非報名者太多,可能會優先考慮熟悉的網友)。時間是一整天,盡量安排在假期。也有可能順便邀請幾個國內比較有名的學者做報告(內容不一定和波函數分析相關),這樣的話可能培訓時間變為兩天。我也十分希望屆時能有使用Multiwfn發表文章的朋友前來講講他們的工作,以及是如何使用Multiwfn分析實際問題的。在培訓班方案定下后我會在網上,包括小木蟲量子化學板塊上做出正式通知。假設第一次培訓班能成功,此后每隔兩年可能都會舉辦一次。

    Q:什么分析方法會被包含進Multiwfn?
    A:我感興趣的、有實用價值的波函數分析方法會被寫入這個程序。也有些功能不屬于波函數分析,但是很有用,容易在Multiwfn里實現,且沒有別的公開的使用容易的程序能做,這些方法也會被納入Multiwfn的“Other functions”一類。如果你需要用到某種分析方法,但是Multiwfn里沒有提供,可以聯系我,如果我覺得算法容易實現,我可以寫一個特殊Multiwfn版本提供給你。如果這個方法有普適性,就將會保留進Multiwfn正式版里。如果你認為有些尚未在Multiwfn里實現的分析方法很有價值,也歡迎告訴我,雖然有些可能暫時在Multiwfn里實現不了,但我會記下來,等日后有閑時間,或者遇到某些契機時,再寫入這個程序。

    Q:未來Multiwfn將會做那些擴展?
    A:ELF、LOL、Laplacian的拓撲分析功能馬上就會加入。基于立方格點的盆積分功能、表面分析(比如計算分子表面靜電勢極大極小點的數值)、AdNDP方法、電荷轉移分解將會在未來逐步加入。此程序也將盡量去支持平面波基函數以便擴展到第一性原理計算的分析上。STO基函數也可能會支持。

    Q:Multiwfn會加入NBO分析么?
    A:NBO分析雖然十分重要,但是Weinhold等人的NBO程序已經足夠好,免費的NBO3.0版本也已經能很好地做NBO分析方法中的最主要部分,所以就沒打算加入Multiwfn。

    Q:Multiwfn會加入能量分解么?
    A:實際上Multiwfn目前也有個簡單的能量分解功能,但沒法將總能量分解得很細致。基于Morokuma或SAPT的能量分解至少在很長時間內不打算加入。因為能量分解程序需要電子積分數據,有的還需要對量化程序執行過程進行內部的控制,必須和量化程序一起編譯,比如SAPT、NBO 5(其中的NEDA)等等程序就是如此,這給用戶帶來很大不便。另外,用得最多的免費開源的量化程序GAMESS-US本身已經有了能量分解功能,新的免費開源程序PSI4自己也帶了SAPT,因此也沒必要再去弄個第三方程序來支持能量分解。雖然也可以在Multiwfn里面直接加入計算電子積分的代碼和相關模塊,但是這很費事,我也沒什么興趣去做。

    Q:Multiwfn是否打算加入圖形界面?
    A:實際上Multiwfn本來就有圖形界面,比如進入程序后按0就能出現圖形界面顯示分子結構和軌道等值面。在需要圖形界面顯示結果的時候,Multiwfn都會提供圖形界面。而此程序的大部分操作都保持命令行形式,并不提供圖形界面,這有三個原因:1 全都弄成圖形界面沒必要。比如選擇一個選項,把敲入一個數字+按回車的動作改成移動鼠標+點一下左鍵,這毫無必要,并不能使操作更快捷,也不會令界面更友好。 2 圖形界面沒法做批處理。而Multiwfn這種命令行為主的程序,可以通過寫shell腳本,利用文件重定向作為輸入,對一堆體系進行批量分析。即便只分析單個體系,一套敲鍵盤的操作也可以簡化為輸入一條重定向命令,詳情可參考手冊5.2、5.3中的說明。所以說,以命令行為主以圖形界面為輔的形式,使得Multiwfn更方便靈活。 3 對于命令行模式的Linux系統(尤其是遠程ssh登錄的情況),全圖形界面程序無法執行。

    Q:Multiwfn有無合作開發的意向?
    A:沒有,這是個人程序。如果融入他人的代碼,我就難以掌握整個代碼細節了,以后也不好再去改。另外我自己的代碼風格比較強,重視代碼的效率和美感,別人的代碼摻進去后會破壞風格的統一性,令我不習慣。不過,如果你想自己修改代碼,或者寫一個新模塊來擴展Multiwfn的功能,遇到了技術問題,歡迎聯系我,我會盡可能提供幫助。

    Q:Multiwfn支持的操作系統平臺?
    A:最初是Windows。從2.2版本(不久就會發布)開始正式支持64bit Linux。不過,由于編譯環境不一樣,涉及到圖形庫版本問題,所以直接下載的編譯好的Linux版可能在一些老Linux系統中不一定能直接用,這就需要自行編譯,編譯方法在源代碼包里有詳細說明。應注意Linux版本性能并不比Windows版本更高。另外如果分析結果與Windows版本有異,可能是Linux版本的bug,此時應使用Windows版本的結果。Linux版本在功能上也略有限制,請注意參考手冊開頭的Linux users must read一節。

    Q:支持的量子化學軟件?
    A:Multiwfn的大部分功能是分析波函數的,因此需要讀入量子化學軟件輸出的載有波函數信息的文件。Gaussian是Multiwfn最主要支持的程序。對于其它程序,凡是能輸出wfn文件,或者能輸出molden輸入文件的程序(需要用Molden2aim轉換成wfn文件),都可以用Multiwfn分析,但少數依賴于基函數展開的分析功能,比如軌道成分分析,只有用Gaussian的fch文件作為輸入才可以。

    Q:支持多大體系?
    A:Multiwfn由Fortran90編寫,里絕大部分都是用動態數組,沒有內部限制,支持的波函數大小只取決于內存大小。為了編程方便,也有少部分用的是固定長度的數組,但由于預設尺寸足夠大,不會造成瓶頸。

    Q:Multiwfn的Logo是什么?全稱是什么?有什么來由?
    A:Logo就是手冊封面上以及官網頂頭的圖案。這個圖案實際上是Li6團簇的ELF函數圖,是藝術、自然與科學的結合,很合我意,因此被選用為Logo。Multiwfn是其標題A multifunctional wavefunction analyzer的簡寫。

    Q:如何引用Multiwfn?
    A:按照程序啟動時的說明進行引用即可。Multiwfn的介紹為文章現已被J. Comp. Chem接受,待刊登出后就可以引用此文章而不必引用網址了。另外,希望在你的文章被接受后能夠發給我一份,我將把你的研究文章列在Multiwfn的主頁上,可以增加你的文章被閱覽的次數,也能讓其它用戶知道Multiwfn的實用價值,互惠互利。

    Q:使用Multiwfn遇到障礙怎么辦?
    A:仔細查閱手冊,如果仍找不到答案,可以發電子郵件給我,也可以在小木蟲量子化學區的Multiwfn板塊里發帖,如果我看到肯定會回答。

    Q:你的另一個程序,GsGrid很久沒更新了,以后是否會合并進Multiwfn?
    A:作為一個處理格點數據的小程序,GsGrid到目前為止已經沒有太多改進余地了,重心就轉移到Multiwfn的開發上了。日后GsGrid將合并進Multiwfn,作為一個主功能出現。屆時GsGrid原有的功能全都會保留,并且與Multiwfn的一些模塊相互結合,將加入一些新的基于格點數據的分析功能。
    久久精品国产99久久香蕉