计算化学公社

标题: 一个Fortran写的电荷转移积分程序 [打印本页]

作者
Author:
Warm_Cloud    时间: 2019-8-23 22:01
标题: 一个Fortran写的电荷转移积分程序
本帖最后由 Warm_Cloud 于 2020-7-19 13:31 编辑

attach://20792.x[attach]20792[/attach]电荷转移积分的计算是很多小伙伴的需求,这两天基于高斯的输出文件做了一个,细节可以参考http://bbs.keinsci.com/thread-11369-1-1.html
使用方法很简单,需要提供dimer和monomers的高斯输出文件和fchk文件,以此按照提示输入就可以。输入文件要加 nosymm iop(3/33=1)。
顺便说一下,以后更强大和好用的电荷转移功能会加入到我自己写的量化软件中。
(, 下载次数 Times of downloads: 196)
代码地址:https://github.com/zhangyingfeng1993/Charge-Transport-Integral
有问题的小伙伴可以留言讨论。



作者
Author:
冰释之川    时间: 2019-8-23 22:33
大师大法好!先收藏之,待日后使用
作者
Author:
njfuzjs    时间: 2019-8-24 11:03
开源大师
作者
Author:
让你变成回忆    时间: 2019-8-24 11:45
大师大法好
作者
Author:
lonemen    时间: 2019-8-24 18:05
大师大法好!
作者
Author:
yjmaxpayne    时间: 2019-9-16 17:15
大师也真够懒的,简单写个小命令行的编译方法噻。。。不过,我自己随便捣鼓了一下:

ifort -O3 CT.f90 -L/xxxxx/mkl/intel64/ -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm -qopenmp -o CT.x

对同一系统在同一理论级别下测试结果:

VOTCA CTP (git master): -12.4 meV
大师CT: -18.2meV

差别很小。

有两个小建议:
1) 建议暖大师提供 HOMO,HOMO-1, LUMO,LUMO+1搜索并单独输出的选项,绝大多数时候,这几个轨道的耦合是最主要的
2)耦合部分输出加入每个项的对应说明。

作者
Author:
Warm_Cloud    时间: 2019-9-17 08:09
yjmaxpayne 发表于 2019-9-16 17:15
大师也真够懒的,简单写个小命令行的编译方法噻。。。不过,我自己随便捣鼓了一下:

ifort -O3 CT.f90 - ...

啊,吼吼吼
作者
Author:
小白的暖暖    时间: 2019-10-26 13:17
请问,这四项哪一个是我想要的电荷转移积分啊
J(meV)    S
Je(meV)   Je(kcal/mol)
作者
Author:
Warm_Cloud    时间: 2019-10-27 13:42
小白的暖暖 发表于 2019-10-26 13:17
请问,这四项哪一个是我想要的电荷转移积分啊
J(meV)    S
Je(meV)   Je(kcal/mol)

Je
作者
Author:
小白的暖暖    时间: 2019-10-28 10:02
Warm_Cloud 发表于 2019-10-27 13:42
Je

好的,谢谢您
作者
Author:
Puying    时间: 2019-11-30 21:50
太牛批了!
作者
Author:
Warm_Cloud    时间: 2020-7-19 13:32
更新了一下输出。
作者
Author:
tulingzhi    时间: 2021-12-3 14:32
请问楼主,您计算转移积分所采用的理论方法是基于这篇 JACS,128(30):9882-9886吗?是属于能级劈裂法还是在位能修正法啊?我个人的理解是作者是在能级劈裂法的基础上进行修正?
作者
Author:
kaiden    时间: 2022-4-24 12:15
楼主您好,最近我用您写的程序测试电荷转移积分遇到一点问题,请教下面报错会是什么问题呢?谢谢!(在m062x/ma-SVP下计算的dimer,monomer单点。dimer.out载入时出错,但是把monomer.out当作dimer载入又没问题。)

nput for Dimer:
  Please input the Gaussian log file :<e.g. out.log>
pPDM_Dimer1_SP.out

  Spin Multiplicity:             1
  Number of basis functions:  2560
  Readind Orbit...
forrtl: severe (59): list-directed I/O syntax error, unit 1101, file /root/Documents/Study/Charge-Transport-Integral-master/pPDM_Dimer1_SP.fchk
Image              PC                Routine            Line        Source            
CT.x               000000000094B016  Unknown               Unknown  Unknown
CT.x               0000000000967727  Unknown               Unknown  Unknown
CT.x               0000000000965985  Unknown               Unknown  Unknown
CT.x               0000000000404E8B  Unknown               Unknown  Unknown
CT.x               0000000000401AE0  Unknown               Unknown  Unknown
CT.x               0000000000400D29  Unknown               Unknown  Unknown
CT.x               0000000000400CDE  Unknown               Unknown  Unknown
CT.x               00000000009DE5E9  Unknown               Unknown  Unknown
CT.x               0000000000400BBA  Unknown               Unknown  Unknown

作者
Author:
Warm_Cloud    时间: 2022-4-24 20:28
kaiden 发表于 2022-4-24 12:15
楼主您好,最近我用您写的程序测试电荷转移积分遇到一点问题,请教下面报错会是什么问题呢?谢谢!(在m062 ...

文件上传一下我试试。
作者
Author:
kaiden    时间: 2022-4-25 16:17
Warm_Cloud 发表于 2022-4-24 20:28
文件上传一下我试试。

感谢楼主回复!因为测试失败的文件太大被我删掉了。后来查看fchk文件发现是因为Number of basis functions和Number of independent functions不一致(应该是算dimer单点出现基函数线性依赖)。算单点用的m062x/ma-SVP。后来用B3LYP-D3BJ/def2svp重新算的单点就可以了。不知道后者缺乏带弥散函数的组合算出来的结果能不能接受呢?谢谢楼主!
作者
Author:
Warm_Cloud    时间: 2022-4-26 09:35
kaiden 发表于 2022-4-25 16:17
感谢楼主回复!因为测试失败的文件太大被我删掉了。后来查看fchk文件发现是因为Number of basis function ...

加上IOp(3/32=2),这样Gaussian就不会处理线性依赖的基函数了。
作者
Author:
snljty    时间: 2022-4-26 10:23
Warm_Cloud 发表于 2022-4-26 09:35
加上IOp(3/32=2),这样Gaussian就不会处理线性依赖的基函数了。

大师,请问然后会不会出现线性依赖导致系数矩阵不可逆,LAPACK报错的的问题?
作者
Author:
kaiden    时间: 2022-4-26 10:35
Warm_Cloud 发表于 2022-4-26 09:35
加上IOp(3/32=2),这样Gaussian就不会处理线性依赖的基函数了。

我有尝试过加IOp(3/32=2)让Gaussian保留线性相关的基函数,但是算单点总是不收敛。
作者
Author:
zjxitcc    时间: 2022-4-26 10:35
本帖最后由 zjxitcc 于 2022-4-26 10:39 编辑
Warm_Cloud 发表于 2022-4-26 09:35
加上IOp(3/32=2),这样Gaussian就不会处理线性依赖的基函数了。

这样容易造成电子能量异常,后续分析结果可信度降低。如果只有几个线性相关基函数,估计问题不大。
作者
Author:
zjxitcc    时间: 2022-4-26 10:37
kaiden 发表于 2022-4-26 10:35
我有尝试过加IOp(3/32=2)让Gaussian保留线性相关的基函数,但是算单点总是不收敛。

不收敛总是相对好解决的《解决SCF不收敛问题的方法》http://sobereva.com/61

最怕的是保留线性相关基函数后算出的电子能量很离谱

作者
Author:
kaiden    时间: 2022-4-26 10:43
zjxitcc 发表于 2022-4-26 10:37
不收敛总是相对好解决的《解决SCF不收敛问题的方法》http://sobereva.com/61

最怕的是保留线性相关基 ...

谢谢zjxitcc!我有尝试用sob这个博文的建议解决不收敛,但是暂时还没有解决成功。另外想问下用J_from_g03那个程序算的电荷转移积分会不会受基函数线性依赖的影响呢?(我测试了这个程序,输出文件显示有基函数线性依赖,但是用J_from_g03计算过程没有报错,不知道结果是否可信。)




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3