摘要:本文介绍了如何利用Gaussian程序进行势能面扫描,并介绍了两种方法:刚性势能面扫描和柔性势能面扫描。最后以1,3-丁二烯为例演示如何通过Gaussian进行势能面扫描并确定过渡态的初始结构。本文还详细描述了如何生成内坐标文件,以便用于势能扫描。
作者:陈宇
日期:2017-12-17
关键字:势能面 刚性扫描 柔性扫描 一维扫描 二维扫描 内坐标
一.势能面扫描的基本原理
1.基本概念
(1)势能面(potential energy surface)
在分子体系中,当原子核之间的相对位置确定时,对于确定的电子态,体系具有唯一确定的能量,随着原子核之间相对位置的逐渐改变,体系的能量也将逐渐改变,这种以分子坐标为变量得到的能量曲面称为势能面。
图1. 势能面
(2)势能面扫描(potential energy surface scan)
势能面的形状能够为阐释反应机理提供重要的帮助,然而由于计算量的巨大,构建完整的势能面通常是不现实的,因此在实际的研究中,我们并不会去构建完整的势能面,而是仅仅研究感兴趣的几个变量(包括键长,键角,二面角)逐渐变化时能量的变化情况,这个过程也称为势能面扫描。
2.Gaussian程序提供的势能面扫描方法
Gaussian程序提供了二种势能面扫描的方法:刚性扫描(rigid scan)和柔性扫描(relaxed scan)。
(1)刚性扫描
是指逐渐改变选定的内坐标,并对分子体系进行单点能计算。
(2)柔性扫描
是指逐渐改变选定的内坐标,在固定这个内坐标的基础上,对分子进行优化计算。
考虑到计算量的大小和可视化的效果,最常使用的是一维扫描(是指只扫描一个变量,例如键长,键角或二面角)和二维扫描(是指扫描两个变量)。为了进行一个势能面扫描任务通常需要进行如下三个步骤:
- (1)确定扫描的分子初始结构;
- (2)确定扫描变量,扫描范围和扫描步长,编辑扫描输入文件,利用Gaussian程序进行扫描;
- (3)结果分析。
二.利用Gaussian程序进行势能面扫描的操作步骤
在《Gaussian教程|搜索过渡态》的教程里,我们提到对过渡态初始构型的猜测决定了我们是否能够顺利找到过渡态,而势能面扫描就为我们提供了一种有效的确定过渡态初始构型的方法。
我们仍以搜索过渡态教程中的例子(图2)为例,分别利用刚性势能面扫描和柔性势能面扫描的方法确定过渡态的初始构型。
图2. 过渡态
需要说明的是在实际情况中应该选择柔性还是刚性扫描要根据研究目的而定,在我们的例子中,是为了确定过渡态的初始构型,由于过渡态是势能面上的一阶鞍点(在一个方向有能量极大值,而在其他方向上具有能量极小值),因此进行柔性扫描更能接近过渡态的初始构型。
此外,在这个例子中,我们也采用了刚性扫描方法,由于1,3丁二烯的顺式构型与反式构型的转变仅仅依赖于二面角7-6-2-1沿着C6-C2键的旋转(图3),在这个过程中,键两端的部分相对比较刚性,因此进行刚性扫描也能够给出较好的初始猜测。
图3. 1,3-丁二烯
三. 刚性扫描的具体步骤
第一步:确定扫描变量与扫描范围
在这个例子中,我们扫描的目的是获得一个接近过渡态结构的初始构型,因此我们首先要确定扫描变量(也就是二面角7-6-2-1),以及扫描范围(为了确定扫描范围,我们需要首先优化出顺势构型和反式构型的结构,以获得两种构象下二面角的大小(图4),分别为33度和180度,因此扫描范围为33-180度),最后我们取扫描步长为14.7度,因此需要改变变量10次。
图4.1,3-丁二烯顺反异构体
第二步:编辑扫描输入文件,利用Gaussian程序进行扫描
首先按第六节的方法借助GaussView生成内坐标文件,最后的刚性扫描输入文件如下:
图5. 刚性扫描的输入文件
第三步:扫描结果的可视化分析
利用GaussView可以实现扫描结果的分析。双击打开rigid-scan.log文件,然后点击“Results”,在下拉菜单中点击“Scan”
图6. GaussView的scan结果分析界面
然后可以得到下面图7的扫描曲线:
图7. 扫描曲线
扫描曲线上,横坐标代表扫描变量的不同值,纵坐标则是相应构型下的电子能,通过点击曲线上的点,我们能够得到相应分子构型,根据过渡态的定义,我们认为扫描曲线上能量的最高点更接近过渡态的构型,因此点击第六个点(图8),下面显示二面角的角度为106.5度。因此我们能够将过渡态初始构型的二面角设定为106度。
图8. 扫描曲线
四. 柔性扫描的具体步骤
第一步:确定扫描初始结构和扫描范围
与刚性扫描一样,我们首先优化顺势构型和反式构型的结构,确定扫描初始结构和扫描范围。
第二步:编辑柔性扫描输入文件,利用Gaussian程序进行扫描
柔性扫描的输入文件如下:
图9. 柔性扫描的输入文件
需要注意的是柔性扫描与刚性扫描的一些不同点:
刚性扫描:输入文件必须保存成Z-matrix的形式,使用scan关键字;
柔性扫描:输入文件既可以保存成Z-matrix形式,也可以保存成笛卡尔坐标的形式,使用opt=modredundant关键字。
第三步:扫描结果的可视化分析
利用GaussView可视化扫描的结果,方法完全与刚性扫描中结果分析的方法相同,在此省略不提。
五. 二维势能面扫描
上面我们进行的扫描都称为一维扫描,因为扫描的变量只有一个,Gaussian也能进行二维扫描(也就是可以同时扫描二个变量),然后利用GaussView进行可视化,并构建三维图像。
进行二维扫描的步骤与一维扫描完全相同,仅仅需要用同样的方法为第二个需要扫描的变量指定扫描步数和扫描步长。
我们以柔性二维扫描为例,对图10中的顺式1,3丁二烯进行二面角7-6-2-1和C6-C2键两个变量的扫描。
图10.扫描变量
第一步:确定扫描初始结构和扫描范围
柔性二维扫描的输入文件如下:
图11. 柔性二维扫描的输入文件
在这个文件中,二面角1-2-6-7的指定方法完全同上,只是扫描步数变成了3,扫描步长变为了20度。而对于键长的指定位于最后一行,详细的描述可见图11。
第二步:绘制扫描曲线
利用GaussView可视化二维扫描结果的方法与可视化一维扫描结果的方法完全相同,结果如下:
图12. 二维扫描曲线
六. 借助GaussView准备势能面扫描的内坐标文件
以刚性扫描为例,仅仅将文件保存为内坐标是不够的,有时需要重新定义内坐标。本节通过1,3-丁二烯来说明如何利用GaussView的Atom List Editor来准备、并重新定义内坐标文件。
假设你已经在GaussView里构建好了1,3丁二烯。如果你没有指定两面角GaussView会提示你去定义它,如图13所示。
图13. 如果没有定义要扫描的两面角,GaussView会出现让你定义两面角的提示
1. 用Atom List Editor定义要扫描的两面角
- 显示原子编号,以便观察两面角
- 内坐标的重新定义
- 保存文件
- 在GaussView里设定扫描的参数
GaussView View > Labels
图14. 原子编号
我们需要扫描的两面角是7-6-2-1。
GaussView Tools > Atom List
图15. Atom List Editor
在Atom List Editor对话框里,我们很容易发现第7行是我们关注的:“Show”后面的7 C 6 2 1,它的含义是编号为7的原子为C原子,它的位置由编号为6 2 1的原子定义。而我们要扫描的二面角也正是7-6-2-1。但注意到第8行,分子右半部分中的一个氢原子(编号为8)也是由6 2 1号原子定义。这意味着在扫描势能面的过程中二面角8-6-4-1是不变的,这样导致的结果是8号原子与右半部分其他原子的相对位置发生改变,从而得不到想要的扫描结果。为此我们需要重新定义内坐标,使得用右半部分的原子定义8号原子的位置不发生冲突。
首先,我们将8号氢原子的编号由8改为10,可以看到图形中的原子编号也在实时变化(一个原子的位置只能由具有更小序号的原子定义)。在这里,我们将这个氢原子(此时序号已经变为10)的位置由6 7 8号原子定义,因此在第8行中把原来的原子编号改成新的原子编号,如图16所示。
图16. 重新定义内坐标
保存文件,需要注意的是为了保存成内坐标的形式,必须取消“write cartesians”的勾选。
现在,你已经准备好了内坐标文件,可以继续上面的刚性扫描教程了。
用鼠标点击第7行,也就是我们要扫描两面角的那一行,并在opt3里下拉选择RXN/SCAN, 在Row列点击7,您会发现GaussView的界面发生变化,如图16所示,而且让你定义两面角的提示不见了。
图17. SCAN的参数设定
现在可以正确的开始跑scan了。
七. 相关教程
- Gaussian教程 | 搜索过渡态
- 《Exploring Chemistry with Electronic Structure Methods》第三版详细讨论了势能面扫描并提供了教程。
- Vlad提供了非常棒的教程,强烈推荐
(1)第6章第238-44页: Potential Energy Surface Scans
(2)第6章第255-58页:Exercise 6.3
http://sf.anu.edu.au/%7evvv900/gaussian/ts/scanning-pes.html
八. 参考材料
- http://gaussian.com/scan