Skip to content

chenxin199261/MEPSearcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

已停止开发 ! 请用 https://github.com/chenxin199261/MEPplot

详细信息请访问博文: http://chen-xin.tk/blog/index.php/archives/44/

简介

MEPsearcher基于string计算方法,用于搜索二维全局离散势能面上的能量最小路径Mminimun Energy Path(MEP),通常MEP可以完整揭示反应机理。过渡态、活化能等信息可以从MEP中获取。能量最低路径的搜索可以利用于蛋白质折叠、化学反应、相变等过程的机理研究。


string方法简介

在势能面 $V(x)$ 上,假设路径 $ \gamma $ 连接极小值点$ a $、$ b $,$ \gamma $ 满足如下关系。

$$ (\nabla V)^{\perp }(\gamma) = 0 $$

寻找MEP,首先定义N个珠子(beads、images),$ \{ \varphi i ,i=0,1,2, \ldots ,n \} $,分别对N个beads进行优化。

$$ \dot{ \varphi } i = - \nabla V (\varphi i) $$

优化过程同时将beads均匀分布。采用“Parametrization by equal arc length”方法

原理很简单,简单一句话:

将一些珠子放在势能面山坡上.松开珠子,珠子都会进入能量最低点. 如果们将珠子用线穿起来,那么珠子稳定状态下就是在能量最低路径上.


技术细节

MEPsearcher采用python开发,核心数值计算部分调用ALGlib数学库。

当前版本只支持最速下降优化方法(DS),未来版本考虑加入共轭梯度,准牛顿等方法。

插值算法采用三次样条插值(cubic spline)。ALGlib提供很多插值方法,作者并未尝试,希望大家对着手册换换其它的插值算法。


使用方法

1. 准备文件

你只需要准备两个输入文件,势能面文件PES.data,初猜生成文件guess.data。

  1. 势能面文件写成三列X Y Energy即可。可参考test文件夹中PES.data格式

  2. 准备初始猜测需要对势能面有一定的直观感觉,给出起始点、终止点以及初猜珠子(beads)的个数。

2.参数设定

需要进入MEPsearcher.py中对参数进行设定,只有三个参数需要测定,分别是最大迭代次数,收敛限以及优化步长。

  1. 最大迭代次数,Max_iter默认1000步,可以根据具体需要调大或者调小。

  2. 收敛限,用与上次优化结果的距离差加和表示。Tol默认1e-5,beads过多,可以适当调小、调大这个值。

  3. 优化步长值,h,是最速下降优化方法一个必需参数。这个值的设定麻烦些。过小导致优化缓慢,过大导致直接优化到势能面错误的区域。需要使用者反复调试。希望在下一个版本中,能启用其它不需要步长的优化方法。

3.运行

赋予MEPsearch.py执行权限

chmod +x MEPsearcher.py

直接运行

./MEPsearcher.py

计算过程每隔50步迭代,会打印在屏幕上。 运行结束后,产生out.data文件。 这个文件存储了MEP的最终结果。分三列表示,分别为:

X Y Energy

About

MEPSearcher V1.0_alpha

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages