3. 组态相互作用方法#
3.1. 电子相关的若干基本概念#
在HF方法当中,自旋相同的电子在同一空间坐标出现的概率为0,而自旋相反电子在同一位置出现概率互相独立,这个不合理的情况是由于单Slater行列式的近似忽略 电子关联(Electron Correlation) 导致的。处理电子关联的量子化学方法在HF之后,统一称作 Post-HF 方法。由于不同激发的Slater行列式是完备的,因此在考虑电子关联的问题时,我们自然会想到在波函数中添加更多激发组态的办法。对于每个Slater行列式系数的优化通过变分法来求得,即为CI方法的一般思路。
考虑所有组态的Full-CI方法需要添加 \((C_n^k)^2\) 个Slater行列式的贡献,其中 \(n\) 为轨道总数目, \(k\) 为占据轨道总数目。这对于一般分子显然是难以计算的。因此我们需要在Full-CI的基础上去做以近似。最直接的近似就是截断激发组态到一定阶数,这就是 组态相互作用(Configuration-Interaction, CI)方法 的理论基础。除了CI方法外,之后会陆续介绍 耦合簇(Coupled-Cluster, CC)方法 和 多体微扰理论(Many-Body Perturbation Theory, MBPT) 等post-HF方法。
如何选取所需组态需要涉及 参考态(Reference State) 的概念。当我们假定波函数由某一个或某几个Slater行列式主导的时候,它们就是各种Post-HF方法的参考态。根据参考态我们也可以衍生出电子相关的两个重要概念: 静态相关(Static Correlation) 和 动态相关(Dynamical Correlation) :
静态相关 指单Slater行列式无法对体系给出定性正确描述的情况,也就是多参考态方法解决的问题;
动态相关 指与电子瞬时相互作用有关的关联效应,表现为参考态之外的每个组态都有很小贡献,但加起来是可观的,它便需要在参考态的基础上,使用CI/CC/MBPT等方法来处理。
3.2. CI的波函数、能量与方程#
全局归一化CI的波函数不利于参数化,因此我们往往采取“中间归一化”措施:
我们定义参考态的函数为 \(| 0 \rangle = \sum\limits_i C_i^{(0)} | i \rangle\) ,参考态之外的波函数为 \(| \pmb c \rangle = \sum\limits_i c_i | i \rangle\) ,则总的波函数写为:
该波函数依然存在多余的参数。考虑 \(\pmb c_\alpha = \pmb c + \alpha (\pmb C^{(0)} + \pmb c)\) ,则会得到相同的波函数。为了去除参数冗余性,定义投影算符
将参数 \(\pmb c \to \hat P \pmb c\) 固定在垂直于 \(\pmb C_0\) 的方向上面,构建的波函数即为:
通过波函数 (4) 定义的CI能量为:
其中Hamilton矩阵 \(\pmb H\) 是在组态空间上展开的;投影算符矩阵 \(\pmb P = \pmb I - \pmb C{(0)} \pmb C^{(0)T}\)
在 \(\pmb C = 0\) 时,能量的一阶梯度和二阶梯度分别为:
一阶梯度为0的条件等价于CI方程
3.3. CI方程的求解技术#
3.3.1. 牛顿法与近似牛顿法#
在牛顿法中,我们通过方程
来更新CI向量的变化量。而由于冗余性的消除导致 \(\pmb c\) 需要满足条件 \(\pmb C^{(0)T} \pmb c = 0\) ,因此在能量二阶梯度上增加如下的额外项也能满足 \(\pmb c\) 的要求:
但是解此方程仍然可以得到和冗余参数 \(\alpha\) 无关的 \(\pmb c\) :
CI的牛顿法是三阶收敛的,但由于 (9) 中存在难求的Hamilton量矩阵逆 \((\pmb H - E^{0} \pmb I)^{-1}\) ,这使得每一步的耗费巨大。因此我们可以通过使用一个近似Hamilton量 \((\pmb H^{(0)} - E^{(0)} \pmb I)^{-1}\) 的方法来获得,该方法便称为准牛顿法。经过进一步简化可以得到下面的 Davidson方法 的更新策略:
在PySCF的CI求解过程中使用了Davidson方法,见 lib.linalg_helper.davidson1 函数。其传入了一个名为 precond 的函数用以完成 \(\pmb x \to (\pmb H^{(0)} - E^{(0)} \pmb I)^{-1} \pmb x\) 的变换。同理对于 \(\pmb H\) 本身,在CI算法中也没有保存巨大的哈密顿矩阵,而是通过巧妙选取 \(\pmb x \to \pmb H \pmb x\) 的函数,来大幅减小存储空间和时间复杂度。在本节后两个主题会继续讨论CI的计算细节。