计算化学公社

 找回密码 Forget password
 注册 Register
Views: 27063|回复 Reply: 48

[辅助/分析程序] 调用Multiwfn计算分子间电荷转移积分的程序[测试版]

[复制链接 Copy URL]

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

发表于 Post on 2021-5-30 14:00:00 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 snljty 于 2021-11-4 09:39 编辑

更新:加入了一个新功能,可以提供一个dimer的NBO的.47文件,只要里面包含Fock矩阵,程序可以从里面读取Fock矩阵,就不用折腾了。对于Gaussian用户,读取上一次dimer单点的chk文件后,写Guess=Read Population=NBORead,结尾空一行写$NBO ARCHIVE FILE= MYDIMER $END,重跑一遍,就会在工作目录下生成MYDIMER.47文件,然后执行本程序的时候加上-d47选项和这个文件的名字即可。这样就不需要提供下文的Fock矩阵了。

更新:刚才改了几个typo,并加入了一个新功能。当数值误差原因导致系数矩阵不可逆的时候,可以用-dF选项提供一个含有完整的dimer的Fock矩阵的文件,将直接从里面读取Fock矩阵。这个文件第一行应该是注释,后面应该是紧跟一个下三角矩阵记录的dimer的Fock矩阵。对于Gaussian用户,可以在计算一次dimer的单点后,读取上一次单点计算的chk文件,关键词加上Guess=Read IOp(5/33=3),然后找输出文件最后一次出现Fock matrix (alpha)或者Fock matrix (beta)的地方,就是Fock矩阵,带着这行标题拷贝出来到新文件即可。

顺便可以猜一下,这个程序为什么要用Fortran写。

写在最前面:
此程序在若干个体系测试过,但是未进行更广泛的测试。另外在某些基函数有接近线性依赖,但是还没有被量化软件判断为线性依赖的情况下,可能由于Multiwfn输出的数据精度有限,读取导致的一些数值误差问题,出现系数矩阵不满秩进而不可逆的情况。

正文:
论坛中已经有很多计算电荷转移积分的程序了,比如http://bbs.keinsci.com/thread-11369-1-1.html以及http://bbs.keinsci.com/thread-14311-1-1.html。这些程序基本都是基于Gaussian的。考虑到Multiwfn极为丰富的波函数读取与操作功能,这里(2个月前写好的,因为测试较少没有发上来)写了一个利用卢老师的Multiwfn程序http://sobereva.com/multiwfn/)读取轨道信息,然后读取Multiwfn的输出文件并使用格点能修正法计算分子间电荷转移积分的程序。程序地址在https://github.com/snljty/charge_transfer_integral。这个程序是用Fortran写的,Fortran 95的语法。

输入文件是dimer以及两个monomer各自包含GTO和MO信息的文件,诸如Gaussian的fch,ORCA的molden等文件。使用方法可以交互输入,也可以用命令行参数比如./Calc_coupling.x -d dimer.fch -m1 monomer1.fch -m2 monomer2.fch。注意monome1r的坐标应该是dimer坐标的前面部分,monomer2的坐标应该是dimer坐标的后半部分,两者坐标要和其在dimer中的坐标完全相同,而且顺序不可改变。另外注意Gaussian要加上NoSymmetry关键词。如果可能有基函数线性依赖关系,量化软件去掉这些成分后会导致系数矩阵为非方阵,不存在逆矩阵从而无法用这个方法计算。即使量化程序用某些关键词指定不去除线性依赖的基函数成分,后面对系数矩阵求逆也会报错。

bin目录里.exe拓展名的是Windows下的可执行文件,.x是WSL下编译的Linux版可执行文件。

使用前请务必确认Multiwfn已经正确安装且配置好,已经将Multiwfn可执行文件所在目录加入环境变量PATH,使得命令行输入Multiwfn即可启动Multiwfn,并且尽量用较新版本Multiwfn。如果要自行编译,还需要链接包含LAPACK和BLAS内函数的数学库。因为这个程序通常没什么计算量,图省事我直接链接LAPACK编译的。

这里放一下README.md文件和Windows下的可执行文件,还有几个测试文件。其余内容包括源代码在上面的github地址。

欢迎测试和反馈。

calc_coupling.exe (1.43 MB, 下载次数 Times of downloads: 224)

评分 Rate

参与人数
Participants 11
威望 +1 eV +34 收起 理由
Reason
a1571901778 + 1 好物!
zzffzz33 + 1
Aridea + 5 GJ!
MAX-0309 + 3 好物!
swordshine + 5 好物!
ggdh + 5 赞!
corei70715 + 5 赞!
Novice + 3 好物!
lyj714 + 3 不明觉厉
hdhxx123 + 3 GJ!
sobereva + 1

查看全部评分 View all ratings

4

帖子

0

威望

83

eV
积分
87

Level 2 能力者

发表于 Post on 2021-6-7 15:46:14 | 显示全部楼层 Show all
作者能把linux版本也放上来吗github总是进不去

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-6-7 16:34:52 | 显示全部楼层 Show all
本帖最后由 snljty 于 2021-6-7 16:45 编辑
pyyu 发表于 2021-6-7 15:46
作者能把linux版本也放上来吗github总是进不去

没有问题,链接已经发给你了。但是我的Linux版gcc缺一些静态库,有些动态库和你电脑上可能不太一样。如果有问题欢迎再反馈。

17

帖子

0

威望

839

eV
积分
856

Level 4 (黑子)

发表于 Post on 2021-7-6 15:04:31 | 显示全部楼层 Show all
楼主你好,我使用的时候输入dim 以及 mon后,运行了三秒左右直接闪退了,请问应该是什么原因啊?是没有正确调用multiwfn吗?

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-7-6 15:10:06 | 显示全部楼层 Show all
zzffzz33 发表于 2021-7-6 15:04
楼主你好,我使用的时候输入dim 以及 mon后,运行了三秒左右直接闪退了,请问应该是什么原因啊?是没有正确 ...

终端里跑应该不会闪退吧,至少终端不会退出。麻烦给我截图看下屏幕上的全部输出。如果方便的话,可以把文件发给我测试一下。

17

帖子

0

威望

839

eV
积分
856

Level 4 (黑子)

发表于 Post on 2021-7-6 16:43:27 | 显示全部楼层 Show all
snljty 发表于 2021-7-6 15:10
终端里跑应该不会闪退吧,至少终端不会退出。麻烦给我截图看下屏幕上的全部输出。如果方便的话,可以把文 ...

感谢您的回复,我用的就是test文件。把test里的三个out文件放在程序目录下,然后按提示敲了下三次回车之后闪退。我是不是遗漏了什么步骤,本人比较小白,

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-7-6 17:21:09 | 显示全部楼层 Show all
zzffzz33 发表于 2021-7-6 16:43
感谢您的回复,我用的就是test文件。把test里的三个out文件放在程序目录下,然后按提示敲了下三次回车之 ...

启动一个cmd.exe,在cmd.exe里面cd到文件所以目录,执行calc_coupling.exe,然后照常操作,然后麻烦把输出信息截屏或者拷贝下来发给我看。

145

帖子

0

威望

3055

eV
积分
3200

Level 5 (御坂)

发表于 Post on 2021-7-7 12:10:15 | 显示全部楼层 Show all
请问可以支持 HOMO-1 和 HOMO-1 之间的电荷转移积分吗?

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-7-7 12:47:37 | 显示全部楼层 Show all
indec 发表于 2021-7-7 12:10
请问可以支持 HOMO-1 和 HOMO-1 之间的电荷转移积分吗?

可以,有个选项是输出所有轨道之间的转移积分。你可以用calc_coupling.exe --help查看帮助菜单,然后看一下有个--full选项,然后从输出文件中找就行。只输出指定轨道间的功能没有做。

8

帖子

0

威望

85

eV
积分
93

Level 2 能力者

发表于 Post on 2021-7-17 10:38:35 | 显示全部楼层 Show all
楼主,你好,我是用您开发的程序进行电荷转移积分计算,两个monomer之间的HOMO电荷转移积分可以算,LUMO电荷转移计算出现的是这个结果?请问是为什么呢?谢谢
202107171035096054..png

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-7-17 15:21:11 | 显示全部楼层 Show all
MAX-0309 发表于 2021-7-17 10:38
楼主,你好,我是用您开发的程序进行电荷转移积分计算,两个monomer之间的HOMO电荷转移积分可以算,LUMO电 ...

Windows下算的么?方便把文件发给我测试一下么?谢谢

8

帖子

0

威望

85

eV
积分
93

Level 2 能力者

发表于 Post on 2021-7-17 16:48:49 | 显示全部楼层 Show all
snljty 发表于 2021-7-17 15:21
Windows下算的么?方便把文件发给我测试一下么?谢谢

好的,麻烦您啦

3

帖子

0

威望

39

eV
积分
42

Level 2 能力者

发表于 Post on 2021-8-31 15:13:07 | 显示全部楼层 Show all
有使用教程吗

3

帖子

0

威望

39

eV
积分
42

Level 2 能力者

发表于 Post on 2021-8-31 15:13:49 | 显示全部楼层 Show all
有使用教程吗

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-9-13 11:50:56 | 显示全部楼层 Show all

本文一楼已经写明白了全部需要的操作指南,要注意的容易忽视的点还特意用红字标出来了,还贴上了接近1000字的README.md作为手册,程序启动直接用--help参数也可以查看好几十行不能更详细的使用说明。连测试文件都一起提供了,我真不知道你连着问我两遍是还想要什么样的教程。

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2023-2-2 22:34 , Processed in 0.227523 second(s), 31 queries .

快速回复 返回顶部 返回列表 Return to list