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

计算化学公社

 找回密码
 现在注册!
查看: 648|回复: 0

[建模与可视化] 使用Multiwfn结合VMD批量绘制轨道

[复制链接]

279

帖子

2

威望

1361

eV
积分
1680

Level 5 (御坂)

发表于 2018-8-19 13:52:27 | 显示全部楼层 |阅读模式
本帖最后由 让你变成回忆 于 2018-8-19 14:19 编辑

最近在论坛里见大家讨论如何绘制分子的静电势讨论得比较多,由于本人在论坛里获得了无数次的帮助,因此也分享一下自己平时画轨道(如分子轨道、NTO轨道等)的经验。

其实在sob老师的博文《使用Multiwfn观看分子轨道:http://sobereva.com/269》也仔细讨论了这个方法,不过我用的方法与sob老师的方法略有不同,尤其是在利用Linux版本的VMD批量绘制轨道图形的时候。因为平时用得较多的量化软件是Gaussian,因此这里Multiwfn的输入文件为Gaussian产生的fchk文件。

用到的文件及程序:
Gaussian产生的fchk文件;
VMD 1.9.3的Linux版本(no cuda版本);
Multiwfn3.5版本;

下面以画分子轨道为例进行演示。
首先是产生fchk文件,关于fchk文件,在sob老师的博文《详谈Multiwfn支持的输入文件类型、产生方法以及相互转换:http://sobereva.com/379》进行了详细说明。另外如果需要详细了解fchk文件里的内容,建议去读Multiwfn源代码中fileIO.f90源文件中的readfch子程序。
然后Multiwfn载入fchk文件,输入:
200
3     /Generate cube file for multiple orbitalwavefunctions
5,6  /在这里输入想要的轨道对应的编号,例如5,6分别对应HOMO,LUMO(这里的输入非常灵活,根据提示使用一遍就了解了)
3     /High quality grid, covering whole system,about 1728000 points in total  由于Multiwfn产生分子轨道的cub文件的速度非常快,所以我一般都是用High quality
1     /Output the grid data of these orbitals asseparate cube files  导为单独的cub文件以便后面利用VMD批量绘制

这样就产生了HOMO,LUMO所对应的cub文件,文件名分别为: orb000005.cub, orb000006.cub。我习惯的做法是把这两个文件改名为:orb-5.cub,orb-6.cub以便后面循环起来简单。

利用VMD导入orb-5.cub文件,然后进行如下设置(见图):
创建三个图层,图层1在Drawing method中选择CPK用于显示分子,图层2和图层3分别绘制isovalue为正、负所对应的isosurface,isovalue我一般用0.02与-0.02。一定要把Draw和Show改为图示的Solid Surface和Isosurface。这样在VMD的Display窗口就显示了所绘制出的轨道图形。然后在VMD的main窗口中选择File->Save visualization State,保存为orb-5(注意:这里没有任何后缀,文件名之所以选择与cub文件相同,也是为了方便后面的处理)。

然后把orb-5这个可视化态的文件上传到Linux下(与之前产生cub文件的目录相同),然后对orb-5这个文件进行如下修改:
在文件的任意位置加入:axes location off (这里不清楚是为什么,即使我在前面使用取消了显示xyz轴,但是这里仍然没有这个命令,需要自己手动加上)
然后在vi的命令模式下/orb-5定位到orb-5.cub这一行,修改其路径,一般直接删除前面的路径,仅仅留下orb-5.cub就行(注意:orb-5.cub这样的行有两行,因此需要修改两个地方)。然后跳到文件的末尾,加上下面这一行:
render Tachyon orb-5.dat "tachyon -aasamples 12 orb-5.dat–res 1200 900 –format BMP –o orb-5.bmp"
PS:要用Tachyon这个命令,需要VMD正确安装

这样,VMD可视化的模板文件就已经准备好了。然后把这个模板文件进行复制、修改。例如这里还需要绘制orb-6,就cp orb-5 orb-6,然后编辑orb-6,把这里面的所有orb-5替换成orb-6即可,即在vi的命令模式下输入:1,$s/orb-5/orb-6/g
接下来就可以利用VMD产生对应轨道的bmp图片文件了。命令为:vmd < orb-5

如果想批量处理,可以写一个shell脚本,内容如下
#!/bin/bash
for inf in *.cub
do
         vmd< ${inf%.cub}
done
然后执行之便可产生该目录下所有cub文件所对应的轨道的bmp图片。

总结:这是我绘制轨道的方法,我一般是把cub文件、可视化文件均命名为相同的名字,以方便批量处理。可能有些地方可以使用脚本处理更为简洁方便(比如如何得到每个cub文件所对应的可视化态文件)
这样比起Gaussview绘制轨道最大的好处在于分子的朝向是完全一样的(因为用Gaussview的时候我经常一不小心就会改变分子的朝向)。而且轨道图像完全可以根据自己的喜好进行各种设置。

至于其他的轨道,如做激发态常用的NTO轨道,首先是要得到对应的fchk文件,然后基于fchk文件,剩余的操作就和文中完全一致。

如大家有更好的建议,欢迎指出。

PS:这种方法是跟组里的一个师兄学的,非常感谢!











VMD.png

评分

参与人数 1威望 +1 收起 理由
sobereva + 1

查看全部评分

您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2018-11-17 07:19 , Processed in 0.109826 second(s), 30 queries .

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