NEB是chain-of-states方法中运用得最普遍的一类方法,这种方法只需要提供反应物和产物结构就可以得到MEP;CI-NEB又是其中最有效率的方法之一,它能在得到MEP的同时得到过渡态结构,而且准确性较高,因此CI-NEB已经被广泛应用于过渡态搜索和反应路径搜寻任务之中。 CP2K支持使用CI-NEB方法进行过渡态搜索和反应路径搜寻,其基本原理是在给定 反应物结构和生成物结构后(为了准确起见一般也要求给出优化过的过渡态结构),CP2K程序自动插点以构建出较为准确的反应路径。值得注意的是,若想追求更准确的插点效果可以使用sob老师的sobNEB程序,这个程序能基于所给的反应物、过渡态和生成物结构产生出全部的插点结构的xyz文件。 由于CI-NEB任务同时涉及多个插点结构的优化任务,而分别从文件中读取这些插点的优化轨迹又比较麻烦,我因此尝试编写了NEB_Monitor.sh,以监控各个插点结构的优化情况。下面简单介绍这个程序的使用方法: ①在CP2K输入文件中加入&PROGRAM_RUN_INFO字段,以输出[项目名]-BAND[点号].out文件 ②根据服务器的实际情况,调节NUMBER_OF_REPLICA和NPROC_REP的数值,使两者乘积不超过当前可用的MPI进程数;原因是若超过一次性可以调用的MPI进程数,则会使得副本号和路径上的点号错开(对应情况可见[项目名]-r[点号].out文件),这会使得对应情况变得复杂 ③在执行这一脚本时,要向它传递两个参数:第一个参数是项目名(注意不带任何后缀,如NEB);第二个参数是路径上的点数,数值与NUMBER_OF_REPLICA相同 最终会输出“NUMBER_OF_REPLICA + 1”个点的收敛情况(包括了初始点),可供监控的参数包括“E(Hartree) RMS_D MAX_D RMS_F MAX_F” ;同时会在当前目录下产生一系列all_[点号].txt文件。如果觉得输出内容太多占用了屏幕位置,可以自行微调脚本,通过all_[点号].txt中的内容查看各个点的收敛情况。 这是我第一次尝试用Linux里的Bash Shell脚本解决计算化学研究过程中的实际问题,脚本中必然有很多不完善的地方,也希望各位老师不吝赐教,非常感谢!
|