计算化学公社

 找回密码 Forget password
 注册 Register
Views: 24671|回复 Reply: 110
打印 Print 上一主题 Last thread 下一主题 Next thread

[辅助/分析程序] 基于Gaussian FCHT计算分解重组能和计算Huang-Rhys因子的Python小脚本

  [复制链接 Copy URL]

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

本帖最后由 Kalinite 于 2022-5-25 09:07 编辑

在研究光化学过程时经常需要考察哪些振动模式对重组能起到的明显的贡献,也会需要计算Huang-Rhys因子或Duschinsky矩阵。众所周知,Dushin是常用的分解重组能的辅助程序(http://sobereva.com/330),也支持输出Huang-Rhys因子或Duschinsky矩阵,但是使用时颇不稳健,经常出现各种各样的报错。然而Gaussian实际上本身就支持给出Duschinsky rotation所定义的shift vector以及Duschinsky矩阵,同时也可以输出Huang-Rhys因子,但关键词深藏在FCHT模块中不为人知。一开始使用Dushin时遇到了很多麻烦,后来发现Gaussian这一功能后解放了双手,最近看到有人问Dushin的报错,故这里分享一个平时用的小脚本,可以结合Gaussian FCHT输出处理数据。
-----------------------------------------------------------------------------------------------------------------------------------------
Gaussian版本:Gaussian16 C.01(其他版本可能需要根据具体输出格式改,没调查过);需要机子上安装Python。
用法:python gau_reorg.py output.log(假定运行Python的命令是python)
gau_reorg.py (4.75 KB, 下载次数 Times of downloads: 440)
程序会问三个问题:
  1. Output decomposition of reorganization energy? Yes, 1; No, 0.
  2. Output Huang-Rhys factor diagram? Yes, 1; No, 0.
  3. Output Duschinsky matrix? Yes, 1; No, 0.
复制代码
一般第一个问题都是需要的,选1,会像Dushin一样将重组能分解结果输出在屏幕上;第二个问题控制输出Huang-Rhys因子图的数据(在当前目录下output.log.hr.txt),可以直接导入Origin中作图;第三个问题控制输出Duschinsky矩阵,会将Gaussian中输出Duschinsky矩阵的格式修改为n×n矩阵的格式(在当前目录下output.log.mat.txt),可以直接导入Origin中作图。事实上只要输入一个非0的数都被会认为是需要相关数据。由于Gaussian可以直接输出Huang-Rhys因子,而且在输出格式上比力常数好看,故脚本中实际上是用Huang-Rhys因子计算重组能的分解结果,与根据定义(S_i=\lambda_i/h\nu_i)算没有本质区别。
-----------------------------------------------------------------------------------------------------------------------------------------
如何在Gaussian16 C.01中输出Huang-Rhys因子?(原贴:http://bbs.keinsci.com/thread-28612-1-1.html 5楼)
  1. %oldchk=final.chk
  2. #p geom=allcheck freq(readfc,fcht,readfcht)

  3. initial=source=chk final=source=chk spectroscopy=onephotonemission
  4. print=(huangrhys,matrix=JK)

  5. initial.chk
  6. final.chk
复制代码
输入文件说明:
1. huangrhys/J/K分别控制输出Huang-Rhys因子、Duschinsky矩阵和shift vector;
2. spectroscopy默认是onephotonabsorption,根据实际来;
3. 没有跃迁偶极的情况,应该写freq(readfc,fc,readfcht),不过即使写fcht也不会影响输出huangrhys和JK;
4. initial.chk和final.chk分别是初态和末态的chk,需要包含振动信息,用做freq的chk即可;
5. 一般是基于末态结构分解重组能,所以oldchk写final.chk。

多数情况这个任务会报错(比如low progression after class n之类),因为Gaussian会试图计算振动耦合的光谱,只想要这些数据不想要光谱的时候不管就行了。但是要注意:在计算振动耦合光谱时,因为会时常用到RedDim=ClearLowFreq=n来忽略振动波数小于n的低频振动模式的贡献,此时的Huang-Rhys因子与Duschinsky矩阵都是在忽略低频振动模式的基础上输出的,故使用RedDim时不能采用Gaussian给出的数据,另外算一个不加RedDim就完事了。
如果看到下面这个报错,很大可能是原子顺序不匹配,需要修改原子顺序并保证两态计算中顺序一致。
  1. Initial state structure is set in Eckart orientation.
  2. Final state structure is superposed to it.

  3. IAn wrong for default in FilMas.
复制代码
-----------------------------------------------------------------------------------------------------------------------------------------
相关资源:
1. 作图
振动模式:http://sobereva.com/567
Duschinsky矩阵:http://bbs.keinsci.com/thread-4624-1-1.html and http://bbs.keinsci.com/thread-2968-1-1.html
2. Gaussian的FCHT模块
https://gaussian.com/freq/(选择More->ReadFCHT Input)
http://sobereva.com/223
3. 最近的一些应用Huang-Rhys因子分析的文章,太多了,随便弄了三篇:
Lu Wang, Qi Ou, Qian Peng*, and Zhigang Shuai*, J. Phys. Chem. A 2021, 125, 7, 1468–1475
Rongji Zhu; Xi Chen; Na Shu; Yunlong Shang; Yichen Wang; Pu Yang; Yihan Tang; Fei Wang*; Jiawei Xu*, J. Phys. Chem. A 2021, 125, 47, 10144–10154
Teng-Fei He, Ai-Min Ren, Yuan-Nan Chen, Xue-Li Hao, Lu Shen, Bo-Hua Zhang, Tong-Shun Wu, Hong-Xing Zhang, and Lu-Yi Zou*, Inorg. Chem. 2020, 59, 17, 12039–12053

-----------------------------------------------------------------------------------------------------------------------------------------
另外歪个楼分享一下Gaussian16 C.01中计算振动耦合光谱的做法,主要是根据223号博文和与Dr. Lufeng Zou (cnhelp)的交流总结出来的。以荧光发射为例,最基本的输入如下:
  1. %oldchk=initial.chk
  2. #p geom=allcheck freq(readfc,fcht,readfcht)

  3. initial=source=chk final=source=chk spectroscopy=onephotonemission

  4. initial.chk
  5. final.chk
复制代码
输入文件的说明参考前文。输出文件可以在GaussView6中看各个振动耦合峰,选择Results->Vibronic即可,光谱窗口选择左上角Plot->Transition Table可以一目了然地看到各个峰的信息。下面是一些报错和问题(不仅限于此,只遇到过这些,欢迎补充):
1. checkpoint文件损坏或不存在
  1. Data taken from checkpoint file "xxx.chk"
  2. FileIO operation on non-existent file.
复制代码
2. “Low progression” 很常见也很麻烦
  1. ERROR: Low progression after class 2. Total convergence =  0.1%.
  2. The vibronic spectrum will likely be unreliable. Stopping.
复制代码
Advanced=(ForceFCCalc)
有时包括更多振动激发态时会有一定的progression。Advanced=(ForceFCCalc)关键词忽略该阈值并继续测试更多的振动激发态,并查看是否有明显的progression。
PreScreening=(MaxC1=XX,MaxC2=YY,MaxInt=ZZZ) [Default: XX=13, YY=20, ZZZ=100]
设置初筛的最大值,尤其是MaxInt需要设置一个大得多的值(>=1000)。如果使用Advanced=(ForceFCCalc)后仍然progression很小,那么可能Franck-Condon近似不适用,因为强度很小,即使强制进行FC计算,结果也很可能并不可靠。
RedDim=ClearLowFreq=N
如果不需要完整光谱,可以使用Reduced Dimensionality选项,只研究光谱中感兴趣的部分区域。有些低频振动虽然只是涉及很小的内坐标变化,但涉及的笛卡尔坐标却改变很大,造成难以匹配。例如对于100cm-1以下的频率不感兴趣,使用RedDim=ClearLowFreq=100.0。
3. G09和早期G16版本默认NoSaveNM,前面的freq计算需要写SaveNormalMode (SaveNM)来将振动信息存入.chk文件。官网上电子手册一直没有更新,至少在Gaussian16 C.01版本是默认SaveNM,不知道现在官网上更新了没。




评分 Rate

参与人数
Participants 22
威望 +1 eV +90 收起 理由
Reason
wal + 5 谢谢
哎呦呦 + 2
Alpharay + 4
cokie + 5 含金量真高
2421886719 + 4
yulonghai + 5 精品内容
Halcyonn + 4 感恩
philartist + 5 赞!
Red_Star + 3 好物!
LiHuaYu + 2 <font style="vertical-align: inh
Chlorine@Chem + 5 谢谢
wugaxp + 5 赞!
醉翁 + 3 GJ!
Adair + 5 好物!
丁越 + 5 赞!
snljty + 5 不明觉厉
hdhxx123 + 5 不明觉厉
ggdh + 5 精品内容
HuTTy + 5 好物!
sobereva + 1

查看全部评分 View all ratings

8

帖子

0

威望

468

eV
积分
476

Level 3 能力者

2#
发表于 Post on 2022-3-31 14:35:37 | 只看该作者 Only view this author
多谢Kalinite老师!

13

帖子

0

威望

79

eV
积分
92

Level 2 能力者

3#
发表于 Post on 2022-4-20 21:28:08 | 只看该作者 Only view this author
Kalinit老师你好,我参照您的的输入文件计算重组能,但总出现内存错误
  1. Error: segmentation violation
复制代码

末态为基态,优化且做了频率计算
  1. #p opt freq pbe1pbe/6-31g** scrf=(pcm, solvent=toluene)
复制代码

初态为S1激发态,同样做了优化和频率计算
  1. #p opt td(nstates=6) freq=saveNM pbe1pbe/6-31g** scrf=(pcm,solvent=toluene)
复制代码

gaussian版本为g16 C01,想向您请教一下,哪里出了问题?

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

4#
 楼主 Author| 发表于 Post on 2022-4-20 21:57:01 | 只看该作者 Only view this author
qidong8 发表于 2022-4-20 21:28
Kalinit老师你好,我参照您的的输入文件计算重组能,但总出现内存错误

末态为基态,优化且做了频率计算
...

Error: segmentation violation 不能看出是什么错,可以提供一下输出文件末尾的报错信息看看是什么情况。

13

帖子

0

威望

79

eV
积分
92

Level 2 能力者

5#
发表于 Post on 2022-4-21 16:19:00 | 只看该作者 Only view this author
Kalinite 发表于 2022-4-20 21:57
Error: segmentation violation 不能看出是什么错,可以提供一下输出文件末尾的报错信息看看是什么情况。

log末尾是
  1. Using the following non-standard input for vibronic spectroscopy:
  2. initial=source=chk final=source=chk spectroscopy=onephotonemission
  3. print=matrix=(huangrhys,JK)
  4. Unrecognized value for Spectra: (
  5. Error termination via Lnk1e in /home/liujunyuan/Software/g16/l718.exe at Wed Apr 20 21:19:57 2022.
  6. Job cpu time:       0 days  0 hours  0 minutes  1.0 seconds.
  7. Elapsed time:       0 days  0 hours  0 minutes  0.9 seconds.
  8. File lengths (MBytes):  RWF=     15 Int=      0 D2E=      0 Chk=     89 Scr=      1
复制代码

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

6#
 楼主 Author| 发表于 Post on 2022-4-23 02:54:40 | 只看该作者 Only view this author

没见过这个问题,可能和chk有关,可以发邮件给cnhelp问问

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

7#
 楼主 Author| 发表于 Post on 2022-4-26 13:50:40 | 只看该作者 Only view this author

应该是print=(huangrhys,matrix=JK),之前打错了,抱歉

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

8#
发表于 Post on 2022-4-26 14:28:17 | 只看该作者 Only view this author
老师您好,我这边用您的方法做测试的时候,还是提示不存在文件。测试用的卢老师那篇博文里吡啶的例子。我把文件传上来了,可以麻烦您抽空看一下么?十分感谢! test_dushin.zip (1.04 MB, 下载次数 Times of downloads: 89)
chk对应的Gaussian版本可能和您的不一样,那样的话麻烦您重跑一个S0.gjf和T1.gjf了,应该是几秒钟以内。谢谢!

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

9#
 楼主 Author| 发表于 Post on 2022-4-26 18:24:09 | 只看该作者 Only view this author
snljty 发表于 2022-4-26 14:28
老师您好,我这边用您的方法做测试的时候,还是提示不存在文件。测试用的卢老师那篇博文里吡啶的例子。我把 ...

你算的是S0-T1之间的,这是自旋禁阻的过程,Gaussian不能给出跃迁偶极,而FCHT中的“HT”需要跃迁偶极导数,因此在读取.chk中相关内容时报错“File operation on non-existent file”。虽然计算Huang-Rhys因子不需要这部分信息,但是Gaussian的这个模块是做光谱的,仍然会试图读取,并不影响Huang-Rhys因子和Duschinsky矩阵的输出。
改成“Freq=(ReadFC,ReadFCHT,FC)”可以正常输出你需要的信息,报的是光谱计算的错误。
FCHT.log (60.84 KB, 下载次数 Times of downloads: 75)






1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

10#
发表于 Post on 2022-4-26 19:36:20 | 只看该作者 Only view this author
Kalinite 发表于 2022-4-26 18:24
你算的是S0-T1之间的,这是自旋禁阻的过程,Gaussian不能给出跃迁偶极,而FCHT中的“HT”需要跃迁偶极导 ...

收到,谢谢老师!

1

帖子

0

威望

135

eV
积分
136

Level 2 能力者

11#
发表于 Post on 2022-5-2 14:03:43 | 只看该作者 Only view this author
Kalinite老师,您好!
    我最近在做重组能分解。想用您给的python方法进行分解。但是在分解过程中不知道如何运用python读取我已优化好的文件。老师能告知一读取的相应代码吗?谢谢!

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

12#
 楼主 Author| 发表于 Post on 2022-5-3 02:27:23 | 只看该作者 Only view this author
xyran 发表于 2022-5-2 14:03
Kalinite老师,您好!
    我最近在做重组能分解。想用您给的python方法进行分解。但是在分解过程中不知道 ...

假定你的电脑上运行python的命令是python,输出文件是output.log,那么运行python gau_reorg.py output.log即可。

23

帖子

0

威望

2126

eV
积分
2149

Level 5 (御坂)

13#
发表于 Post on 2022-5-4 20:23:46 | 只看该作者 Only view this author
很棒的内容,之前接触过一点类似的,现在感觉gaussian还是很多隐藏功能的

110

帖子

0

威望

1083

eV
积分
1193

Level 4 (黑子)

14#
发表于 Post on 2022-5-6 21:20:01 | 只看该作者 Only view this author
老师,对于黄昆因子,输出的结果是这样:
==================================================
                     Huang-Rhys Factors
     ==================================================

     Mode num.      1 - Factor:   0.684549D+01
     Mode num.      2 - Factor:   0.103728D-12
     Mode num.      3 - Factor:   0.168417D-15
     Mode num.      4 - Factor:   0.234325D+00
     Mode num.      5 - Factor:   0.137321D+01
     Mode num.      6 - Factor:   0.610608D-01
     Mode num.      7 - Factor:   0.155324D-13
     Mode num.      8 - Factor:   0.135165D+00
     Mode num.      9 - Factor:   0.163153D+00
     Mode num.     10 - Factor:   0.480870D-15
     Mode num.     11 - Factor:   0.235686D-02
     Mode num.     12 - Factor:   0.180464D+00
     Mode num.     13 - Factor:   0.316307D+01
     Mode num.     14 - Factor:   0.474745D-14
     Mode num.     15 - Factor:   0.993685D-15
     Mode num.     16 - Factor:   0.596251D+00
     Mode num.     17 - Factor:   0.203202D-15
     Mode num.     18 - Factor:   0.935426D-18
     Mode num.     19 - Factor:   0.560257D-15
     Mode num.     20 - Factor:   0.165495D+00
     Mode num.     21 - Factor:   0.937353D-16
     Mode num.     22 - Factor:   0.275564D+00
     Mode num.     23 - Factor:   0.177246D-03
     Mode num.     24 - Factor:   0.325253D-15
     Mode num.     25 - Factor:   0.226731D-13
     Mode num.     26 - Factor:   0.507573D-01
     Mode num.     27 - Factor:   0.346544D-02

对于这么多factor,我们该看哪个呢?

谢谢老师。

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

15#
 楼主 Author| 发表于 Post on 2022-5-7 10:22:30 | 只看该作者 Only view this author
anlancx 发表于 2022-5-6 21:20
老师,对于黄昆因子,输出的结果是这样:
==================================================
         ...

Huang-Rhys因子定义为:S_i = \lambda_i / (h \nu_i)。
一般看振动模式所贡献重组能的大小,即\lambda_i的大小。贡献较大的振动模式往往是与始末态结构变化有一定对应关系的,当然也可能会有多个振动模式都具有比较明显的贡献。虽然由谐振子近似给出的重组能分解结果可能并不合理,因为谐振子模型对势能面近似地不一定好,但相对大小一般还是具有参考意义的。可以参考一下前面几篇文献里的做法。

本版积分规则 Credits rule

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

GMT+8, 2024-11-24 11:25 , Processed in 0.284693 second(s), 25 queries , Gzip On.

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