首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
清单首页MECP文章详情

MECP (Minimum Energy Crossing Point) 简介(2)

Outline

  • Introduction - What is MECP?
  • Algorithm - How to locate a MECP?
  • Application - When do we need MECP?
  • Theory - What can we do beyond MECP?

How to locate a MECP?

现在我们了解了什么是MECP,那么如何找到一个MECP呢?

实际上,我们已经知道了MECP的定义有两个要求,也就是首先要是CP,其次要ME,所以我们一个一个实现就可以了。

Step 1. 找到单重态和三重态的任意一个交叉点

与找中间体或者过渡态一样,我们先根据对体系的了解,找到一个合理的初始构象,然后分别计算它在单重态和三重态的能量,然后朝着高能态降低、低能态升高的方向去优化分子,就可以逐渐缩小单重态和三重态的能量差,从而找到一个CP。

Step 2. 沿着势能面的交叉部分同时优化单重态和三重态,找到最低点

有了一个交叉点作为起始结构之后,我们就只需要沿着势能面的交叉部分找到最低点就可以了,这一步的算法与基本的中间体优化算法没有本质区别,仅仅需要注意优化时所用的梯度应当是单重态和三重态的平均梯度,这样才能同时优化两个自旋态,而不会重新拉开它们的能量差。

这里需要对计算梯度的算法做一个补充说明。

实际计算中在分别做完单重态和三重态的计算后,会各自得到两个能量梯度(下图的红色和蓝色),沿着各自梯度的反方向即可找到各自的中间体结构。在找MECP时,为了得到crossing point,应当沿着梯度差的方向搜索(紫色),例如如果初始结构三重态能量高于单重态,就应沿紫色箭头的反方向进行搜索。而为了同时降低单重态和三重态的能量而不改变单重态和三重态的能量差,则应当沿着黑色箭头的反方向搜索。实际算法中,以上步骤1和2其实是同时完成的,但是算法给步骤1分配的权重较大,也就是说,如果紫色和黑色箭头的长度都很大,就按照(几乎是)紫色箭头的方向搜索,只有在单重态和三重态能量已经相当接近了以后才按照黑色箭头方向搜索。

以上算法来自Harvey 1997年的算法文章,原代码是用Fortran写的,每次使用时需要针对体系重新编译,相当不便。

From Harvey J N, et al. ‎Theor. Chem. Acc., 1998, 99(2): 95-99.

因此笔者在网上查到了一个python脚本easyMECP,核心算法还是Harvey的Fortran代码,但是提供了一个方便的接口可以很快上手。

From https://github.com/jaimergp/easymecp.

使用流程在Github的readme里有说明,为了更加清晰的说明计算过程,之后笔者还将做一个简单的demo。

下一篇
举报
领券