使用Multiwfn+VMD快速绘制高质量分子轨道等值面图(含视频)

注:本文配有演示视频,请认真观看,见https://www.bilibili.com/video/av34024335/


使用Multiwfn+VMD快速绘制高质量分子轨道等值面图

文/Sobereva@北京科音  2018-Oct-17


1 前言

数年之前,笔者写过一篇文章《使用Multiwfn观看分子轨道》(http://sobereva.com/269),其中十分详细介绍了怎么用Multiwfn自己的观看轨道的界面看轨道等值面图,以及如何绘制轨道的曲线图和平面图,也同时介绍了怎么把Multiwfn计算的轨道波函数的格点数据导出成cube文件,然后放到强大的VMD可视化程序里来获得更好的显示效果。那篇文章虽然对Multiwfn和VMD联用讲得非常清楚详细,但一些接受能力差的人和比较懒的人可能还是不愿意尝试用Multiwfn+VMD的组合去绘制轨道。本文的目的是介绍如何利用脚本,将Multiwfn+VMD联用绘制轨道的过程变得极尽方便。这种绘制方法比起常用的GaussView绘制轨道有极大的优势:(1)完全免费 (2)效果完爆GaussView (3)耗时远远低于GaussView(对大体系,本文的做法花的时间比用GaussView少两个数量级甚至更多)。相信读者花几分钟看过本文和演示视频后,就再也不想用GaussView看轨道了。

本文使用2018-Oct-17更新的Multiwfn 3.6(dev)版,绝对不要用更老的版本。Multiwfn可以在其主页http://sobereva.com/multiwfn免费下载,如果对Multiwfn不了解的话强烈建议阅读《Multiwfn入门tips》(http://sobereva.com/167)。VMD用的是1.9.3版,可以在http://www.ks.uiuc.edu/Research/vmd/免费下载。对于目前撰文时最新的Multiwfn 3.6(dev)版而言,各种量子化学程序产生的.fch/fchk和.molden文件以及GAMESS-US或Firefly程序的输出文件都可以作为输入文件来用Multiwfn看轨道,简单来说只要是能向Multiwfn提供基函数信息的文件都可以用,详见《详谈Multiwfn支持的输入文件类型、产生方法以及相互转换》(http://sobereva.com/379)。本文假定用户用的是Windows系统,笔者用的系统为Win7-64bit。在Linux系统下也可以类似地按照本文的做法快速地用Multiwfn+VMD绘制轨道,举一反三即可。


2 准备工作

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

showorb.bat是Windows下的批处理文件。用户要对它进行编辑,把里面的1.fch改成实际的输入文件名(如果输入文件就在当前目录下,就写文件名就行了,路径不需要写),并且把里面的VMD的路径改成你机子里VMD的实际路径。

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://sobereva.com/269)的话强烈建议一看,以了解其中细节,便于根据需要调整作图效果。

对于非限制性开壳层体系,在Multiwfn中beta轨道序号是排在alpha轨道之后的,因此修改showorb.txt的时候也得对应去设,详见《使用Multiwfn观看分子轨道》里的说明(图省事的话,可以在Multiwfn主功能0的界面里输入比如-30来查看第30号beta轨道对应的Multiwfn中的序号)。

VMD的一个缺点是没有自带的显示原子序号的功能(至少是对目前撰文时最新的1.9.3版而言),不过可以用我写的脚本来显示,见《在VMD中显示原子序号的方法》(http://sobereva.com/197)。虽然显示效果不算很理想,但自己ps一下也没什么难的。

如果想获得更好的效果,强烈建议用Tachyon渲染器渲染,对某些材质显示的效果比直接在VMD图形窗口里看到的会更好,而且有抗锯齿的效果。Tachyon的使用方法在《用Multiwfn+VMD做RDG分析时的一些要点和常见问题》(http://sobereva.com/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://sobereva.com/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命令看了。

如果不理解本文用到的批处理文件是如何工作的,看Multiwfn手册5.2节关于silent方式运行Multiwfn的说明。

PS:如果以本文方式绘制了分子轨道,请记得引用Multiwfn程序一启动时就显示的J. Comput. Chem.原文。

评论已关闭