回答一些关于Multiwfn的疑问以及未来Multiwfn的发展打算

PS:这是很久以前写的,里面的内容半数都过时了


回答一些关于Multiwfn的疑问以及未来Multiwfn的发展打算

Answer some questions about Multiwfn and future development plan of 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://sobereva.com/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的一些模块相互结合,将加入一些新的基于格点数据的分析功能。