专栏首页量子化学一种用Gaussian 16中的GIC功能实现同时扫描多个坐标的方法

一种用Gaussian 16中的GIC功能实现同时扫描多个坐标的方法

一、简介

势能面扫描是我们用Gaussian常做的计算,一般可以分为刚性扫描柔性扫描。如果在柔性扫描中给定两个坐标,那么我们将会得到二维势能面。但是有时候我们只希望两个坐标同时变化得到一条势能曲线,这可以通过使用Gaussian中的GIC(广义内坐标)实现。本公众号之前也给出了一个可行的解决方案,见《在Gaussian16中同时扫描两个反应坐标》。但是之前方案的缺点是使用了Link1,在用GaussView打开输出文件时不能很方便地显示能量的变化趋势,这在找能量极大,极小点时会带来困难。因此这里给出了一个新的方案,不使用Link1,让势能曲线可以直观地显示出来。

这个新的方案同样需要使用GIC,没有接触过GIC的同学可以在Gaussian官网上学习相关的资料 (http://gaussian.com/gic)。GIC使Gaussian用户可以自定义一些结构参数,如键长、键角、二面角等。在基础的结构参数上还可以用数学运算,如加减乘除、平方开方、三角函数等,定义更复杂的结构参数。根据定义出的结构参数,我们可以做限制性优化,势能面扫描等等。

二、甲醛与水的加成反应

还是以甲醛与水的加成反应为例,介绍GIC输入文件的写法。

我们需要扫描的是O4−H7和C1−O5间的键长,因此需要对相关结构参数有一个定义:

RCO=R(1,5)

ROH=R(4,7)

RCO=R(1,5)定义了RCO为1号原子和5号原子之间的距离。ROH=R(4,7)定义了ROH为4号原子和7号原子之间的距离。注意新建变量名时,不建议用R12、R34这种变量名,因为可能会被高斯程序内部占用,引起冲突报错。与之前公众号推送的内容相同,我们希望RCO和ROH按照如下距离逐渐缩小:

RCO=1.8, 1.7, 1.6, 1.5, 1.4

ROH=1.7, 1.5, 1.3, 1.1, 0.9

正如前面提到的,我们不希望做二维势能面扫描,因此我们只能选择一个扫描坐标。这里选择RCO,我们只需要对RCO=R(1,5)做一些改动即可:

RCO(NSteps=4,StepSize=-0.1)=R(1,5)

NSteps=4指扫描步数为4,StepSize=−0.1指扫描步长为−0.1。我们先将初始结构调整为RCO=1.8,ROH=1.7,上面的命令可以使RCO按每一步0.1的步长减小,共减小5步,这正是我们所希望的。

在完成了RCO扫描的设置后,我们设置ROH,让ROH能随着RCO变化而变化。这可以用GIC中的Frozen功能完成。使用Frozen功能的前提是找出我们需要固定的量。我们将RCO和ROH的值输入到Excel中,并作出趋势线:

得到RCO和ROH间满足的关系为

ROH=2*RCO-1.9

这个等式说明2.0*RCO-ROH在整个扫描过程中可以作为一个不变量。

我们定义一个量F=2.0*RCO-ROH,并将其固定:

F(Frozen)=2.0*RCO-ROH

F(Frozen)可以让Gaussian在优化过程中固定F这个值不变。在扫描过程中,每当我们有一个新的RCO,由于F的限制,我们总会得到相应的ROH。这就让ROH可以随RCO变化而变化。

使用GIC功能的完整的输入文件如下:

%mem=24GB%nprocshared=24#p opt=(modredundant,GIC) M062X/6-31G(d) nosymm
Title Card Required
0 1 C       -1.12689502   -0.06090992    0.04839780 H       -0.59373127   -0.98861484    0.04839780 H       -2.19689502   -0.06090992    0.04839780 O       -0.49985459    1.03014042    0.04839780 O       -0.71648423   -0.27156123    1.78827969 H       -0.42609763   -1.05648810    2.25856198 H       -0.25552070    0.59195719    1.67268115
RCO(NSteps=4,StepSize=-0.1)=R(1,5)ROH=R(4,7)F(Frozen)=2.0*RCO-ROH

由于没有使用Link1,用GaussView打开输出文件不会显示多步任务。查看Scan的结果,可以很快地找到最高点,如下图所示:

将最高点作为初猜做过渡态搜索,即可找到甲醛和水加成的过渡态。另外,若把opt=(modredundant,GIC)替换成两个关键词opt geom=addGIC,效果一样。

简单总结一下,写同时扫描多个坐标所需Gaussian输入文件的通用步骤为:

1. 首先指定第一个扫描坐标,例如

RCO(NSteps=4,StepSize=-0.1)=R(1,5)

2. 定义下一个坐标,并根据新坐标和旧坐标的关系定义出一个不变量,

ROH=R(4,7)

F(Frozen)=2.0*RCO-ROH

这一步可以通过函数的拟合来完成,相当于找到一个函数F(RCO,ROH)=0。

3. 重复2,直到所有坐标都定义完毕。

三、三个水分子间的质子转移反应

下面以三个水分子间的质子转移反应为例,演示如何同时扫描多个坐标。

我们首先对三个水分子的团簇做结构优化,得到稳定结构。

得到O−H间键长为0.97819,不成键的O−H原子间距离为1.83887。

为了得到3个质子同时转移的过渡态,需要同时缩短H2−O4,H6−O7,H9−O1间距离。扫描步数预设为10步,可得到步长约为−0.08。将H2−O4间距离定为扫描坐标,为了让H6−O7,H9−O1间距离随着H2−O4间距离减小而减小,需要引入两个不变量F1、F2:

F1(Frozen)=RH2O4-RH6O7

F2(Frozen)=RH2O4-RH9O1

根据前文的介绍,很容易写出GIC计算的输入文件:

%nprocshared=24%mem=24GB#p opt=(modredundant,GIC) m062x/6-31g(d,p) nosymm
Title Card Required
0 1 O      -2.12109900    0.15275700    0.36236700 H      -1.26182000   -0.15720700    0.01249000 H      -2.74456300    0.04217400   -0.36151100 O       0.46851300    0.12482800   -0.54235200 H       1.12745300   -0.25541100    0.04672800 H       0.37017800    1.05352900   -0.25131900 O      -0.56877500    2.41551400    0.54801000 H      -0.86226500    3.12772800   -0.02774600 H      -1.33253600    1.81105900    0.63231100
RH2O4(NSteps=10,StepSize=-0.08)=R(2,4)RH6O7=R(6,7)F1(Frozen)=RH2O4-RH6O7RH9O1=R(9,1)F2(Frozen)=RH2O4-RH9O1

用GaussiView打开输出文件,可以看到结构随扫描过程的变化及势能曲线。

取出能量最高点的结构做过渡态搜索,优化3步之后就能收敛到相应过渡态。可见柔性扫描可以给出相当好的过渡态初猜。

综上,GIC是一个Gaussian中很有用的功能,GIC结合柔性扫描对过渡态搜索有很大的帮助。

本文分享自微信公众号 - 量子化学(quantumchemistry),作者:zxli

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RMSD计算中的Kabsch算法简介

    RMSD即均方根偏差(root mean square deviation)。设有两组向量P和Q,每组向量有N个维度为D的向量,因此P和Q可以看做N×D矩阵,那...

    用户7592569
  • 用MOPAC做结构优化

    MOPAC (Molecular Orbital PACkage) 是一款专注于半经验方法的量子化学程序。尽管高斯等主流的量子化学程序都支持半经验方法,但在计算...

    用户7592569
  • 计算向量间相似度的常用方法

    计算化学中有时会要求我们计算两个向量的相似度,如做聚类分析时需要计算两个向量的距离,用分子指纹来判断两个化合物的相似程度,用夹角余弦判断两个描述符的相似程度等。...

    用户7592569
  • vue2.0教程

    或者使用CDN <script src="https://unpkg.com/vue/dist/vue.js"></script>

    lilugirl
  • HDU-5572-An Easy Physics Problem

    ACM模版 描述 ? 题解 计算几何问题,给定一质点的位置和速度,给定一个圆柱的圆心和半径,质点移动如果撞上圆柱则发生弹性碰撞。问这个点是否可以经过另一个质点。...

    f_zyj
  • Java软件工程师面试题汇总(持续更新)

    实战问题 1、一个请求超过20秒了,你怎么排查和解决; 2、说说你觉得做的比较不错的项目,讲一下项目结构和用到的框架,再说一下为什么要选择这些框架; 3、“商品...

    程裕强
  • Redis中的慢查询

    在关系型数据库中如Oracle、Mysql中都提供了慢查询的功能。说的简单一点就是可以通过设置数据库的相关参数来记录命令的执行时间。记录的规则就是当命令的执行时...

    吉林乌拉
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法

    2018-09-02 06:59

    walterlv
  • Nodejs进阶:MD5入门介绍及crypto模块的应用

    本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 简介 MD5(Message-Digest Algorithm)是计算机安...

    IMWeb前端团队
  • Nodejs进阶:MD5入门介绍及crypto模块的应用

    本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 简介 MD5(Message-Digest Algorithm)是计算机安...

    IMWeb前端团队

扫码关注云+社区

领取腾讯云代金券