Gaussian扫描轨迹和IRC路径的拆分
Gaussian扫描轨迹和IRC路径的拆分

Gaussian扫描轨迹和IRC路径的拆分

Gaussian扫描轨迹和IRC路径的拆分
Splitting the Scan Trajectory and IRC Path of Gaussian

Jiawei Xu
Released: 2022-10-28 / Updated: 2022-10-28

获取扫描轨迹或IRC路径上每一个点的结构和相关性质有时具有重要意义。例如,在进行二维势能面扫描时,直接使用Gaussian进行会作为一个单一的任务逐步计算(N+1)*(N+1)个扫描点,如果先进行一次N步的线扫描,然后将(N+1)个结构作为起始结构,进行(N+1)个N步线扫描,对于集群或超算用户能够很大程度上节约时间。又例如,GaussView支持直接绘制扫描或IRC路径上的一些简单信息(如键长、电荷等),但对于一些更深的需求(如Mayer键级、自旋布居数等)就难以胜任,Gaussian本身虽然可以通过非标准路径或编译源码实现输出每一个结构的波函数,但始终较为复杂。这里简单介绍一下笔者平时使用的ScanSplit和IRCSplit及其附属脚本的做法,脚本可从文末链接下载。

ScanSplit.py可获取柔性扫描每一个点的结构,并生成新的输入文件。输入文件除结构以外的内容可以直接在脚本中修改,或使用换头换尾脚本进行修改。对于有冻结或片段设置等的情况,使用ScanSplit_MultiLayer.py可以实现相同的功能,用法同ScanSplit.py。运行完毕后,在当前目录下生成Geom1.gjf、Geom2.gjf等一系列输入文件。

>> python ScanSplit.py scan.log

基于这一脚本可以方便地进行二维势能面扫描,然后使用附件中的ScanStat.py汇总扫描结果,以矩阵的形式输出,可用于在origin中作图。类似地,IRCSplit.py可获取IRC每一个点的结构,并生成新的输入文件。输入文件除结构以外的内容可以直接在脚本中修改,或使用换头换尾脚本进行修改。我们时常需要了解某些电子结构性质在IRC过程中的变化,这时只需使用IRCSplit.py产生各点的输入文件,根据实际需求设置计算内容,使用批量脚本汇总结果,有需要时调用Multiwfn等分析程序,即可多快好省地实现我们的需求。

点击下载