|
本帖最后由 smutao 于 2021-5-8 23:37 编辑
1. 前言
在之前的“使用PyVibMS可视化分子和固体中的振动模式”一文中( http://bbs.keinsci.com/thread-22835-1-1.html), 笔者介绍了
PyVibMS插件的基本使用方法。目前对于量子化学程序计算的分子体系,PyVibMS已经可以原生支持高斯、ORCA、xtb和Q-Chem
四款主流软件(见http://bbs.keinsci.com/thread-22955-1-1.html). 然而对于CFOUR、MOLPRO、BDF等较少使用的量子化学程序计算的
振动分析的结果,PyVibMS支持通过先载入XYZ坐标文件、再载入mode文本文件的方式进行振动可视化。其中,mode文本文件
的准备可能需要用户有一定的脚本编写水平。
本文介绍一种不需要用户编写脚本制作mode文件就可以对非主流量子化学程序计算得到的振动分析结果进行可视化的方法。
此方法的基本原理是先利用UniMoVib程序读取量子化学计算程序给出的Hessian矩阵信息,然后生成可以让PyVibMS读取的
统一格式的XYZ和mode文件,最后将这两个文件载入PyVibMS即可。
UniMoVib是一款可以从近30种量子化学计算程序中读取Hessian、坐标等数据计算谐振频率和(可选)红外强度的Fortran程序。
可以将它理解成一个加强版的freqchk程序。目前UniMoVib的代码、手册和例子文件在GitHub上托管(https://github.com/zorkzou/UniMoVib).
2. UniMoVib的安装
前往UniMoVib的GitHub页面后点击Code->Download ZIP 下载压缩包到本地后解压得到UniMoVib-master文件夹。Windows系统下可以直接
打开win32文件夹的可执行文件运行代码,下面介绍Linux和Mac系统的安装方法。
打开终端窗口,进入UniMoVib-master文件夹后输入
- cd src
- mkdir object
- which gfortran
复制代码 如果此时返回了gfortran相应的路径,则说明Fortran编译器已经安装了。接着输入
则可以编译代码,在UniMoVib-master文件夹中得到一个名为unimovib.exe的可执行文件。
3. 例子
本文相关的实例文件可以在PyVibMS的GitHub档案中下载(https://github.com/smutao/PyVibMS/).
3.1 CFOUR
CFOUR是一款主打耦合簇方法的量化计算程序,目前最近的版本号为2.1. 社长sob老师曾写过一篇关于CFOUR程序使用的文章(http://sobereva.com/150).
本例的文件位于PyVibMS文件夹的 examples/with-UniMoVib/CFOUR目录下,其中ZMAT为水分子振动分析的输入文件,h2o.out是
CFOUR计算的输出文件(包含了Hessian信息), GRD输出文件包含了分子结构信息和每个原子的梯度分量(梯度应该接近为0).
接着我们编写 UniMoVib的输入文件 job.inp
- H2O without symmetry
- $contrl
- qcprog="cfour"
- ifpyvibms=.true.
- $end
- $qcdata
- fchk="h2o.out"
- geom="GRD"
- $end
复制代码 CFOUR主输出文件和GRD文件是UniMoVib在处理CFOUR输出时必备的。为了后面让我们使用PyVibMS查看分子振动,
ifpyvibms这个选项需要设置为 .true. . 接着我们运行UniMoVib
一路回车就可以得到job.out 输出文件了。job.out输出文件给出了所有振动的频率、对称性、振动模式矢量、红外强度(可选)以及热力学量。
此外,UniMoVib还产生了system.xyz 和 pyvibms_mode_full.txt 两个文件。
我们打开PyMOL程序并运行PyVibMS插件,然后在 Input File处载入刚刚得到的 system.xyz 文件,接着在Mode File处载入pyvibms_mode_full.txt文件,
这样CFOUR计算得到的振动结果就可以可视化了。PyVibMS界面的设置可以见下图。
3.2 Molpro
本例的文件位于PyVibMS文件夹的 examples/with-UniMoVib/Molpro目录下,其中ch4.inp为甲烷分子的结构优化+振动分析输入文件,输出文件有两个
分别是 ch4.log 和ch4.out,其中 .out 后缀的输出文件为UniMoVib所需要的。UniMoVib的输入文件 job.inp如下
- a test job
- $contrl
- qcprog="molpro"
- ifpyvibms=.true.
- $end
- $qcdata
- fchk="ch4.out"
- $end
复制代码 再运行UniMoVib之后,得到的XYZ和mode文件即可用于PyVibMS的可视化了。
3.3 BDF
BDF是国产的一款侧重于相对论效应的量子化学计算程序,相关文章请参见 https://aip.scitation.org/doi/abs/10.1063/1.5143173 .
本例是由BDF计算的HCN异构化过渡态结构下的振动分析,位于PyVibMS文件夹的 examples/BDF 目录下。其中 test076.inp和 test076.out
分别是BDF计算的输入、输出文件。test076.umv 是BDF产生的包含了体系坐标、Hessian矩阵等信息的格式化文件,可以被UniMoVib直接读取。
test076.unimovib.input 是BDF产生的给UniMoVib的输入文件,相应的 test076.unimovib.out 是UniMoVib的输出文件。此外,XYZ和mode文件可以
直接用于PyVibMS的可视化。
本例由@wzkchem5 提供。
4. 结语
本文介绍的UniMoVib+PyVibMS方法可以让我们更方便地对PyVibMS原生支持之外的量子化学程序计算得到的振动分析结果进行可视化。
除了本文介绍了CFOUR、Molpro和BDF这三个量子化学程序以外,UniMoVib还可以处理其他更多的量化程序的振动输出,只需要在对应的输入
文件指定 ifpyvibms=.true. 即可导出PyVibMS可以读取的必要文件了。
|
评分 Rate
-
查看全部评分 View all ratings
|