计算化学公社

标题: ORCA的ECP积分是如何归一化的? [打印本页]

作者
Author:
Freeman    时间: 4 day ago
标题: ORCA的ECP积分是如何归一化的?
本帖最后由 Freeman 于 2026-2-12 15:46 编辑

大家好,我想问问ORCA的ECP积分是如何归一化的。

事情的起因是我想实现带ECP的SCF计算,这就要用到ECP积分。我不想自己写ECP积分了,就调了个库libecpint(https://github.com/robashaw/libecpint/)。实现它自带的例子之后,我发现它的结果跟G16算出来的ECP积分不符。问了原作者,他说libecpint的结果符合Molpro和ORCA,之所以不符合G16,大概是因为libecpint并没有对基函数做归一化,但他实在没时间研究这个归一化问题了。

于是我把对于primitive gaussian归一化的contraction coefficient(从libint2得到)喂给了libecpint,发现那些只有一个primitive gaussian的shell对应的矩阵元,libecpint和G16是对得上的,但是多个primitive gaussian的shell仍然对不上。我可以肯定归一化的contraction coefficient没错,因为基于它们实现的DFT格点积分计算的能量都是对的。所以我觉得,可能要做的是另一个层面的归一化,而不单单是primitive gaussian的归一化。鉴于作者说libecpint的结果符合Molpro和ORCA,而Molpro是收费的,我就想问问ORCA对未归一化的ECP积分到底做了什么处理,使得它们可以和密度矩阵缩并并给出正确的能量呢。

非常感谢!!

作者
Author:
beefly    时间: 4 day ago
Molpro底层调用Molcas的seward积分代码,你可以下载OpenMolcas的代码看看
作者
Author:
Freeman    时间: 4 day ago
beefly 发表于 2026-2-12 16:24
Molpro底层调用Molcas的seward积分代码,你可以下载OpenMolcas的代码看看

谢谢提醒。我看到这个代码https://github.com/Molcas/OpenMo ... sorb/fmod1n.F90#L95 ,意思是说先算一个未归一化的重叠矩阵,再以这个矩阵的对角元的倒数平方作为归一化因子。

下一步我就要去libint2那儿提问,如何计算未归一化的重叠矩阵,毕竟libint2给出的直接就是归一化的各种积分了。




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