提取gaussian的rwf文件信息的工具rwfdump简介 | 宜武汇-ag真人国际厅网站

gaussian程序是由一个个独立的link子程序组成的,完成一个计算任务需要各种link按照指定顺序和特定选项依次被调用,如同一条作业流水线。在每个link之间传递临时数据最主要依靠的是rwf文件,即读写文件,这个文件在计算任务一开始被初始化,随着计算的进行,不断地被填进更多的信息,如果没有通过%rwf=xxx来指定rwf文件保存的位置,在任务正常结束时会被自动删除。rwf文件里面储存的信息过于丰富,尤其是后hf计算中要需要储存积分变换数据,会十分庞大,不便于在硬盘上长期保存和拷贝。为了解决这个问题,rwf文件中一部分最重要的信息会在checkpoint文件(chk文件)中留有一个副本。由于chk文件只保留了rwf中的精华数据,因此体积比较小,而且通过formchk工具可以转换为文本格式,能够方便地从中提取有用信息进行进一步分析。另外,重新启动中断的任务也需要chk文件中的一部分信息。

rwf文件包含很多“子文件”,分别存放不同类别的信息,我更愿意将之称为一个个槽位,毕竟rwf文件在硬盘上是作为一个而不是多个文件来保存的。每个槽位有一个对应编号,保存的内容可以参考

当中的rwf numbers部分。以下是从其中截取的一部分

开头有p的,代表这类信息也同时储存在了chk文件里;有t的,说明这类信息在任务执行过程中被储存在chk文件里,以备重新启动任务之需,但是由于普遍价值不大,在任务正常结束后就会从chk文件中删掉;而开头是空的信息,说明只存在于rwf文件中而在chk文件中没有副本。

也就是说,那些没写p的信息没办法在任务结束后从chk文件里找到。然而这些信息有时候却很有用,在后续分析时可能要用到,比如基函数间的重叠积分矩阵。好在基函数间重叠矩阵通过guess=only iop(3/33=1)可以直接迅速输出出来,然而其它的一些信息,有的就没有对应iop可以输出,或者有对应的命令能输出之,但是还得把耗时的过程重新算一次才能输出出来,很不方便。

gaussian中自带了一个颇有用的小程序rwfdump,它就在gaussian安装目录下,专门用来将rwf文件中指定槽位中的信息提取出来并转化为可读的文件。可惜这个小程序并未在gaussian用户手册,乃至程序员手册中提及,导致被很多人忽视。本质上,rwf文件指定槽位的信息是通过gaussian代码中fileio子程序进行读写的,rwfdump这个工具就是给fileio子程序加个壳,使之成为能够独立运行的程序罢了。

rwfdump通过命令行调用,语法是:rwfdump a.rwf a.txt iiix

其中a.rwf是被提取信息的rwf文件。a.txt是提取出的信息储存的地方,如果输出文件名只写为一个横杠-,那么就直接输出到屏幕上。iii是rwf是信息的槽位编号。x控制输出数据的数据类型,i代表十进制整数,h代表十六进制数,r代表浮点数,a代表ascii文本。

例如,从官方的表格中查到540号槽位储存的是molecular alpha-beta overlap (u), real,也就是非限制性计算中alpha轨道和beta轨道间的重叠积分,想提取它就可以输入比如

rwfdump c:\idol-master\a.rwf d:\sob\blood-c.txt 540r

这里用的例子是uhf/sto-3g下计算的三重态乙酸。打开d:\ltwd\blood-c.txt,在一开始会看到一堆类似这样的信息

这些信息是rwf文件里各个槽位的汇总,包括起始偏移量(base)、终止偏移量(end)、长度(length,即end与base之差)、写/读的指针位置(wr/rd pntr),单位都是word(8字节,即一个双精度浮点数的大小)。可以看到,540号槽位的长度是576。由于提取的数据类型是浮点数,因此下面将出现576个数据,对应于这个体系中总共24个alpha轨道与24个beta轨道间的重叠积分。

以下内容是那576个数据开头的一部分

-0.53159908d-03这种表示代表-0.00053159908,d是fortran双精度浮点数中代表10的多少次方的意思。在自旋极化体系的非限制性计算中,alpha轨道与alpha轨道间正交归一,beta与beta轨道间正交归一,但alpha与beta轨道间没有正交归一的限制,因此这些数据中并不是1或0。接近0的表明相应alpha和beta轨道重叠积分很小,接近正交。而接近1的,可以认为是几乎配对、相互重合的alpha和beta轨道。rwfdump只是把数据简单提取出来,并没有自动排成舒服、容易由人类读取的格式,哪个数值对应哪两个alpha和beta轨道间重叠积分很难看出。实际上,在笔者的multiwfn程序(

)中有计算alpha和beta轨道间重叠积分矩阵的功能,载入wfn或fch文件后进入主功能100选5就行了,经过计算后会输出诸如这样的信息

其中i行j列代表第i个alpha轨道与第j个beta轨道的重叠积分。multiwfn给出的数据可以与rwfdump输出的相互对应,rwfdump的横着的一行一行的数据对应于multiwfn输出的一列一列的数据。

另外,rwfdump也能用来从chk文件中直接提取指定槽位的数据。例如,从rwf槽位对照表中得知501储存的是gen数组(这个数组包含的是各种各样的标量数据),由于前面写着p,表明它不仅保存在rwf文件里也保存在chk文件里,因此就可以从chk文件里提取它,即运行比如rwfdump c:\ltwd\a.chk h:\k-on\touhou.txt 501r

提取出的gen数组的前几行是

通过查阅gaussian程序员手册得知gen数组第32个数是scf能量,这里即-0.22469385d 03,它与gaussian输出文件中显示的e(uhf) =  -224.693847643是完全对应的。

原文链接:http://sobereva.com/112

网络摘文,本文作者:15h,如若转载,请注明出处:https://www.15cov.cn/2023/08/27/提取gaussian的rwf文件信息的工具rwfdump简介/

发表评论

邮箱地址不会被公开。 必填项已用*标注

网站地图