计算化学公社

标题: 吐槽orca的数值梯度结构优化 [打印本页]

作者
Author:
beefly    时间: 2017-9-26 18:18
标题: 吐槽orca的数值梯度结构优化
本帖最后由 beefly 于 2017-9-26 18:27 编辑

最近测试orca的数值梯度优化,发现有些缺陷:

1,优化不能用对称性,就连每个位移点的单点能计算也不能用对称性。对于闭壳层体系的单参考计算方法来说,这个限制其实是完全没必要的。由于该限制,优化程序无法识别对称等价坐标。
2,数值梯度程序不能识别虚原子,虚原子的坐标也要优化

另外感觉数值梯度程序的算法也考虑得不够周全,就是第一个原子固定,其他原子的坐标全部做位移。这对直角坐标是可以的。例如下面的直角坐标,第一个原子Hg不动,其余原子的x(coordinate 1),y(coordinate 2),z(coordinate 3)坐标分别做+/-两个方向的位移。如果原子数为N,那么位移点数就是(N-1)*3*2。

Hg        0.000000    0.000000    0.000000
F         0.000000    0.000000    1.882600
F         1.882600    0.000000    0.000000
F        -1.882600    0.000000    0.000000
F         0.000000    0.000000   -1.882600

             <<<Displacing   2/coordinate 1 (+)>>>
             <<<Displacing   2/coordinate 1 (-)>>>
             <<<Displacing   3/coordinate 1 (+)>>>
             <<<Displacing   3/coordinate 1 (-)>>>
             <<<Displacing   4/coordinate 1 (+)>>>
             <<<Displacing   4/coordinate 1 (-)>>>
             <<<Displacing   5/coordinate 1 (+)>>>
             <<<Displacing   5/coordinate 1 (-)>>>

             <<<Displacing   2/coordinate 2 (+)>>>
             <<<Displacing   2/coordinate 2 (-)>>>
             <<<Displacing   3/coordinate 2 (+)>>>
             <<<Displacing   3/coordinate 2 (-)>>>
             <<<Displacing   4/coordinate 2 (+)>>>
             <<<Displacing   4/coordinate 2 (-)>>>
             <<<Displacing   5/coordinate 2 (+)>>>
             <<<Displacing   5/coordinate 2 (-)>>>

             <<<Displacing   2/coordinate 3 (+)>>>
             <<<Displacing   2/coordinate 3 (-)>>>
             <<<Displacing   3/coordinate 3 (+)>>>
             <<<Displacing   3/coordinate 3 (-)>>>
             <<<Displacing   4/coordinate 3 (+)>>>
             <<<Displacing   4/coordinate 3 (-)>>>
             <<<Displacing   5/coordinate 3 (+)>>>
             <<<Displacing   5/coordinate 3 (-)>>>


但是对于内坐标,orca的数值梯度算法就有问题了。例如上面的直角坐标改写成内坐标。由于虚原子坐标也要优化,因此总的位移点数从上面的24增加到30!更辣眼睛的是,第二个原子的键角(Displacing   2/coordinate 2)、第二、第三个原子的二面角(Displacing   2/coordinate 3,Displacing   3/coordinate 3)是没有意义的,居然也要做差分!
%coords
CTyp      internal
Charge    0
Mult      1
coords
  DA   0  0  0    0        0      0
  Hg   1  0  0    1.0      0      0
  F    2  1  0    1.8826   90.0   0
  F    2  1  3    1.8826   90.0   90.0
  F    2  1  4    1.8826   90.0   90.0
  F    2  1  5    1.8826   90.0   90.0
end
end

             <<<Displacing   2/coordinate 1 (+)>>>
             <<<Displacing   2/coordinate 1 (-)>>>
             <<<Displacing   3/coordinate 1 (+)>>>
             <<<Displacing   3/coordinate 1 (-)>>>
             <<<Displacing   4/coordinate 1 (+)>>>
             <<<Displacing   4/coordinate 1 (-)>>>
             <<<Displacing   5/coordinate 1 (+)>>>
             <<<Displacing   5/coordinate 1 (-)>>>
             <<<Displacing   6/coordinate 1 (+)>>>
             <<<Displacing   6/coordinate 1 (-)>>>

             <<<Displacing   2/coordinate 2 (+)>>>
             <<<Displacing   2/coordinate 2 (-)>>>
             <<<Displacing   3/coordinate 2 (+)>>>
             <<<Displacing   3/coordinate 2 (-)>>>
             <<<Displacing   4/coordinate 2 (+)>>>
             <<<Displacing   4/coordinate 2 (-)>>>
             <<<Displacing   5/coordinate 2 (+)>>>
             <<<Displacing   5/coordinate 2 (-)>>>
             <<<Displacing   6/coordinate 2 (+)>>>
             <<<Displacing   6/coordinate 2 (-)>>>

             <<<Displacing   2/coordinate 3 (+)>>>
             <<<Displacing   2/coordinate 3 (-)>>>
             <<<Displacing   3/coordinate 3 (+)>>>
             <<<Displacing   3/coordinate 3 (-)>>>
             <<<Displacing   4/coordinate 3 (+)>>>
             <<<Displacing   4/coordinate 3 (-)>>>
             <<<Displacing   5/coordinate 3 (+)>>>
             <<<Displacing   5/coordinate 3 (-)>>>
             <<<Displacing   6/coordinate 3 (+)>>>
             <<<Displacing   6/coordinate 3 (-)>>>


关于orca数值梯度优化的一点建议:

1) 一般不要用虚原子。如果非要用,见3)。
2) 一般不要用z-矩阵。如果非要用,见3)。
3) 必要的话,利用geom的Constraints数据区定义固定的坐标变量,从而降低优化变量的个数。

以下两点目前无法解决:
1) 无法识别对称等价的坐标参数。数值梯度程序是按照几个独立的坐标参数来处理的。因此一个XY6类型的Oh对称性体系,别的程序只需要优化1个键长变量(2个位移点),orca则至少要优化6个键长(假设其他坐标用Constraints固定),12个位移点。
2) 每个位移点的单点计算不能用对称性。
彻底解决这两个问题,目前只能自己写驱动来调用orca做一系列单点计算。


作者
Author:
Jasminer    时间: 2017-9-26 21:39
对于对称性,一些计算化学研究者有着极端的偏见。
我觉得这些人绝对不能算理论化学家
作者
Author:
Warm_Cloud    时间: 2017-9-26 21:42
ORCA值得吐槽的地方太多了。。。。。比如并行,mp2解析二阶导,运行中一大堆临时文件。
作者
Author:
agent99    时间: 2017-9-27 00:23
Jasminer 发表于 2017-9-26 07:39
对于对称性,一些计算化学研究者有着极端的偏见。
我觉得这些人绝对不能算理论化学家

??
作者
Author:
liyuanhe211    时间: 2017-9-27 00:33
Warm_Cloud 发表于 2017-9-26 21:42
ORCA值得吐槽的地方太多了。。。。。比如并行,mp2解析二阶导,运行中一大堆临时文件。

Neese说MP2二阶导确实不好,但一时半会懒得做(没人做),要用就去用RI-MP2的→_→
作者
Author:
冰释之川    时间: 2017-9-27 09:03
liyuanhe211 发表于 2017-9-27 00:33
Neese说MP2二阶导确实不好,但一时半会懒得做(没人做),要用就去用RI-MP2的→_→

用ORCA的MP2,都是开RI的吧,不开几乎没人用(大家都是冲着黑科技去的)  除非要用ORCA下的方法做个Benchmark之类的
作者
Author:
Jasminer    时间: 2017-9-27 09:45
agent99 发表于 2017-9-27 00:23
??

比如说优化时绝对不要用对称性
作者
Author:
sobereva    时间: 2017-9-27 11:42
冰释之川 发表于 2017-9-27 09:03
用ORCA的MP2,都是开RI的吧,不开几乎没人用(大家都是冲着黑科技去的)  除非要用ORCA下的方法做个 ...

可惜开RI的MP2 Hessian还是很慢...
作者
Author:
rayinyin    时间: 2018-5-4 10:56
大多数情况下ORCA的对称性不能加速计算的,只能在分析的时候帮你指认不可约表示这一类的信息。
对于CAS或MRCI部分开了对称性能够只算某一不可约表示下的波函数,但我遇到过在CAS时,开了对称性反而不收敛的问题。
我听说,ORCA这个软件在一开始写的时候,就没有考率对称性,因此这部分功能很差的。
作者
Author:
guanyafu    时间: 2019-11-2 04:57
Molpro中也提到用symmetrical displacement来计算数值梯度,请问这个是怎么定义的,有没有相关参考文献?




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