请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 8420|回复: 12

[Multiwfn资源与经验] 使用Multiwfn观看分子轨道

[复制链接]

1万

帖子

16

威望

1万

eV
积分
24760

管理员

公社社长

发表于 2014-12-16 05:33:56 | 显示全部楼层 |阅读模式
使用Multiwfn观看分子轨道

文/Sobereva(3)
First release: 2014-Dec-16  Last update: 2017-Mar-25



0 前言

能看分子轨道的程序极多,特别是gview是Gaussian用户观看分子轨道用得最多的程序。Multiwfn (http://sobereva.com/multiwfn)也具有观看分子轨道的功能,不仅速度是最快的、操作是最方便的,还有很多其它程序不具备的特点,如果结合VMD使用还可以绘制出效果很好的图像。此文就介绍Multiwfn的观看分子轨道的功能。也有很多人已经用过Multiwfn的这个功能了,在此文中还会介绍一些使用技巧,相信这部分用户看了之后也会受益。

本文的方法还可以用于看其它类型的轨道,如自然轨道、自然跃迁轨道、定域化轨道等等,输入文件里存的是什么轨道看到的就是什么轨道。关于观看NBO程序产生的各种轨道,在另一个帖子有专门介绍,此文不做涉及:《使用Multiwfn绘制NBO及相关轨道》(http://sobereva.com/134)。

如果没听说过Multiwfn,建议看看
Multiwfn入门tips
http://sobereva.com/167
Multiwfn波函数分析程序的意义、功能与用途
http://sobereva.com/184

本文使用的是Multiwfn 3.4 Windows版。Multiwfn也有Linux和MacOSX版,操作基本一致。


1 支持的输入文件

对于观看轨道的目的,如果是Gaussian用户,就用fch作为输入文件。如果是ORCA、molpro、deMon2k、BDF的用户,用.molden作为输入文件。如果不知道怎么生成这些文件的话,参见Multiwfn手册第四章开头。

也有很多其它程序能生成.molden文件,比如Molcas、CFour、Turbomole、PSI等,这些程序生成的.molden文件不标准,ORCA计算时若涉及到f以上角动量函数的话产生的.molden文件也不标准,对于这些情况需要先用molden2aim程序将之转换成标准的.molden文件,做法见Multiwfn手册5.1节。

Multiwfn做波函数分析时也经常用.wfn和.wfx文件,但是这样的文件不包含空轨道。如果你的目的只是看占据轨道,用这两种文件作为输入也是没问题的。



2 用主功能0直接看轨道

启动Multiwfn,输入文件名(比如d:\test.fch),然后输入0,就会蹦出图形界面。同时会看到文本窗口中显示了原子坐标,还直接显示了HOMO、LUMO能量和gap,如下所示
Note:  Orbital    21 is HOMO, energy:   -0.246291 a.u.   -6.701930 eV
          Orbital    22 is LUMO, energy:    0.003620 a.u.    0.098512 eV
          LUMO/HOMO gap:    0.249912 a.u.    6.800442 eV    656.143012 kJ/mol

在图形界面中,直接点右下角的列表里的序号,就立刻显示出轨道图形,方便至极!图中绿色和蓝色分别代表轨道相位为正和为负的部分。同时在文本窗口中还显示了这条轨道的能量、占据数和轨道类型。
1.png

如果想挨个看轨道,也可以不用鼠标点击轨道编号,而直接用键盘的上下键切换。


由于Multiwfn本身代码效率颇高,还做了并行化,对于较大体系(或基组很大)的情况比用gview看轨道快一个数量级以上,而且轨道生成的进度直接用进度条显示,用户能够心里有数。

Isovalue那个滑动条是用来调节等值面数值的,默认的0.05比gview默认的0.02要大,因此默认情况下等值面范围比gview里看到的要小。怎么设isovalue是随意的,只要能让图形充分展现出轨道特征就行。

利用图形界面右上方的按钮可以调节视角,点Return就可以返回Multiwfn主菜单。点Save picture就会把图像保存到当前目录下。图像的尺寸和格式可以分别用settings.ini里的graph3Dsize和graphformat调整。(改过后重启Multiwfn才生效)

图形界面上"Show labels"复选框可以控制是否显示原子的标签,"Show axis"控制是否显示坐标轴。如果选中"Show+Sel.isosur#2"复选框,那么在轨道列表中点击两个轨道,就可以让两条轨道都显示出来。第二个选中的轨道用黄绿色代表正相位,紫色代表负相位。

通过"Bonding threshold"滑条可以控制图中原子间成键的阈值。设为比如1.15就代表两个原子间距离如果小于它们的共价半径和的1.15被就认为成键。"Ratio of atomic size"设置图中原子球的大小,如果设为4.0,则原子球半径将恰等于原子的bondi范德华半径,如果设为0,则相当于不显示原子球。"Radius of bonds"设定键的粗细,设为0的话就不显示键了。"Size of atomic labels"设定原子标签的大小。

如果想修改原子标签的颜色或修改键的颜色,分别调节settings.ini里的atmlabRGB和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:\temp\color.txt代表从C:\temp\color.txt文件中读取原子的色彩设定,此文件需包括每个元素色彩的红、绿、蓝分量。建议大家直接基于examples目录下的模板文件element_color.txt来修改,想调节哪个元素的颜色就修改哪个元素即可,其它的不用动。

图形窗口上方中,点击Orbital info.--show all,在文本窗口中就会一目了然地输出所有轨道的信息。例如:
Orb:    19 Ene(a.u./eV):    -0.340271      -9.2592 Occ:  2.000000 Type: A+B
Orb:    20 Ene(a.u./eV):    -0.246291      -6.7019 Occ:  2.000000 Type: A+B
Orb:    21 Ene(a.u./eV):    -0.246291      -6.7019 Occ:  2.000000 Type: A+B
Orb:    22 Ene(a.u./eV):     0.003620       0.0985 Occ:  0.000000 Type: A+B
Orb:    23 Ene(a.u./eV):     0.003620       0.0985 Occ:  0.000000 Type: A+B
显示了a.u.和eV为单位的所有轨道能量、占据数和自旋类型。此例A+B就是Alpha+Beta,即闭壳层轨道。从这里也可以立刻看出21和22号分别是HOMO和LUMO,20是HOMO-1,23是LUMO+1。实际研究中往往需要一次性把轨道能量都拷贝出来作为一列数据,按照手册5.4节的方法,把文本窗口中轨道能量这列选上然后一复制即可做到这一点,极其方便!

窗口上方中,点击Isosur#1 style菜单可以选择等值面显示风格,包括5种:固态(solid face)、网格(mesh)、透明(transparent)、固态+网格(solid face+mesh)、点(points),如下所示
2.jpg


并且菜单中有选项用于调节固态表面颜色、网格/点颜色以及透明度。当利用"Show+Sel.isosur#2"复选框同时显示了两条轨道时,可以用Isosur#2 style菜单里的选项调节第二条轨道的等值面设定。

点击轨道编号直到显示出等值面的过程中,实际上Multiwfn会先计算出相应的轨道波函数在整个空间中的格点数据,然后再基于格点数据根据一定算法产生等值面。格点数据的格点间距越小,或者说格点数越多,等值面越精细,但计算耗时也越长。格点数在Multiwfn里是固定的,默认的格点数对于中小体系而言是足够的,等值面比较平滑,计算量也不大。但是如果体系比较大,你发现等值面变得有棱有角,说明此时格点数不够大,为了改善图像质量应当增加格点数。做法是在图形窗口上方选择Isosur. quality,然后输入一个比默认值更大的值,然后再次点击一个轨道就可以生效了。如果想免得每次用Multiwfn时都调整的话,也可以直接在settings.ini里把nprevorbgrid改大。

个别时候,等值面显示效果不太好,比如颜色太暗,或者有一些暗块。这种情况下,要么把显示方式改成其它的,要么选择窗口上方的"Set lighting"来调整光源。有5个光源,默认时前3个是开启的。如果选Enable all则等值面就会全白,如果选Disable all就会变黑,单击其中某个光源可以切换它的开启状态,选过之后在命令行窗口会显示当前光源的设定状况。经过光源的调节,以及视角旋转,多数情况下总能得到满意的等值面。(多开几个光源让等值面亮一些,同时用solid face+mesh把网格也显示上去,效果往往不错)

如果波函数是非限制开壳层的话,alpha轨道和beta轨道是独立的。它们的编号在Multiwfn中是连在一起的,如果有x个基函数,那么前x个轨道都是alpha,后x个都是beta。在程序一开始读取输入文件后,在屏幕上也会显示汇总信息,有诸如这样的提示:
Orbitals from       1 to    19 are alpha, from      1 to     6 are occupied
Orbitals from     20 to    38 are beta,  from    20 to    23 are occupied
这里也明确告诉了你哪些轨道是alpha和beta。比如要看第8条alpha轨道,在图形窗口里直接选8即可。如果要看第7条beta轨道,由于这里前19条轨道是alpha,因此应该选择19+7=26号轨道。

个别情况下,可能是屏幕分辨率等原因,Multiwfn的主功能0的图形窗口显示不全,轨道列表看不到,这个时候可以把settings.ini里的imodlayout设为1改用另一种界面布局避免此问题,效果如下
3.png


Linux/MacOSX版和Windows版的主功能0的界面在布局上有轻微差别。主要一个差别是刚进入主功能0后,窗口里不会显示任何内容,而必须经过任意一个操作,比如旋转视角后才会出现内容。

如果嫌载入文件时输入路径比较费事,也有很多快速载入的方法,见《将文件快速载入Multiwfn程序的几个技巧》(http://sobereva.com/237)。



3 显示轨道中指定原子贡献的部分

有时候出于特殊目的,只想显示轨道中指定的原子所贡献的部分而屏蔽其它部分,这用其它可视化程序是做不到的,但是在十分灵活的Multiwfn中可以直接实现。比如只想保留2、3、5、6号原子的贡献,那么在主菜单中选择-3 Obtain a fragment contribution to property,输入2,3,5,6,这就会把所有轨道在其余原子上的展开系数都清零。然后再进入主功能0显示轨道时,就会发现其余原子上等值面都消失了。下图左侧是原先的轨道,右侧是只保留2、3、5、6号原子贡献时的情况。

4.jpg

注意,这种获得指定原子贡献的方法不适合用了含有弥散函数的基组的情况(但有另外的办法,稍复杂点)。实际上,不光是显示分子轨道,这么操作之后对于接下来任何基于实空间函数(如电子密度、ELF)的各种分析和绘图也都会产生相应的影响。这个操作是不可逆的,如果想要恢复初始状态,必须重启Multiwfn重新载入文件。主菜单的-4 Exclude some atoms contribution to property和上面用的选项-3是相反的,在这个选项里选定的原子的贡献都会被排除。



4 绘制分子轨道的曲线图和平面图

使用Multiwfn可以十分方便地绘制轨道波函数在一条直线和一个平面上的图形。下图是程序自带的examples\ethane.wfn文件中第7号轨道
5.jpg

我们来绘制这个分子轨道波函数在1-5号原子连线上的变化。启动Multiwfn,依次输入
examples\ethane.wfn
3   //绘制曲线图
4   //绘制轨道波函数
7   //第7号轨道
0   //调整延展距离。默认的值偏小,曲线图两侧会被明显截断
4   //延展距离为4Bohr
1
1,5   //用1、5号原子核的连线定义直线
然后马上得到了下图

6.png

曲线清楚地展现了第7号分子轨道波函数值是如何在1-5号原子连线上变化的。下方X轴上的两个小圆点代表1、5号原子核的位置。在图上点右键关闭它后,可以看到很多选项可以用来调节作图效果,玩玩就明白了,这里就不一一累述了。Multiwfn手册里有不少绘制曲线图的例子,参看手册4.3节。

然后我们绘制7号分子轨道在X=0的YZ平面上的等值线图。这个平面就是穿越6-5-1-2的平面。启动Multiwfn然后输入
examples\ethane.wfn
4   //绘制平面图
4   //绘制轨道波函数
7   //第7号轨道
2   //等值线图
[按回车]
3   //YZ平面
0   //X=0
立刻得到下图
7.png

同样,在关闭图像后,后处理菜单可看到极为丰富的调节作图设定的选项。Multiwfn也能绘制填色图、地形图、梯度线图等其它类型的平面图。参见手册3.5节的介绍和手册4.4节的大量实例。



5 产生轨道波函数的cube文件

Multiwfn虽然能在主功能0里方便地看轨道等值面图,但这个功能的最初设计目的只是为了用户在研究过程中能方便地看轨道。如果要求更好的显示效果、能够灵活地调节视角,建议将轨道波函数导出为cube文件,然后再用第三方更专业的可视化程序观看,其中最推荐的是VMD(http://www.ks.uiuc.edu/Research/vmd/),不仅免费而且效果很好,选项极为灵活,是Multiwfn最好的搭档。

导出分子轨道cube文件有两种做法,第一种就是用主功能5,这是Multiwfn中标准的计算实空间函数格点数据以及输出cube文件的功能。例如导出第30号轨道的cube文件,启动Multiwfn后输入
examples\AdNDP\B11-.fch
5
4
30  //30号轨道
2   //这里用中等质量格点,约512000个点。如果是大体系,建议用高质量格点
很快就算完了。选-1可以直接观看等值面,选2可以将格点数据导出到当前目录下的MOvalue.cub里面。

不过,如果要考察一大批轨道,对那么多轨道挨个做一遍上述操作分别导出为cube文件过程会比较繁琐,而且那么多cube文件看着也乱,在VMD里每看一个轨道还得载入一个cube文件也很不方便。为此,Multiwfn专门提供了一个选项,不仅可以一次性导出一大批轨道的cube文件,还可以把一大批轨道的格点数据存到同一个cube文件里,这样在VMD里看轨道就十分方便了。比如,我们把20、23以及25到30号MO全都导出到单个cube文件里,启动Multiwfn后输入
examples\AdNDP\B11-.fch
200
3   //导出一批轨道的cube文件
20,23,25-30
2   //中等质量格点
2   //选中的轨道的格点数据导出到单一cube文件里
几秒钟Multiwfn就都算完了,结果导出到了当前目录下的orbital.cub里了。



6 用VMD看轨道

本文用的是VMD 1.9.1。这里我们用VMD观看上一节生成的记录了20、23以及25到30号MO的cube文件。

启动VMD,然后把orbital.cub直接拖到VMD Main窗口里,选择Display-Representation,把当前默认的显示方式的Drawing Method改为CPK,把Sphere Scale调小点免得过多地挡着轨道等值面。然后点击Create Rep新建个显示方式,Drawing Method设为Isosurface,然后Isovalue设为0.03,Draw设为Solid Surface,Show设为Isosurface,Coloring Method设为Color ID,旁边的下拉框中选择自己喜欢的作为轨道波函数正相位的颜色,比如红色。假设我们想看的是第27号轨道,就点击Vol旁边的下拉框,选择对应Orbital 27的那一项。现在,轨道的正相位部分就很好地显示出来了。然后再增加一个显示方式来显示它的负相位,也就是点击Create Rep,然后把新出现的显示方式的Isovalue设为-0.03,把色彩改为比如蓝色。此时这个轨道就完整地显示出来了。当前的VMD的显示方式设定窗口应当是这样:

8.png

文献插图通常需要白背景,将默认的黑背景改为白色的做法是选择Graphics-Colors-Display-Background-White。然后我们去掉默认显示的坐标轴,选VMD Main窗口中的Display-Axes-Off。最后保存图像,最好最省事的做法是先在图形窗口里调整好视角,然后选File-Render,下拉框里选Tachyon (internal, in-memory rendering),然后点Start Rendering,得到下图。(如果打不开渲染出的tga文件,强烈建议用小巧、方便、强大的IrfanView图像浏览器并将之作为默认的看图工具,下载地址http://www.irfanview.com
9.jpg

如果想切换到其它轨道,比如20号轨道,就选择对应正相位的显示方式,把Vol旁边的下拉框选择成相应的,然后再选择对应负相位的显示方式,也把Vol旁边的下拉框选择为相应的。

或许有人觉得用VMD看轨道有点麻烦,每次都得重做那么一大套设定,其实这是可以避免的。在你完全设定好观看等值面的显示方式后,选择Extensions-Visualization-View Master,然后点Create New,再选File-Save as,然后保存为比如ViewMO.tcl,这个文件里就包含了你之前调节显示方式的每一步操作。下回再想看轨道等值面的时候,只需在VMD里选择File-Load visualization state,然后选择那个.tcl文件,之前的显示方式设定就会完全恢复。不过,如果你的cube文件路径和之前的不同,应该用文本编辑器打开那个.tcl文件,将第五行的cube文件路径改为实际的。另外,如果cube文件内容发生了变化,通过载入.tcl恢复显示方式后,等值面可能并没有在图形窗口中出现,此时稍微调节一下设定即可,比如改一下Isovalue,或者把Step从默认的1改为2,等值面就又出现了,然后再把设定改回去即可。

gview里看轨道时没法自己设定成键方式是很令人诟病的一点。gview自动判断的成键往往不合理,但是一旦修改了成键方式,轨道又看不了了。用VMD可以很好地解决,只需选择Moues-Add/Remove bonds,然后点击两个原子,即可增加或取消成键,同时不影响等值面。但是选择两个原子后原子上会出现标签,去掉的方法是选Graphics-Labels,选中其中所有项目,点delete。

如果是第一次用VMD,强烈建议多玩玩它的各种选项,会发现它惊人地灵活。


7 总结

直接使用Multiwfn的主功能0看轨道最方便,导出cube文件结合VMD来作图则效果最好而且最为灵活。对于较大的体系,用Multiwfn可以使研究效率加快很多,而且可能Multiwfn结合VMD都作出好多张漂亮的分子轨道图了,而gview连一个轨道还没算完呢!用熟了Multiwfn和VMD,一定再也不想用gview看轨道的功能了。(PS:自从开发了Multiwfn,笔者就再也没用过gview来看轨道)

评分

参与人数 10eV +34 收起 理由
ZBC + 4 精品内容
张福荔 + 2 谢谢
zsu007 + 5 赞!
jingyubo + 4 谢谢
king + 3 谢谢
bomsaude + 5 赞!
卡开发发 + 5 赞!
diaolanxinyu + 4 辛苦了,继续学习中!
chanyu1990 + 1 牛!
captain + 1 好物!

查看全部评分

北京科音自然科学研究中心:http://www.keinsci.com  不定期开办各层次量子化学、分子动力学、Multiwfn程序培训
思想家公社的门口Blog:http://sobereva.com
Multiwfn量子化学波函数分析程序主页:http://sobereva.com/multiwfn
计算化学公社论坛:http://bbs.keinsci.com
思想家公社QQ群1号:18616395,2号:466017436。用于讨论理论、计算化学,两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明研究方向,否则一概不批。

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

118

帖子

0

威望

1454

eV
积分
1572

Level 5 (御坂)

发表于 2014-12-16 09:52:33 | 显示全部楼层
太漂亮了。

311

帖子

2

威望

1344

eV
积分
1695

Level 5 (御坂)

发表于 2014-12-16 09:57:34 | 显示全部楼层
非常棒的总结:D。

311

帖子

2

威望

1344

eV
积分
1695

Level 5 (御坂)

发表于 2014-12-16 11:02:14 | 显示全部楼层
VMD能否将两个原子连成键?,GV貌似不行

311

帖子

2

威望

1344

eV
积分
1695

Level 5 (御坂)

发表于 2014-12-16 11:08:04 | 显示全部楼层
jiangning198511 发表于 2014-12-16 11:02
VMD能否将两个原子连成键?,GV貌似不行

在看分子轨道的时候

1万

帖子

16

威望

1万

eV
积分
24760

管理员

公社社长

 楼主| 发表于 2014-12-16 17:10:47 | 显示全部楼层
jiangning198511 发表于 2014-12-16 11:02
VMD能否将两个原子连成键?,GV貌似不行

Mouse-Add/Remove bonds
北京科音自然科学研究中心:http://www.keinsci.com  不定期开办各层次量子化学、分子动力学、Multiwfn程序培训
思想家公社的门口Blog:http://sobereva.com
Multiwfn量子化学波函数分析程序主页:http://sobereva.com/multiwfn
计算化学公社论坛:http://bbs.keinsci.com
思想家公社QQ群1号:18616395,2号:466017436。用于讨论理论、计算化学,两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明研究方向,否则一概不批。

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

7

帖子

0

威望

90

eV
积分
97

Level 2 能力者

发表于 2014-12-19 09:37:10 | 显示全部楼层
前排好顶赞~

117

帖子

0

威望

1088

eV
积分
1205

Level 4 (黑子)

发表于 2014-12-29 22:31:01 | 显示全部楼层
sobereva老师辛苦了!

继续收藏学习中....

22

帖子

0

威望

288

eV
积分
310

Level 3 能力者

发表于 2015-3-21 07:36:22 | 显示全部楼层
学习,顶起

20

帖子

0

威望

86

eV
积分
106

Level 2 能力者

发表于 2015-6-26 10:46:07 | 显示全部楼层
终于 会连键了

2

帖子

0

威望

25

eV
积分
27

Level 2 能力者

发表于 2015-10-19 08:20:27 | 显示全部楼层
sobereva老师辛苦了!

继续收藏学习中....

7

帖子

0

威望

21

eV
积分
28

Level 2 能力者

发表于 2017-2-22 18:36:43 | 显示全部楼层
赞赞赞!!

4

帖子

0

威望

51

eV
积分
55

Level 2 能力者

发表于 2017-7-12 15:26:45 | 显示全部楼层
学习了 谢谢sob老师
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

Archiver|手机版|小黑屋|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2017-10-24 12:04 , Processed in 0.103945 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表