计算化学公社

标题: 比较ORCA-Gaussian解决SCF收敛方法与关键词 [打印本页]

作者
Author:
惠成功QUB    时间: 2019-9-28 16:29
标题: 比较ORCA-Gaussian解决SCF收敛方法与关键词
本帖最后由 惠成功QUB 于 2019-9-28 21:49 编辑

SCF不收敛问题,当然首先应该查看社长的:http://sobereva.com/61
最近在用ORCA的时候尝试了一些ORCA里面的解决SCF不收敛的方法,也看到了之前的本论坛里面的文章http://bbs.keinsci.com/thread-4570-1-1.html 。不过那片文章有点老了,针对ORCA3.0.3和Gaussian09. 现在我总结了一些ORCA4.2.0和Gaussian16的内容,主要参考ORCA的手册,以及一些我测试中的输入和输出。

  
Gaussian 16
  
ORCA 4.2.0
IOp(5/13=0)
%scf  
  ConvForced 1 # Not default  
end
ConvForced # = 0: convergence not mandatory for next calculation step  
       # = 1: break, if you did not meet the convergence criteria
  
强烈建议在使用ORCA的时候手动添加ConvForced=1。
IOp(5/13=1)和ConvForced 0的意思是SCF达到上限不收敛的时候继续计算。这是广受批判且不解决任何问题的做法。但是因为ORCA的默认参数是不必须收敛,所以把这个放在第一个。
SCF=maxcyc=200
MaxIter 200
SCF=Conver=8
! TightSCF
SCF=Conver=N 意味着  
  RMS density matrix 10e-N  
  Max change density matrix 10e-(N-2)
  
! TightSCF 意味着  
  TolE 1e-8       # energy change between two cycles  
  TolErr 5e-7     # DIIS error convergence  
  TolG 1e-5       # orbital gradient convergence  
  TolX 1e-5       # orbital rotation angle convergence
  
! VeryTightSCF 意味着  
  TolE  1.000e-09  
  TolErr  1.000e-08  
  TolG  2.000e-06  
  TolX  2.000e-06
  
Gaussian 在OPT的时候默认SCF=Conver=8。ORCA在OPT和计算梯度的时候默认TightSCF,在单点的时候使用NormalSCF。同时ORCA还有其他关键词,比如ConvCheckMode,来定义更加严格或者松散的SCF收敛。
  
ConvCheckMode 2 (默认)的时候并不会检查TolRMSP(RMS density change)和TolMaxP (maximum density change)所以SCF=Conver=8! TightSCF其实并不等价
int= CoarseGrid
! Grid2 FinalGrid4 (ORCA default)
int=fine
! Grid4 No FinalGrid
int=ultrafine (Gaussian)
!Grid6 NoFinalGrid


! GridX4 # Orca Grid setting for COSX
这样看ORCA做DFT计算的时候,grid似乎少了一些。GridX虽然和SCF收敛关系不大,但是和数值噪音有关系(比如梯度的噪音)


%scf  
  CNVSOSCF true  
  SOSCFStart 0.003300  
  SOSCFMaxIt 150  
end
ORCA在OPT的时候默认CNVSOSCF true,开启SOSCF,并且给了默认的开启条件SOSCFStart 0.0033,当轨道梯度(Orbital gradient/DIIS error)小于此设定值时,从默认的DIIS切换到SOSCF,SOSCFMaxIt如果到了这么多SCF cycle则无论有没有达到前一个条件(Orbital gradient)都开启SOSCF。手册里说CNVSOSCF默认是false,但是实际上OPT的时候默认true,Engrad和大部分的时候默认false,如果OPT不想使用SOSCF,可以写! Nososcf。如果SOSCF开启的过早,则可能产生不可靠的巨大步长。
见ORCA手册9.6.6
  
SCF=(XQC, MaxConventionalCycles=150)
%scf  
  NRMaxIt 150
  NRStart 0.0033  
end
end
此处左右两者意思不太一样,Gaussian中没有达到某个阈值开始二次收敛的意思,只有圈数的定义。Newton-Raphson会让每个SCF Cycle时间变长很多。
SCF=NoIncFock
%scf  
  DirectResetFreq 1 # Default 20  
end
IOp(5/37=N)
%scf  
  DirectResetFreq N # Default 20  
end
重新计算Fock矩阵的SCF次数
  
IOp(5/37)  
0  Default (every 20 for direct, except 40 if  Camp-King is on)  
N  Every N cycle
Guess=Read
%scf  
   Guess MORead  
   MOInp "xxx.gbw"  
end


%scf  
  Guess MORead  
  GuessMode CMatrix  
  MOInp "xxx.gbw"  
end
从之前的结果读入轨道作为初猜。在ORCA中,如果换了基组(比如增大了基组)那么此是GuessMode就有两种可选,CMatrixFMatrix


! SlowConv  
! VerySlowConv
阻尼方法(Damping),ORCA默认开启,并且在轨道梯度小于DampErr的时候停止Damping。Gaussian同样在迭代初期使用动态阻尼
SCF= vshift=100
%scf   
  CNVShift true  # default: true  
  LShift 0.1    # default: 0.25, unit, Eh.  
  ShiftErr 0.1   # default: 0.0  
end
ShiftErr 当DIIS error/gradient小于此值的时候,关闭Level Shifting








ORCA中有很多默认参数可能和手册里又些许的不同,这时候就需要从输出文件里查看相应的参数值了。                                                

   




作者
Author:
indec    时间: 2019-9-28 17:02
[Gaussian/gview] Gaussian官方: IOp(5/13=1) 不应在任何计算中使用 http://bbs.keinsci.com/thread-3344-1-1.html
常见的多余的和被滥用的Gaussian关键词 http://sobereva.com/331
作者
Author:
zjxitcc    时间: 2019-9-28 17:08
本帖最后由 zjxitcc 于 2022-4-24 19:37 编辑

强烈建议删去IOp(5/13=1)部分,以免后人新手看到贻患无穷。怎么可以用这种手段解决不收敛呢。高斯scf的conver小于等于6时我都不信的。
我手上已经写好了很多软件之间传轨道的程序,开源之后,几乎所有SCF不收敛问题转化为高斯的不收敛问题。其他软件只需由高斯传轨道过去即可,可立即收敛。
---
后记:上述程序已开源:https://gitlab.com/jxzou/mokit


作者
Author:
biogon    时间: 2019-9-28 19:22
9012年了怎么还有敢用IOp(5/13=1)的
作者
Author:
biogon    时间: 2019-9-28 19:24
zjxitcc 发表于 2019-9-28 17:08
强烈建议删去IOp(5/13=1)部分,以免后人新手看到贻患无穷。怎么可以用这种手段解决不收敛呢。高斯scf的conv ...

我现在算一个单点,orca用双杂化试了各种方法都难以收敛,包括用能收敛的纯泛函的轨道当初猜都不行,大师能提供一下这个软件我试试吗
作者
Author:
惠成功QUB    时间: 2019-9-28 21:38
不好意思,前面表述有误,我的意思是在使用ORCA的时候,ConvForced=1不是在Gaussian里面IOp(5/13=1)。我已经在正文里面改了
作者
Author:
惠成功QUB    时间: 2019-9-28 21:42
zjxitcc 发表于 2019-9-28 17:08
强烈建议删去IOp(5/13=1)部分,以免后人新手看到贻患无穷。怎么可以用这种手段解决不收敛呢。高斯scf的conv ...

我之前表述有误,我的本意是在使用ORCA的时候加convforce=1,不是在使用Gaussian的时候IOp(5/13=1)。ORCA的默认是convforce=0,相当于在Gaussian中默认IOp(5/13=1),这显然是没有意义的,也是广受批判的。这篇主要是针对ORCA使用,所以把这一个关键词放在第一个。本意是强调手动加入convforce=1.
作者
Author:
neocc    时间: 2022-4-24 19:32
请问ORCA5版本的还更新么,新版本变化还不小
作者
Author:
hdhxx123    时间: 2022-4-24 23:37
neocc 发表于 2022-4-24 19:32
请问ORCA5版本的还更新么,新版本变化还不小

http://bbs.keinsci.com/thread-20748-1-1.html
此处2楼文件后边有更新orca5的
作者
Author:
neocc    时间: 2022-4-26 20:01
hdhxx123 发表于 2022-4-24 23:37
http://bbs.keinsci.com/thread-20748-1-1.html
此处2楼文件后边有更新orca5的

感谢




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