计算化学公社

标题: 关于MOKIT处理较大体系缓慢的问题 [打印本页]

作者
Author:
wangzuwei    时间: 2024-6-19 06:19
标题: 关于MOKIT处理较大体系缓慢的问题
之前每次在论坛提问CASSCF相关的问题,zjxitcc老师都会来宣传MOKIT程序。最近比较闲随手测试了一下MOKIT,在较大的体系的情况下(82个原子,54 pairs,cc-pvtz),GVB计算的SCF超过24小时都收敛不了。当然这个是因为gamess程序的gvb效率不够高,但mokit似乎必须要gvb轨道来作为casscf初猜。不知道有没有其他老师也使用过mokit,这个程序一般能处理多大的体系?
作者
Author:
hebrewsnabla    时间: 2024-6-19 15:21
本帖最后由 hebrewsnabla 于 2024-6-19 16:02 编辑

不是必须要gvb,在有uno的情况下可以跳过gvb步骤。

mokit本身没什么计算量,能处理多大的体系要看其调用的程序能处理多大的体系。其实这个“大小”主要取决于活性空间大小而非原子数/基函数数目(完全可能存在原子数很少但是活性空间很大,原子数很多但是活性空间很小的体系。你这个例子可能会让人觉得mokit连80个原子的体系都处理不了,但80个原子的体系的活性空间大小完全有可能是个位数)。

我们估计一个体系是否能算,还是主要看最终的步骤。54 pair 的gvb,进入CASSCF/DMRGSCF步骤的话可能会有好几十个活性轨道,CASSCF很可能做不了,对于目前的DMRG程序来说挑战也比较大。对于此种情况一般需要手动查看gvb轨道的形状和占据数,来决定是否能剔除一部分;或跳过gvb而看局域配对uno的。此时mokit可以作为一个辅助挑选活性轨道的手段,从gvb轨道或局域配对uno(gvb的初猜)当中挑出轨道,要比在rhf轨道/uno/随便做的局域轨道当中挑容易多了。

如果你的例子能够用手动设置合理的活性空间的方式很快收敛,那欢迎贴出这个例子的详情,我们可以看看是否可以改进。
作者
Author:
wangzuwei    时间: 2024-6-19 21:47
hebrewsnabla 发表于 2024-6-19 15:21
不是必须要gvb,在有uno的情况下可以跳过gvb步骤。

mokit本身没什么计算量,能处理多大的体系要看其调用 ...

感谢回复!好几十个活性轨道确实不太合理,按化学直觉来判断,这个体系应该(最小)是一个14e-,10o的活性空间,如果把配体和金属成键的轨道也纳入进来,似乎也到不了20个活性轨道。
我去检查了一下局域配对uno(如果我没理解错的话,应该就是 _asrot.fch文件),似乎有非常多的配体上的轨道被当作active orbital处理,而比较关注的金属d-d成键有些却被忽视了。也有可能是我理解有误,我确实不是很清楚mokit是如何自动选择活性空间的,如果有错误还请见谅!

这个是局域配对uno的波函数文件,如果您有兴趣的话可以看一下。
https://1drv.ms/u/s!AiHhxOgtodsDludC450zCqX492UYYQ

顺便勘一下误,用的是def2-tzvp,不是cc-pvtz。之前打错了(
作者
Author:
wzkchem5    时间: 2024-6-19 21:53
wangzuwei 发表于 2024-6-19 14:47
感谢回复!好几十个活性轨道确实不太合理,按化学直觉来判断,这个体系应该(最小)是一个14e-,10o的活性 ...

我觉得任何纯自动选活性空间的方法,如果不知道你关心分子的哪部分,都经常选不到满意的结果。如果你的体系有大共轭配体,那么很有可能很多配体轨道对correlation energy的贡献比某些金属d轨道要大,但你也不好说MOKIT选错了,因为MOKIT不知道你关心金属部分,它可能觉得你要算配体的UV-Vis,那样的话多选配体轨道就是毫无问题的。
甚至可以举一个更极端的例子:你要研究一个有机分子的一个C-H被羟基自由基夺氢的过程,把这个有机分子给程序自动选CAS(2,2),但是不告诉程序你想要哪个氢断。那样程序再聪明也选不对
作者
Author:
hebrewsnabla    时间: 2024-6-19 21:56
wangzuwei 发表于 2024-6-19 21:47
感谢回复!好几十个活性轨道确实不太合理,按化学直觉来判断,这个体系应该(最小)是一个14e-,10o的活性 ...

文件太大了,墙内下不下来。
作者
Author:
wangzuwei    时间: 2024-6-19 21:59
本帖最后由 wangzuwei 于 2024-6-19 22:14 编辑
wzkchem5 发表于 2024-6-19 21:53
我觉得任何纯自动选活性空间的方法,如果不知道你关心分子的哪部分,都经常选不到满意的结果。如果你的体 ...


我认同这个观点。但是MOKIT现在似乎也没有可以指定分子中一块区域的功能。可不可以这样认为,MOKIT目前更多的是一个辅助挑选CASSCF轨道的工具,可能离真正的自动化还有一些距离?

还有就是我计算的这个Rh2(esp)2的配体应该还算不上大共轭的配体,虽然有配体上有苯环,但跟金属之间也隔了好几个sp3 C。很难说把配体上的键纳入活性轨道是合理的。


作者
Author:
wangzuwei    时间: 2024-6-19 22:03
hebrewsnabla 发表于 2024-6-19 21:56
文件太大了,墙内下不下来。

不好意思,我重新上传到bd网盘上了

链接: https://pan.baidu.com/s/12CfBzpSqpRnhFa7X-Fjd3g?pwd=xk93 提取码: xk93
作者
Author:
hebrewsnabla    时间: 2024-6-19 22:27
本帖最后由 hebrewsnabla 于 2024-6-19 22:28 编辑

MOKIT 目前是根据轨道占据数来挑选轨道的,暂时不支持根据轨道成分来挑选。真正的全自动是不可能的,因为如wzk老师所说,有时候多种方案都是合理的,没法指望程序去猜你想要什么。目前的全自动只是提供一种比较保守的,非极端情况的解。半自动是可以的,我在2L说的也就是一种半自动方法;但是还可以改进得让其更自动一点,比如不用手动观察轨道。我个人觉得半自动主要是用于算不动的时候踢掉一些,至于如果觉得外面还有要拿进来的,那最好算完casscf之后看看这些轨道是不是真的值得拿进来的(这个例子我还没看,不清楚是不是这样的)。

其他的自动casscf方案,如avas,支持根据轨道成分(比如包含某个shell)来选。如果mokit吸收一下这种思想,作为一种半自动方案的一步,应该是可以的。但是avas是支持指定到“某个p shell的pz”这种程度的,这会使得挑选结果和分子朝向有关,我们应该不会这么做。
作者
Author:
wangzuwei    时间: 2024-6-19 22:37
hebrewsnabla 发表于 2024-6-19 22:27
MOKIT 目前是根据轨道占据数来挑选轨道的,暂时不支持根据轨道成分来挑选。真正的全自动是不可能的,因为如 ...

理解。主要是邹老师宣传的太诱人了,这回才准备尝试一下。我还有一个想法,但不知道对不对。如果对于一个体系,HF轨道连定性正确都达不到,那目前MOKIT的这套方法是不是就不太可行?我一直感觉HF对这种4d-4d的成键描述的很有问题
作者
Author:
hebrewsnabla    时间: 2024-6-19 23:03
本帖最后由 hebrewsnabla 于 2024-6-19 23:05 编辑
wangzuwei 发表于 2024-6-19 22:37
理解。主要是邹老师宣传的太诱人了,这回才准备尝试一下。我还有一个想法,但不知道对不对。如果对 ...

UHF能正确描述就行。d-d成键可能需要手动做片段组合UHF初猜,mokit默认的UHF初猜是比较简单的mix(因为片段组合有很多种可能,没法默认做片段组合)。有了正确的uhf结果之后mokit可以读进来。
作者
Author:
wzkchem5    时间: 2024-6-19 23:28
hebrewsnabla 发表于 2024-6-19 15:27
MOKIT 目前是根据轨道占据数来挑选轨道的,暂时不支持根据轨道成分来挑选。真正的全自动是不可能的,因为如 ...

某些AVAS的实现,是可以根据共轭体系的局部朝向来选择pz轨道的。例如现在ORCA内部版本实现的AVAS,选一个苯环的CAS(6,6),不需要事先把苯环转到xy平面,就可以选出6个pz轨道,此处的pz轨道其实指的是垂直于苯环平均平面的p轨道,未必真的是指向z方向的轨道。我今天刚用这个方法选了一个有两个苯环、且两个苯环不共平面的分子的活性空间。
如果要适合尽量多种类的分子,那么AVAS这种基于原子轨道的方法也要有,基于局域轨道(Boys LMO, P-M LMO, GVB)的也要有,基于离域轨道(CMO, UNO, MP2 NO)的也要有,而且要允许同一个计算有的轨道用一种方法选,有的轨道用另一种方法选。比如BDF的iCAS方法就是集成了很多种选择方法,可以允许同一个计算选的活性轨道有的局域有的离域。我最近的一篇文章https://www.frontiersin.org/arti ... m.2023.1259016/full涉及一个大共轭配体的金属配合物,有d-d跃迁、配体LE跃迁、LMCT跃迁,就是用类似AVAS的方法先选金属d轨道和配体pz轨道,然后因为把配体所有pz轨道都拿进来计算量太大,又把pz轨道基的Fock矩阵对角化了一下,取了两个pi轨道和两个pi*轨道。这就属于纯用CMO或纯用原子轨道都搞不定的情形,纯用CMO的话金属double shell轨道挑不出来,纯用原子轨道的话配体pz轨道太多,算不动,只拿一部分pz轨道进来配体LE激发算出来又完全不对




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