Multiwfn入门tips
文/Sobereva @北京科音
First release: 2012-Nov-7 Last update: 2021-Feb-27
0 前言
Multiwfn(主页为http://sobereva.com/multiwfn)是由北京科音自然科学研究中心(www.keinsci.com)的卢天从2009年11月起主导开发的最为强大的量子化学波函数分析程序,功能极为广泛、十分高效、非常易于使用,并且开源免费,用户已遍及全世界多达70多个国家,截止到2020年10月已被超过6000篇研究论文所使用,包括Science、Nature、Nature Chemistry/Materials/Energy/Photonics、JACS、Angew、PNAS等顶尖刊物。Multiwfn也被很多顶尖理论化学工作者如Truhlar、Grimme、Perdew、Morokuma、Shaik、Houk、Frank Neese等人的文章使用。在J. Comput. Chem.上的Multiwfn程序原文是迄今中国发表的所有论文(不限学科)中被引次数最高的10篇之一。Multiwfn在实际应用性量子化学的研究中价值巨大,很多情况都必不可少。
写本文的目的是帮助刚接触Multiwfn的人能够在短时间内了解Multiwfn的基本特点以及如何上手。但此文并不讲解程序操作过程和原理,因为这些内容已经在笔者的无数博文、程序手册里有详尽描述和示例。本文着重谈一下应该怎么上手和学习Multiwfn,读者将会明白Multiwfn虽然功能极其强大,但使用根本没有什么门槛,学习Multiwfn也超级容易!与此同时也提及一些计算化学基础薄弱的用户在使用Multiwfn时可能会忽略的要点或困惑的问题。
如果你不知道Multiwfn是干什么的话,建议先看《Multiwfn波函数分析程序的意义、功能与用途》(http://sobereva.com/184),这里面对Multiwfn的功能和用途进行了较系统的介绍。笔者强烈建议在看完此文后大致阅览一遍《Multiwfn FAQ》(http://sobereva.com/452),各方面常见问题在里面都做了汇总。
1 对使用者的要求
对于量化初学者,Multiwfn当成一个工具作为黑箱来用也可以,但是我还是建议使用者具备一些最基本的理论知识,这样才能避免犯低级错误,才能更透彻地理解程序原理和输出信息的物理意义。使用者只要参加过北京科音办的初级量子化学培训班,或仔细读过Levine的Quantum chemistry,或具有相同级别的知识,就已经足够了,结合手册中对各个功能的理论的讲解,就完全能够理解Multiwfn涉及的全部功能的原理了。
Multiwfn是基于量子化学程序输出的波函数信息来进行分析的程序。如果你是Gaussian程序的用户,那么可以使用Multiwfn的全部功能。但Multiwfn程序绝非是专为Gaussian而开发的,Multiwfn支持许多通用的记录波函数信息的格式,如.mwfn、.wfn、.wfx、molden文件,还支持GAMESS-US输出文件,还支持其它类型文件如.cub、.pdb、.xyz等。只要你用的量化程序能输出molden输入文件(如Molpro、ORCA、NWChem、deMon2k),或者能输出.fch文件(如PSI4、Q-Chem),或者你是GAMESS-US/Firefly的用户,那么就能用上Multiwfn的绝大部分功能。如果你只能得到.wfn/.wfx文件,也至少能利用Multiwfn的半数以上的功能,例如AIM分析、ELF等实空间函数的分析和绘图等等。如果你是第一性原理的研究者,只用VASP、CASTEP、CP2K之类的程序,那么Multiwfn中依赖于波函数的功能都暂时帮不上你(但是只需要提供几何结构的分析功能照样能做,如IGM分析)。笔者以后预计会开发专门面向第一性原理的程序的波函数分析程序。
关于Multiwfn支持的输入文件的具体说明以及产生的方法,在此文有详述《详谈Multiwfn支持的输入文件类型、产生方法以及相互转换》(http://sobereva.com/379)。
绝大部分Multiwfn的功能运算效率都很高,而且支持并行,在普通个人双核机子上运行就已经挺快了,除非研究的体系很大,或者用了很大的基组,或者跑那些个别特别耗时的分析任务,否则没必要非要弄到服务器上去执行。
2 程序的下载、安装、执行
Multiwfn的可执行文件、源代码和手册在Multiwfn官网的Download栏目里可直接下载。文件名上带bin的是已编译好的含有可执行文件的包,src代表源代码文件包,manual是手册。
在主页的Update history栏目中可以看到最新版本更新了哪些内容。在每个正式版本发布之前,通常也把正在开发的临时版本,即后缀带(dev)的挂在这个栏目上。临时版本未经全面测试,手册也没写全,但是已经实现了更新历史上提到的最新功能和改进。如果想尝鲜可以试试。
Multiwfn更新很频繁。新版本中总会不断添加新的有用的功能、改善界面设计使之更好用、修正各种bug、提升运行效率。我强烈建议时常查看Multiwfn主页,更新到最新版本。老版本的一些bug可能造成结果是错的,但是没有经验的用户又察觉不出来,这种情况甚至有可能使文章的研究的结论有误,这将是很大问题。所以,即便新版本的新功能用不到,也应当勤快更新至最新版本。我强烈建议用户按照此帖的方式通过电子邮件自动接收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
Windows版Multiwfn程序解压后双击Multiwfn.exe图标即可启动。如果是Linux/MacOS版则应当先分别按照手册2.1.2、2.1.3节对系统进行配置,笔者还提供了Linux下安装过程的完整视频演示:https://www.bilibili.com/video/av41402462/。解压后目录下的settings.ini里包含了各种运行参数,这些参数在Multiwfn启动时会被载入,这些参数平时使用时一般不需要修改。各个参数在文件中的//后面的注释中都有说明,大部分参数的用处在手册中会更详细地解释。这些参数中特别关键的一个是nthreads,当它设为n,则Multiwfn中并行化的代码部分运行时就会使用n个线程进行并行运算。如果你有较多的CPU核心,可以将它设大