|
|
本帖最后由 AzuleneSDSZ 于 2026-8-5 04:54 编辑
MonitorOLive 是一个通过读取ORCA输出文件,可与Avogadro2等软件良好配合,可视化各种ORCA收敛过程的工具。
简介
在进行计算时,经常会遇到收敛震荡的问题,往往浪费大量时间作无用功。单纯通过观察数据看出震荡虽说并不困难但是十分费劲;因而,如可以读取ORCA各类收敛指标与收敛限,即可判断SCF,几何优化,NEB-TS等计算方法是否已无可能收敛,从而监测计算过程,提高效率。这样的功能, 在GaussView等软件中早已实现;但是,对于ORCA的计算,似仍未有替代品。同时,就个人愚见,GaussView对收敛指标的可视化有时看不清楚,因而若能使用对数坐标显示,能够改善用户体验。因而,笔者开发了MonitorOLive这个Python软件,解决这些痛点。
MonitorOLive包含两个主要命令,一个是MonitorO, 负责数据处理与绘图; 与MonitorOLive,负责调用MonitorO的功能,实现几秒(可设置)一刷新的监控功能。
快速上手
例如,对于某个ORCA输出文件,不知SCF收敛地怎么样,又不想直接打开看。只需输入
- MonitorOLive --scf my_file.out
复制代码 这样,就绘制了目前ORCA计算最新SCF收敛轮次的情况:
无论是ORCA会自动采用的DIIS,SOSCF还是TRAH方法,都可以进行绘图。这里的计算过程经过了DIIS和SOSCF,中间收敛指标切换之处就对应方法切换的轮次。图表标题会标出目前进行的SCF计算方法。可以注意到,采取的是负对数坐标显示,也标出了收敛限(会随着当前文件中输出的最新轮次标准更新),感觉这样看起来比较清晰。
例如,如果想要看一看这个任务的几何收敛过程,还是不想直接打开看,只需输入:
- MonitorOLive --geom my_file.out
复制代码 这样,就绘制了目前ORCA的几何收敛情况:
无论是优化到极小点,过渡态(一阶鞍点)等等都可以使用。
在默认的设置下,ORCA的收敛判断并非像Gaussian那样机械,而是有几个收敛指标达到某设定范围内即可收敛,因而可能收敛时并没有触碰到代表当前收敛限的横线。
无论是运行中的文件,还是已经中止、结束的文件,都可以无痛读入。同时,还可以读入之前某轮次的SCF收敛情况,也可以读入多步体系的收敛情况(例如,使用Compound的情况)。
MonitorO还有许多个人认为有益的功能, 例如将ORCA类似Gaussian Link1的脚本语言Compound(此方法比Link1强,可以实现大量很有用的功能)的各步切片,可选地加上ORCA正常输出的文件头、文件尾的功能, 可以方便一些高度依赖常规ORCA文件的软件,例如Goodvibes等(它必须要读入Normal Termination那行才能进行分析)的使用。还有可以将SCF、几何优化、NEB-TS等方法的收敛指标输出成csv拿来做各种分析的功能。
帮助Avogadro2更好地可视化ORCA输出文件
Avogadro2 是一个免费、开源、在Linux, Windows, Mac上都可以使用的分子建模软件。总体而言,它功能良好,而且不收费,且可以直接读取ORCA文件,甚至还有ORCA论坛的魔改版,专门为ORCA优化,似乎可用性强。但是,在笔者的电脑上,魔改版软件根本无法运行,且笔者发现Avogadro2有一些相当不便的特性,如:某几何收敛计算具有振动分析数据,则Avogadro2会将其“Movie”工具(实则类似GaussView的chunk)的帧固定为对应着点选振动模的21帧动画(但是,这带来了一个相当大的好处,见下文),只要有振动分析的数据几何优化过程根本没法看,结构也无法提取出来。还有,如有多轮振动分析,如使用`Recalc_Hess`的情况,只要带有关键词`Freq`ORCA就会自动给出振动模,在计算过渡态的时候就可以看看目前ORCA的本征向量跟踪方法正在朝着哪个虚频优化,是不是优化错了(例如,收敛到甲基旋转),看似很有用;但是,Avogadro2坚持只读入第一个振动分析数据,往往无法提供任何有用信息。就算是计算早已完成,不看中间的轮数,也无法观看最后的结果,好好的功能基本没法用(这可以用OFakeG加上GaussView解决,但如果你的课题组无GaussView版权,别无办法只能作罢)。此时,就可以使用MonitorO的功能, 如`MonitorO --novib`即可输出一个去掉了所有振动分析数据的输出文件,使Avogadro2可以读入几何优化的每一轮结构, 使用`MonitorO --split-geom-cycles --vbr-only`即可将含有振动分析数据的轮次的帧输出到当前目录下的一个文件夹里,随便想要看哪一轮都可以。还可以`MonitorO --split-geom-cycles --vbr-only --write-round -1` 输出最后一轮(由`-1`代表)含有振动分析的文件。有了这个功能,Avogadro2的性质得到了改善,例如上文提到的21帧循环动画就不再是问题,且带来了一个另类的好处:使用动画的第5帧或者第15帧,就可以获得沿着振动模两个方向最大位移(Movie工具有一个位移的尺度因子,应用之即可调整大小)后的分子。这在消除一些涉及到整个分子运动的小虚频上非常方便,完全不需要人来手动调整。
安装
MonitorO的安装比较简单,只需:
即可完成安装。
MonitorO依赖python3.10与以后版本,以及gnuplot(如想要正常弹出可视化收敛过程的窗口,需要GUI。不过,gnuplot在默认情况下自带它)。这两个软件的安装都非常简单,例如在Ubuntu上:
- sudo apt install python3
- sudo apt install gnuplot
复制代码 在Windows上可直接下载安装程序,在Mac上使用`brew`即可。如果没有pip,一般在安装了python之后就有了pip,且安装pip的方法在网上可以轻松找到。
虽说依赖python,但是安装后,只需在命令行中输入`MonitorO` `MonitorOLive`就可以使用之,同时`--help` `-h`就可以查看帮助,体验接近编译好程序,可以很容易地被整合进脚本中。
如果有功能上的需求、bug的发现与提出的意见,笔者将会积极回复,修改程序。
更多信息,见Github, PyPI页面。
|
评分 Rate
-
查看全部评分 View all ratings
|