计算化学公社

标题: 求助:用ORCA计算SOC时报错 [打印本页]

作者
Author:
emission    时间: 2024-7-22 10:42
标题: 求助:用ORCA计算SOC时报错
按照sob老师用ORCA计算旋转轨道矩阵元的帖子(http://sobereva.com/462)进行了计算,首先用高斯在cam-b3lyp-D3/6-31g(d)下优化了S1的结构,任务正常结束没有虚频。后面用ORCA算SOC的时候报错Negative eigenvalue found in transformed Hamiltonian,计算水平是cam-b3lyp-D3/def2-TZVP,计算命令如下:


! CAM-B3LYP D3 def2-TZVP def2/J def2-TZVP/C RIJCOSX noautostart miniprint tightSCF
%maxcore 3000
%pal nprocs  20 end
%scf
MaxIter 200
stabperform true
end
%tddft
nroots 10
dosoc true
tda false
printlevel 3
end
* xyz 0 1

我看有的帖子写把MaxIter调大,我改成了200还是报错,因为要作比较所以暂时没有改泛函和基组。
求助各位老师这是什么原因?应该怎么去调呀?(输入和输出文件已上传附件)

作者
Author:
zjxitcc    时间: 2024-7-22 12:02
波函数稳定性检验 与 激发态计算 需要分成两步/两个任务算。
作者
Author:
emission    时间: 2024-7-22 14:21
本帖最后由 emission 于 2024-7-22 15:21 编辑
zjxitcc 发表于 2024-7-22 12:02
波函数稳定性检验 与 激发态计算 需要分成两步/两个任务算。

老师这应该怎么做,是否是这样两个文件
1.
! CAM-B3LYP D3 def2-TZVP def2/J def2-TZVP/C RIJCOSX noautostart miniprint tightSCF
%maxcore 3000
%pal nprocs  20 end
%scf
MaxIter 200
stabperform true
end
2.
! CAM-B3LYP D3 def2-TZVP def2/J def2-TZVP/C RIJCOSX noautostart miniprint tightSCF
%maxcore 3000
%pal nprocs  20 end
%tddft
nroots 10
dosoc true
tda false
printlevel 3
end
第一步是不是类似于高斯的stable=opt,第二步应该怎么读取第一步得到的稳定波函数呢?谢谢老师

另外我看输出文件是在计算三重态的时候报错,单重态计算没有问题,这样是不是要优化三重态的波函数?

作者
Author:
zjxitcc    时间: 2024-7-22 15:26
emission 发表于 2024-7-22 14:21
老师这应该怎么做,是否是这样两个文件
1.
! CAM-B3LYP D3 def2-TZVP def2/J def2-TZVP/C RIJCOSX noau ...

ORCA做波函数稳定分析不能使用默认阈值,亦或草草写个关键词了事。对于RHF/RDFT需要这么写
  1. STABPerform true
  2. STABRestartUHFifUnstable false
  3. STABMaxIter 500
  4. STABDTol 1e-5
  5. STABRTol 1e-5
复制代码
ORCA目前遇到RHF->UHF波函数不稳定时,无法自动切换为UHF计算(Gaussian就可以自动切换),会报错然后异常终止,需要自己另提交UHF/UDFT计算,所以这里STABRestartUHFifUnstable干脆设为False。如果稳定,程序会自然终止;如果不稳定,程序不会尝试继续优化波函数,也会正常终止。对于UHF/UDFT需要这么写
  1. STABPerform true
  2. STABRestartUHFifUnstable true
  3. STABMaxIter 500
  4. STABDTol 1e-5
  5. STABRTol 1e-5
复制代码
注意仔细查看计算结果,它如果发现波函数不稳定,无法自动一直优化至稳定(不如Gaussian的stable=opt智能)。这两组关键词都是写在%scf中。

把noautostart删掉,保持gbw与inp文件同名(意思就是从上一步复制一个gbw文件过来,改一下文件名),便可自动读入轨道,无需刻意添加关键词。


作者
Author:
emission    时间: 2024-7-22 15:30
zjxitcc 发表于 2024-7-22 15:26
ORCA做波函数稳定分析不能使用默认阈值,亦或草草写个关键词了事。对于RHF/RDFT需要这么写ORCA目前遇到RH ...

好的,谢谢老师指导!我按您说的分两步计算试一下
作者
Author:
wzkchem5    时间: 2024-7-22 17:50
zjxitcc 发表于 2024-7-22 08:26
ORCA做波函数稳定分析不能使用默认阈值,亦或草草写个关键词了事。对于RHF/RDFT需要这么写ORCA目前遇到RH ...

顺便一提,ORCA 6.0(过几天就发布了)的稳定性分析是可以自动切换为UHF的
作者
Author:
emission    时间: 2024-7-24 20:41
zjxitcc 发表于 2024-7-22 15:26
ORCA做波函数稳定分析不能使用默认阈值,亦或草草写个关键词了事。对于RHF/RDFT需要这么写ORCA目前遇到RH ...

老师,我最近计算遇到了两个新问题想请教一下
1.我用了高斯进行stable=opt计算,得到了稳定波函数,但是按照sober老师在http://bbs.keinsci.com/thread-14905-1-3.html这帖子里写的方法去转换gbw文件时,使用orca_2mkl 命令显示command not found,请问还有别的方法转换吗?

2.我用ORCA算了一个新的分子的SOC,显示了和原帖一样的报错,但是我看波函数分析是稳定的,显示SCF CONVERGED AFTER  16 CYCLES,计算单线态激发态也是对的,但是计算三重态激发态报错Negative eigenvalue found in transformed Hamiltonian,请问这种是什么原因呀?
我附上了新的输出文件
作者
Author:
zjxitcc    时间: 2024-7-24 23:12
emission 发表于 2024-7-24 20:41
老师,我最近计算遇到了两个新问题想请教一下
1.我用了高斯进行stable=opt计算,得到了稳定波函数,但是 ...

1. 基础问题
orca_2mkl小程序是ORCA自带的,你有ORCA就有orca_2mkl。假设你的ORCA计算是在Linux下进行的,那么fch转mkl文件这一步你既可以在Win进行,也可以在Linux下进行。然后你应该把mkl文件传到要做ORCA计算的Linux机器下,使用orca_2mkl小程序将mkl转化为gbw。任何号称可以产生ORCA波函数文件的第三方程序,都遵循fch->mkl->gbw这条路线(哪怕它隐藏了中间mkl文件步骤没让你显式看到)。你不应该在Win下产生gbw文件,因为你的Windows系统里大概率没装ORCA,这导致了你的报错(当然,也没必要装Win版ORCA,因为你要到Linux下做计算)。

我个人强烈推荐使用MOKITfch2mkl小程序做这种事情,假设我们有h2o.fch文件,那么直接在Linux下运行
  1. fch2mkl h2o.fch
  2. orca_2mkl h2o_o -gbw
复制代码
便可产生h2o_o.inp, h2o_o.mkl和h2o_o.gbw文件,更详细的教程可以阅读《利用MOKIT从Gaussian向其他量化程序传轨道》中的“7. Gaussian传轨道给ORCA”。

2. 我不知道是什么问题,但是“波函数分析是稳定的,显示SCF CONVERGED AFTER  16 CYCLES”这句没有逻辑,SCF CONVERGED说的是SCF收敛,跟波函数稳定性没有半毛钱关系,我也没在输入文件里看到任何检验波函数稳定性的步骤或关键词,也没看到什么读取 稳定波函数的轨道 的关键词。


作者
Author:
emission    时间: 2024-7-25 09:50
zjxitcc 发表于 2024-7-24 23:12
1. 基础问题
orca_2mkl小程序是ORCA自带的,你有ORCA就有orca_2mkl。假设你的ORCA计算是在Linux下进行的 ...

谢谢老师!
1.我是在Linux系统下进行的这一步,但是不知道为什么报错了,系统也安装了ORCA。我研究下fch2mkl怎么用,谢谢老师!

2.我的问题,我刚看了一下是我忘记加稳定性分析了,按照之前老师说的稳定性分析和激发态计算分成两个,我就去掉了稳定性分析,但是忘记先做一步了,我重新计算。
作者
Author:
zjxitcc    时间: 2024-7-25 12:53
emission 发表于 2024-7-25 09:50
谢谢老师!
1.我是在Linux系统下进行的这一步,但是不知道为什么报错了,系统也安装了ORCA。我研究下fch ...

如果在Linux系统下安装了ORCA,却显示orca_2mkl command not found,说明ORCA的环境变量没写对。
作者
Author:
emission    时间: 2024-7-25 13:19
本帖最后由 emission 于 2024-7-25 13:21 编辑
zjxitcc 发表于 2024-7-25 12:53
如果在Linux系统下安装了ORCA,却显示orca_2mkl command not found,说明ORCA的环境变量没写对。

老师,我用的组里的系统,没有权限去改软件的东西,我发现ORCA的安装文件里有orca_2mkl这个程序,我就用完整路径试了一下,发现是可以运行的,但是运行和就卡住了,一直没有反应,老师知道这是什么问题吗?


我只输入orca_2mkl的时候出现图二这些信息,应该是能正常运行吧?

作者
Author:
zjxitcc    时间: 2024-7-25 13:56
emission 发表于 2024-7-25 13:19
老师,我用的组里的系统,没有权限去改软件的东西,我发现ORCA的安装文件里有orca_2mkl这个程序,我就用 ...

你的mkl文件是用fch2mkl小程序产生的吗?我猜不是。
另外我猜你的fch文件用的是Pople基组,并且是Gaussian默认的6D 7F,而ORCA只支持5D 7F(这些信息如果用fch2mkl小程序,马上就会报错告诉你,而不用我打这么多字)
作者
Author:
emission    时间: 2024-7-25 14:49
zjxitcc 发表于 2024-7-25 13:56
你的mkl文件是用fch2mkl小程序产生的吗?我猜不是。
另外我猜你的fch文件用的是Pople基组,并且是Gaussi ...

老师,因为我们组里在系统安装软件需要申请,我就用了之前multiwfn转换的mkl文件。我现在下载了windows版的mokit,打算现在自己电脑上转成mkl,确实出现了报错,我再重新按提示算一次。
作者
Author:
zjxitcc    时间: 2024-7-25 14:50
本帖最后由 zjxitcc 于 2024-7-25 14:56 编辑
emission 发表于 2024-7-25 14:49
老师,因为我们组里在系统安装软件需要申请,我就用了之前multiwfn转换的mkl文件。我现在下载了windows版 ...

注意是有2个警告和1个报错,均要处理。注意产生的inp文件中关键词未必符合你的实际计算需求,记得修改。无需使用Win版MOKIT(过于陈旧),随便找个Linux环境(例如Win下的WSL)便可使用conda在线安装Linux版MOKIT。
作者
Author:
emission    时间: 2024-7-26 19:05
zjxitcc 发表于 2024-7-25 14:50
注意是有2个警告和1个报错,均要处理。注意产生的inp文件中关键词未必符合你的实际计算需求,记得修改。 ...

老师,我重新用高斯使用5D 7F优化波函数,然后用MOKIT获得了gbw文件,和计算SOC的inp文件放在同一个文件夹下运行,但是仍然报错Negative eigenvalue found in transformed Hamiltonian,请问老师知道这应该怎么办吗?


作者
Author:
hebrewsnabla    时间: 2024-7-26 19:39
emission 发表于 2024-7-26 19:05
老师,我重新用高斯使用5D 7F优化波函数,然后用MOKIT获得了gbw文件,和计算SOC的inp文件放在同一个文件 ...

你的输出看起来orca没有读取轨道
作者
Author:
emission    时间: 2024-7-27 11:59
hebrewsnabla 发表于 2024-7-26 19:39
你的输出看起来orca没有读取轨道

老师,我本来是把inp和同名gbw文件放在一起运行的,没有加多余的关键词。后面我翻了翻论坛的贴子,试着加上moread关键词和bgw文件的路径,但是看输出文件还是没有读取,请问老师知道这是什么问题吗?
我都输入文件是
! CAM-B3LYP D3 def2-TZVP def2/J def2-TZVP/C RIJCOSX miniprint tightSCF
!moread
%moinp "/home/tang/data_disk1/WSY/orca/inp/DBTCO-S1.gbw"
%maxcore 3000
%pal nprocs  20 end
%tddft
nroots 10
dosoc true
tda false
printlevel 3
end
* xyz 0 1


同时附上了输出文件

作者
Author:
hebrewsnabla    时间: 2024-7-27 15:17
emission 发表于 2024-7-27 11:59
老师,我本来是把inp和同名gbw文件放在一起运行的,没有加多余的关键词。后面我翻了翻论坛的贴子,试着加 ...

可以试试去掉miniprint
作者
Author:
emission    时间: 2024-7-29 10:14
hebrewsnabla 发表于 2024-7-27 15:17
可以试试去掉miniprint

谢谢老师,我按您说的去掉miniprint,这次输出结果里显示读取gbw文件了!
可是还是报错了,和之前的报错一样Negative eigenvalue found in transformed Hamiltonian,请问老师知道这是什么原因吗?应该怎么去调整呀?
附上了输出文件

作者
Author:
hebrewsnabla    时间: 2024-7-29 15:07
emission 发表于 2024-7-29 10:14
谢谢老师,我按您说的去掉miniprint,这次输出结果里显示读取gbw文件了!
可是还是报错了, ...

用fch传给orca的话,高斯任务的基组要和orca任务的基组相同。使用fch2mkl的话,要使用fch2mkl创建的inp文件(可以在此基础上添加td 辅助基的关键词),里面已经写好了基组可以保证基组是相同的。
作者
Author:
wzkchem5    时间: 2024-7-29 16:12
emission 发表于 2024-7-29 03:14
谢谢老师,我按您说的去掉miniprint,这次输出结果里显示读取gbw文件了!
可是还是报错了, ...

老生常谈的问题了,说明基态波函数不稳定。
最好的解决方法是改用NEVPT2算SOC,次好是检查泛函是否不适合、如果不适合的话更换泛函,再次好是打开TDA
作者
Author:
emission    时间: 2024-7-29 20:48
hebrewsnabla 发表于 2024-7-29 15:07
用fch传给orca的话,高斯任务的基组要和orca任务的基组相同。使用fch2mkl的话,要使用fch2mkl创建的inp文 ...

谢谢老师,我确实没用fch2mkl的inp文件,我试一下
作者
Author:
emission    时间: 2024-7-29 20:49
wzkchem5 发表于 2024-7-29 16:12
老生常谈的问题了,说明基态波函数不稳定。
最好的解决方法是改用NEVPT2算SOC,次好是检查泛函是否不适 ...

谢谢老师,不太会用NEVPT2,打算后面用不同的泛函试一下
作者
Author:
zjxitcc    时间: 2024-8-22 20:52
本帖最后由 zjxitcc 于 2024-8-23 10:40 编辑

fch2mkl小程序的使用十分简单,先写一个Gaussian输入文件
  1. %chk=DBTCO.chk
  2. %mem=180GB
  3. %nprocshared=64
  4. #p UCAM-B3LYP/def2TZVP nosymm int=nobasistransform guess=mix stable=opt

  5. title

  6. 0 1
  7. C     -1.49891114    0.07026687   -0.50088109
  8. ...
  9. H     -9.56460524    2.69839127    0.42449638
复制代码
提交Gaussian计算,结果为E(UCAM-B3LYP) = -5657.24889771, <S**2>= 0.8324,基态为开壳层单重态,有自旋污染。接着运行
  1. formchk DBTCO.chk DBTCO.fch
  2. fch2mkl DBTCO.fch -dft 'CAM-B3LYP D3'
  3. orca_2mkl DBTCO_o -gbw
复制代码
此举会产生DBTCO_o.inp和DBTCO_o.gbw文件,前者含体系坐标,基组数据和基态UCAM-B3LYP关键词,后者含有轨道信息。我们打开DBTCO_o.inp文件加点激发态关键词,前13行内容如下
  1. %pal nprocs 16 end
  2. %maxcore 10800
  3. ! UKS CAM-B3LYP D3 def2/J def2-TZVP/C TightSCF defgrid3
  4. %tddft
  5. nroots 5
  6. tda false
  7. printlevel 3
  8. end
  9. %scf
  10. Thresh 1e-12
  11. Tcut 1e-14
  12. CNVDamp False
  13. end
复制代码
这里不用写基组def2-TZVP,因为输入文件底下的基组数据已经体现了。提交ORCA计算,可以观察到SCF 5圈收敛,能量变化微小,立即进入TDDFT计算步骤
  1. -------------------------------------------------------------------------------------------
  2.                                       ORCA LEAN-SCF
  3.                               memory conserving SCF solver
  4. -------------------------------------------------------------------------------------------

  5. ----------------------------------------D-I-I-S--------------------------------------------
  6. Iteration    Energy (Eh)           Delta-E    RMSDP     MaxDP     DIISErr   Damp  Time(sec)
  7. -------------------------------------------------------------------------------------------
  8.                ***  Starting incremental Fock matrix formation  ***
  9.                               *** Initializing SOSCF ***
  10. ---------------------------------------S-O-S-C-F--------------------------------------
  11. Iteration    Energy (Eh)           Delta-E    RMSDP     MaxDP     MaxGrad    Time(sec)
  12. --------------------------------------------------------------------------------------
  13.     1    -5657.2503433988385950     0.00e+00  5.96e-05  3.60e-03  1.13e-05    82.4
  14.                *** Restarting incremental Fock matrix formation ***
  15.     2    -5657.2503533339295245    -9.94e-06  1.24e-05  8.87e-04  2.74e-05    79.8
  16.     3    -5657.2503537240827427    -3.90e-07  1.85e-06  1.61e-04  5.62e-06    51.3
  17.     4    -5657.2503537342090567    -1.01e-08  4.67e-07  3.19e-05  7.71e-06    42.5
  18.     5    -5657.2503537442062225    -1.00e-08  3.87e-07  2.59e-05  3.19e-06    37.4
  19.                  **** Energy Check signals convergence ****

  20.                *****************************************************
  21.                *                     SUCCESS                       *
  22.                *           SCF CONVERGED AFTER   5 CYCLES          *
  23.                *****************************************************
复制代码
但这只能解决负激发能的问题,让你可以合理计算此级别下的激发态能量。由于各个电子态有自旋污染,无法计算旋轨耦合,所以我没写doSOC;这种情况下最理想的方式是在CASSCF-NEVPT2下计算SOC,但此体系非常大,而且有很多孤对电子和pi键,这会使活性空间比较大,同时基组又不能低于TZVP,我认为NEVPT2计算多个电子态且计算SOC不是很现实。比较经济的方案是用MRSF-TDDFT计算SOC;再次一点的方案是换个泛函使基态波函数稳定,这样就用不到UKS了。





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