计算化学公社

标题: ORCA5.0.3利用G16解析Hessian进行ESD计算 [打印本页]

作者
Author:
zhaixiaoyi001    时间: 2022-12-27 18:07
标题: ORCA5.0.3利用G16解析Hessian进行ESD计算
本帖最后由 zhaixiaoyi001 于 2022-12-28 11:16 编辑

1. 前言
          通过使用ORCA可以方便快捷的进行激发态性质计算,ORCA的RI加速功能可以有效的缩短计算时间。目前ORCA5.0.3已经支持了部分泛函TDDFT的解析梯度计算,这使得使用ORCA高效优化激发态结构成为可能。然而,通过ESD模块进行激发态动力学计算大多需要用到激发态Hessian,目前ORCA 5.0.3仍然不支持激发态解析Hessian,本文尝试使用能够计算激发态解析Hessian的Gaussian16生成相应计算水平下的Hessian,让ORCA5.0.3读取该Hessian完成ESD模块计算。
2. 测试步骤
          首先使用ORCA5.0.3优化苯分子S0和S1态结构并进行频率计算,得到优化后的结构输出文件ben-s0-opt.out 和 ben-s1-opt.out,优化后基态和激发态Hessian文件 ben-s0-opt.hess和 ben-s1-opt.hess。将 ben-s1-opt.out 优化好的S1态结构存为gjf文件 ben-s1-freq.gjf,使用Gaussian16进行S1态频率计算 通过自己编写的python脚本实现Gaussian16 Fchk文件中Hessian 向 ORCA5.0.3 .hess文件的转换 得到 ben-s1-freq.hess。使用ORCA直接得到的 ben-s1-opt.hess 和 G16转换得到的 ben-s1-freq.hess 同时进行了ESD荧光发射速率的计算,二者做对比,观察结果是否可靠。
注意:在结构优化过程中使用了RI加速,关键词见附件。在ESD计算过程完全参考ORCA5.0.3手册。G16直接使用freq TD=(nstates=5,root=1)关键词计算ORCA5.0.3优化的S1结构的Hessian,使用了nosymm关键词。为了保证计算级别的一致性,ORCA5.0.3计算使用 B3LYP/G 泛函,G16计算使用B3LYP泛函,都使用了def2-SVP基组,未加色散矫正。
3. 测试结果
          如图所示,使用G16解析Hessian转化得到的S1态.hess进行ESD计算,与使用ORCA5.0.3生成的S1 .hess文件计算得到的结果几乎一致,证明该方法较为可靠,通过G16的激发态解析Hessian可能可以有效减少ORCA ESD模块的计算成本。
4. 脚本使用方法
         Python 环境 Python 3.7.6
         需要安装 numpy库
         将fchk文件和G16频率计算的gjf文件放入脚本目录,运行脚本,输入fchk文件名和gjf文件名,得到初步完成格式转化的.hess文件。将.hess文件复制到安装有ORCA环境的机器上,使用orca_vib xxx.hess 补全 Hessian文件内容,随后可以将该 Hessian 文件用于 ESD计算。
5. 注意事项
         本脚本只进行了少数测试,可能有bug,并且Hessian文件中的 $atom 项需要内置标准原子质量,本脚本中没有内置太多元素,如果将该脚本用于科研,可能还需要进一步修改。本文涉及的输入输出打包放在了附件中。



作者
Author:
chrinide    时间: 2022-12-27 19:53
都在薅高斯的羊毛啊 话说高斯的羊毛薅起来真爽
作者
Author:
Novice    时间: 2022-12-28 09:26
这里我有个小小的疑问,G16直接使用freq关键词计算的S1结构的Hessian,和td + freq的Hessian是一样的吗?
作者
Author:
冰释之川    时间: 2022-12-28 10:25
Novice 发表于 2022-12-28 09:26
这里我有个小小的疑问,G16直接使用freq关键词计算的S1结构的Hessian,和td + freq的Hessian是一样的吗?

前者是基于S1结构算该结构下基态的freq,后者是算激发态结构下激发态对应的freq
作者
Author:
Novice    时间: 2022-12-28 11:05
冰释之川 发表于 2022-12-28 10:25
前者是基于S1结构算该结构下基态的freq,后者是算激发态结构下激发态对应的freq

嗯嗯,谢谢。所以我觉得楼主此处的步骤中应该采用的是td + freq。
作者
Author:
zhaixiaoyi001    时间: 2022-12-28 11:14
Novice 发表于 2022-12-28 09:26
这里我有个小小的疑问,G16直接使用freq关键词计算的S1结构的Hessian,和td + freq的Hessian是一样的吗?

这里用的freq关键词也用了TD关键词,写的有点歧义,我做下修改
作者
Author:
Novice    时间: 2022-12-28 11:38
看了下,对于苯这么小的体系,ORCA的S1频率计算耗时17.343min,Gaussian不到5min,的确太有用了。不过话说等ORCA支持激发态解析频率了,那时候应该就不用这么麻烦了
作者
Author:
zhaixiaoyi001    时间: 2023-1-10 09:00
最近测试了80原子体系,双路Xeon Platinum 8175M, PBE0-D3/def2-SVP计算水平。 ORCA计算S1 hessian用时约26 h,G16A 用时约1 h 30min,二者ESD模块计算结果基本一致。
作者
Author:
flyingchow    时间: 2023-1-19 22:54
请问群里有人测试过Turbomole吗?
作者
Author:
Kalius    时间: 2023-1-28 21:36
Orca做结构优化最好使用TightOPT+verytightSCF罢,要不然精度可能不够
作者
Author:
RAL    时间: 2023-1-28 21:56
Kalius 发表于 2023-1-28 21:36
Orca做结构优化最好使用TightOPT+verytightSCF罢,要不然精度可能不够

至少ORCA5的opt默认优化收敛限比Gaussian16严格,只是ORCA喜欢接近收敛限就停,用DefGrid3基本不会有小虚频的问题,没必要进一步提高收敛限
作者
Author:
wzkchem5    时间: 2023-1-28 23:30
Kalius 发表于 2023-1-28 14:36
Orca做结构优化最好使用TightOPT+verytightSCF罢,要不然精度可能不够

默认收敛限和TightOPT+verytightSCF的差别基本上远小于格点误差了,所以影响精度不至于,如果遇到小虚频再把收敛限设严消虚频就行了
作者
Author:
Kalius    时间: 2023-1-29 17:30
wzkchem5 发表于 2023-1-28 23:30
默认收敛限和TightOPT+verytightSCF的差别基本上远小于格点误差了,所以影响精度不至于,如果遇到小虚频 ...

多谢,谨受教
作者
Author:
tianmafei    时间: 2023-5-7 16:00
老师好!这个脚本是 ./H_gTo.py这样运行吗?
作者
Author:
zhaixiaoyi001    时间: 2023-5-18 09:39
tianmafei 发表于 2023-5-7 16:00
老师好!这个脚本是 ./H_gTo.py这样运行吗?

我一般是使用pycharm直接打开工程配置好运行库直接run的。
也可以 python3 H_gTo.py
现在看来这个脚本已经没什么用处了,ORCA光物理参数这块算的不太好,要算这些光物理参数可以用开源的fcclasses3
作者
Author:
白也    时间: 2023-5-18 10:38
前几天刚用ORCA算的激发态Hessian来计算ISC速率,真是上了个大当,一个振动算三四天。感谢,总算不用捏着鼻子用ORCA算激发态Hessian了
作者
Author:
zhaixiaoyi001    时间: 2023-5-23 09:10
白也 发表于 2023-5-18 10:38
前几天刚用ORCA算的激发态Hessian来计算ISC速率,真是上了个大当,一个振动算三四天。感谢,总算不用捏着鼻 ...

因为G16和ORCA5的计算级别做不到完全一致,所以势能面还是有些误差的,有时候算出来会有虚频,而且计算出的数据会有一些误差。
作者
Author:
cokie    时间: 2023-6-8 21:48
老师您好,我想请教一下,在学习使用您写的脚本时,出现了如图的情况,一直卡在这里,请问是什么情况呢(我安装了Python3.11.4,并且安装了对应的numpy库,脚本里把对应文件名改了,并且把脚本和fchk以及gjf都放在同一文件下了。)
作者
Author:
zhaixiaoyi001    时间: 2023-6-9 09:39
cokie 发表于 2023-6-8 21:48
老师您好,我想请教一下,在学习使用您写的脚本时,出现了如图的情况,一直卡在这里,请问是什么情况呢(我 ...

这里filename = input("请输入")这块不需要改成你的文件名。这个命令是从用户输入读取文件名的意思,直接把同目录下的文件名输入就行,不需要更改脚本。
作者
Author:
dacaoyang2008    时间: 2023-6-24 08:40
请问为什么orca_vib t1_opt.hess时总是提示Error-Message:error while reading $act_energy
作者
Author:
zhaixiaoyi001    时间: 2023-6-25 18:32
dacaoyang2008 发表于 2023-6-24 08:40
请问为什么orca_vib t1_opt.hess时总是提示Error-Message:error while reading $act_energy

可能是文件内容有问题,你把所有需要的文件发上来看看
作者
Author:
qaqfdmmj    时间: 2024-6-22 11:07
你好,我最近刚刚接触orca(算振动分辨),想问一下这个方法利用gaussian计算得到ben-s1-freq.hess,是不是说就不用orca进行频率计算而仅进行结构优化即可?
作者
Author:
wzkchem5    时间: 2024-6-23 02:36
qaqfdmmj 发表于 2024-6-22 04:07
你好,我最近刚刚接触orca(算振动分辨),想问一下这个方法利用gaussian计算得到ben-s1-freq.hess,是不是 ...

结构优化和频率计算的软件应当统一。如果频率打算用高斯算,那么结构可以用orca预优化,但最终要过一遍高斯的结构优化。
作者
Author:
qaqfdmmj    时间: 2024-6-27 17:52
wzkchem5 发表于 2024-6-23 02:36
结构优化和频率计算的软件应当统一。如果频率打算用高斯算,那么结构可以用orca预优化,但最终要过一遍高 ...

wzk老师你好,我之前是用gaussian16算振动分辨荧光但是显示 Total convergence =  0.0%.查阅了论坛发现您曾在别的贴子说过这是因为基态和激发态结构差异较大所致,因此推荐使用orca的esd的vg或ahas方法进行计算。我翻阅了orca5.0.4的manual,请问计算振动分辨荧光前是先得到S0和S1的hessian,然后再输入以下的文件吗(manual中的示例)?
ps:这里如果要使用ahas而不是默认的vg是不是就在esd板块加上hessflag ahas即可?
作者
Author:
wzkchem5    时间: 2024-6-27 20:11
qaqfdmmj 发表于 2024-6-27 10:52
wzk老师你好,我之前是用gaussian16算振动分辨荧光但是显示 Total convergence =  0.0%.查阅了论坛发现您 ...

对,但这是AH的写法。VG或AHAS只需要基态结构和基态Hessian,手册另有其他示例
作者
Author:
qaqfdmmj    时间: 2024-6-28 14:36
wzkchem5 发表于 2024-6-27 20:11
对,但这是AH的写法。VG或AHAS只需要基态结构和基态Hessian,手册另有其他示例

是的老师,在手册里有VG和AHAS的示例,不过是在吸收光谱的章节中。
q1:如果是计算荧光光谱这里esd板块中需要的结构和hessian是基态还是激发态的呢?
q2:绘制振动分辨荧光光谱时,请问我用官方推荐的avogrado打开out文件->extensions->spectra还是将.spectrum文件中的数据导入origin自己作图呢?因为我看到avogadro中绘制的是uv和cd,不太明白是不是所需要的荧光光谱
作者
Author:
wzkchem5    时间: 2024-6-28 15:41
qaqfdmmj 发表于 2024-6-28 07:36
是的老师,在手册里有VG和AHAS的示例,不过是在吸收光谱的章节中。
q1:如果是计算荧光光谱这里esd板块 ...

1. 是基态的
2. 应该用.spectrum文件作图。out文件不包含绘制振动分辨光谱所需的信息,因此不管是avogadro还是其他软件,通过读取out文件作的图应该都是非振动分辨的谱
作者
Author:
heroooo    时间: 2024-7-23 16:43
zhaixiaoyi001 发表于 2023-1-10 09:00
最近测试了80原子体系,双路Xeon Platinum 8175M, PBE0-D3/def2-SVP计算水平。 ORCA计算S1 hessian用时约26 ...

请问把高斯计算的.fchk转成.hess文件的原理是什么呢?不同的字段是怎么对应的呢,有没有坐标单位的转换?
作者
Author:
zhaixiaoyi001    时间: 2024-7-25 11:26
heroooo 发表于 2024-7-23 16:43
请问把高斯计算的.fchk转成.hess文件的原理是什么呢?不同的字段是怎么对应的呢,有没有坐标单位的转换?

就是把fchk文件中的hessian提取出来,转换成了ORCA .hess文件输出的格式而已,单位什么的都处理好了。
作者
Author:
qaqfdmmj    时间: 2024-11-7 10:48
wzkchem5 发表于 2024-6-28 15:41
1. 是基态的
2. 应该用.spectrum文件作图。out文件不包含绘制振动分辨光谱所需的信息,因此不管是avogad ...

老师,我这里还是想确认一下是否写对了……我是计算振动分辨的荧光光谱的,已经提前对S0基态进行了opt+freq的计算,然后代入手册中AHAS的写法如下:
! PBE0 def2-TZVP def2/J def2-TZVP/C RIJCOSX tightSCF noautostart miniprint nopop ESD(FLUOR)
%maxcore     4000
%pal nprocs  48 end
%TDDFT
        NROOTS 10
        IROOT 1
END
%ESD
        GSHESSIAN "6_gs.hess"
        DOHT TRUE
        HESSFLAG AHAS
END
* XYZFILE 0 1  6_gs.xyz
其中6_gs对应的都是S0的结构和hessian,想问一下老师:这样得到的spectrum文件是荧光光谱数据吗?
作者
Author:
wzkchem5    时间: 2024-11-7 16:42
qaqfdmmj 发表于 2024-11-7 03:48
老师,我这里还是想确认一下是否写对了……我是计算振动分辨的荧光光谱的,已经提前对S0基态进行了opt+fr ...

我感觉没问题,但是nroots不用设那么大,一般如果优化第一激发态的话,nroots=3足够了




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