|
本帖最后由 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)
程序会问三个问题:
- Output decomposition of reorganization energy? Yes, 1; No, 0.
- Output Huang-Rhys factor diagram? Yes, 1; No, 0.
- 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楼)- %oldchk=final.chk
- #p geom=allcheck freq(readfc,fcht,readfcht)
- initial=source=chk final=source=chk spectroscopy=onephotonemission
- print=(huangrhys,matrix=JK)
- initial.chk
- 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就完事了。如果看到下面这个报错,很大可能是原子顺序不匹配,需要修改原子顺序并保证两态计算中顺序一致。
- Initial state structure is set in Eckart orientation.
- Final state structure is superposed to it.
- 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)的交流总结出来的。以荧光发射为例,最基本的输入如下:
- %oldchk=initial.chk
- #p geom=allcheck freq(readfc,fcht,readfcht)
- initial=source=chk final=source=chk spectroscopy=onephotonemission
- initial.chk
- final.chk
复制代码 输入文件的说明参考前文。输出文件可以在GaussView6中看各个振动耦合峰,选择Results->Vibronic即可,光谱窗口选择左上角Plot->Transition Table可以一目了然地看到各个峰的信息。下面是一些报错和问题(不仅限于此,只遇到过这些,欢迎补充):
1. checkpoint文件损坏或不存在
- Data taken from checkpoint file "xxx.chk"
- FileIO operation on non-existent file.
复制代码 2. “Low progression” 很常见也很麻烦
- ERROR: Low progression after class 2. Total convergence = 0.1%.
- 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
-
查看全部评分 View all ratings
|