简述 Hartree-Fock 方法
本篇文章的内容主要来自:Hartree Fock Method: A Simple Explanation
背景
Douglas Rayner Hartree
图片链接
为了解决多电子体系薛定谔方程近似求解的问题,量子化学家道 Douglas Hartree 在 1928 年提出了 Hartree 假设,将每个电子看做是在其他所有电子构成的平均势场中运动的粒子,并且首先提出了迭代法的思路。 Hartree 根据他的假设,将体系电子哈密顿算子分解为若干个单电子哈密顿算子的简单代数和,每个单电子哈密顿算子中只包含一个电子的坐标,因而体系多电子波函数可以表示为单电子波函数的简单乘积,这就是 Hartree 方程。但是由于 Hartree 没有考虑电子波函数的反对称要求,他的 Hartree 方程实际上是非常不成功的。
Vladimir Fock
图片链接
John C. Slater
图片链接
John C. Slater(1929)和 Vladimir Fock(1930)分别独立的提出了单行列式多电子体系波函数和泡利原理的自洽场迭代方程,这就是今天的 Hartree-Fock 方程。 但是由于计算上的困难,Hartree-Fock 方程诞生后整整沉寂了二十年,在 1951 年,量子化学家 Clemens C. J. Roothaan 想到将分子轨道用原子轨道的线性组合来近似展开,而得到了闭壳层结构的 Roothaan 方程。
John C. Slater 当时发表的文章
文章链接
Vladimir Fock 当时发布的文章
文章链接
Clemens C. J. Roothaan
图片链接
Clemens C. J. Roothaan 发表 Roothaan 方程的文章
图片链接
如果你对学习计算化学感兴趣,你不能忽视 Hartree-Fock 理论。尽管目前研究人员很少在研究中直接使用 Hartree-Fock 方法,但它是几乎所有电子结构方法的基石。Hartree-Fock 方法是解决量子力学问题的实用方法,在描述原子和分子的电子结构时,量子力学是无可替代的。然而,理解 Hartree-Fock 理论是一项艰巨的挑战,它的困难使许多新手计算化学家不得不跳过它。如果说实话,我已经这样做了一段时间,但后来我意识到,每当我试图学习计算化学的新主题时,这个理论就会困扰我。
掌握 Hartree-Fock 方法需要对线性代数有扎实的理解和大量的智力努力。然而,在这篇文章中,我试图对 Hartree-Fock 理论进行一个简单而有见地的解释,这可以作为掌握计算方法的起点。
什么是 Hartree-Fock 方法?
简而言之,Hartree-Fock 方法是求解多体电子系统的时间无关薛定谔方程的一种近似迭代计算方法。
只有应用量子力学规则并求解传说中的薛定谔方程,才能对原子系统进行正确的描述,薛定谔方程解释了原子和亚原子粒子的运动。但正如我们从量子力学教科书中所知道的,薛定谔方程只适用于少数基本的单电子类氢系统。因此,我们需要更复杂系统的近似方法。在量子化学中,有两种基本理论可以近似多电子系统的电子结构:价键理论和分子轨道理论,这两种理论均相当于 Hartree-Fock 理论。Hartree-Fock 方法更易于计算机编码,因此是求解与时间无关的薛定谔方程的主要近似方法。
Hartree-Fock 近似将多电子波函数分解为一组单电子波函数,称为分子轨道——事实上,每个化学家心目中普遍存在的分子轨道概念源于 Hartree-Fock 理论。我们也把 Hartree-Fock 方法称为自洽场方法,因为它是寻找薛定谔方程解的特殊迭代方法,我将在下一节中解释。
正如我稍后将解释的,Hartree-Fock 方法本身的准确性不足,因为它没有考虑电子相关性。因此,如今研究人员很少直接使用它。但是 Hartree-Fock 模型是大多数流行的电子结构方法背后的基础理论。事实上,我们有许多精确的计算方法,从 Hartree-Fock 方程开始,然后以某种方式固定其电子相关性。它们被称为后 Hartree-Fock 方法。此外,密度泛函理论的所有半经验方法和 Kohn–Sham 实现都是基于 Hartree-Fock 方法。
电子的多体问题
正如我之前提到的,理论化学的基本问题是求解由原子核和电子组成的多体电子系统的薛定谔方程。本节将简要描述这个问题,然后解释出色的 Hartree 和 Fock 的解决方案。
让我们从非相对论性时间无关薛定谔方程的一般形式开始。
\[H|\Psi\rangle=E|\Psi\rangle\]
要求解上述薛定谔方程,我们必须知道系统的哈密顿量和波函数。根据量子力学,由几个原子核和电子组成的多体系统的哈密顿算符为:
为了简单起见,上面的方程式采用原子单位。它的项分别表示电子的动能、原子核的动能、电子和原子核之间的库仑引力、电子之间的排斥力和原子核间的排斥力。你可以在量子化学课本上找到这个方程的推导方法。然而,Born-Oppenheimer 近似指出,由于原子核比电子重得多,移动速度慢得多,我们可以考虑电子在固定原子核的场中移动。因此,我们可以将上式中的第二项等同于零,并将最后一项视为常数。这样导致的误差可以忽略不计,因为向算符添加任何常数不会影响算符的特征函数,只会添加到算符的特征值。剩下的项被称为电子哈密顿量,它们表示 \(N\) 个电子在 \(M\) 个固定核的场中的运动。
\[\displaystyle H_{\text {elec }}=-\sum_{i=1}^{N} \frac{1}{2} \nabla_{i}^{2}-\sum_{i=1}^{N} \sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}\]
如果我们求解电子哈密顿量的薛定谔方程,该解包括电子能量和描述电子运动的电子波函数。
\[H_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle=E_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle\]
电子波函数明确取决于电子坐标,但参数取决于核坐标,因此,尽管电子波函数不包括核坐标,但对于不同的原子核排列,\(\Psi_{\text {elec }}\) 是不同的函数。固定核的总能量还包括恒定的核斥力。
\[\displaystyle E_{\text {tot }}=E_{\text {elec }}+\sum_{A=1}^{M} \sum_{B>A}^{M} \frac{Z_{A} Z_{B}}{R_{A B}}\]
如果我们能求解电子的薛定谔方程,我们就可以在推导电子方程的相同假设下,通过引入核哈密顿量来描述核的运动。因此,计算化学的主要问题是求解电子薛定谔方程,这是 Hartree-Fock 方法的最终目标。
为了求解电子薛定谔方程,我们别无选择,只能将 \(N\) 电子方程分解为一组单电子方程:
\[h\left(x_{i}\right) \chi_{j}\left(x_{i}\right)=\varepsilon_{j} \chi_{j}\left(x_{i}\right)\]
要做到这一点,电子哈密顿量 \(\displaystyle H_{\text {elec }}=-\sum_{i=1}^{N} \frac{1}{2} \nabla_{i}^{2}-\sum_{i=1}^{N} \sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}\) 必须分离为一组单电子哈密顿量。
\[\displaystyle H_{\text {elec }}=-\sum_{i=1}^{N} \frac{1}{2} \nabla_{i}^{2}-\sum_{i=1}^{N} \sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}=\sum_{i=1}^{N} h\left(x_{i}\right)\]
这个方程中的第一项是单电子动能的总和。第二个是每个电子和所有原子核之间的吸引力之和。因此,前两项是可分离的——注意,分离是基于电子的。但是,最后一项是所有电子对之间的排斥力之和,不可分割为单个电子项。Hartree 建议我们可以平均地近似电子-电子排斥。这意味着,我们可以计算每个电子与所有其他电子的平均场之间的排斥力,而不是计算所有电子对的排斥力。 通过这样做,我们可以将第三项分离为一组单电子项,并将哈密顿量写成单电子算符的和:
\[\begin{array}{c}\displaystyle H_{\text {elec }}=\sum_{i=1}^{N} f\left(x_{i}\right)\\\displaystyle f\left(x_{i}\right)=-\frac{1}{2} \nabla_{i}^{2}-\sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}+v^{H F}\left(x_{i}\right)\end{array}\]
\(v^{H F}\) 是第 \(i\) 个电子由于其他电子而经历的平均电势,\(f(x)\) 是一个单电子算符,称为 Fock 算符。使用 Fock 算符,我们可以将电子薛定谔方程分解为一组单电子方程。
\[f\left(x_{i}\right) \chi\left(x_{i}\right)=\varepsilon \chi\left(x_{i}\right)\]
尽管这个方程是一个单电子问题,但 Hartree-Fock 势(\(v^{H F}\) )取决于整个系统的波函数。因此,这是一个非线性问题,必须迭代求解。Hartree-Fock 方法的基本思想是,使用初始试验波函数,计算平均场,然后使用该平均场求解特征值方程\(f\left(x_{i}\right) \chi\left(x_{i}\right)=\varepsilon \chi\left(x_{i}\right)\) ,并产生新的波函数。使用新的波函数来计算新的平均场,并重复此过程,直到满足某些收敛标准为止。自洽场(SCF)是 Hartree-Fock 方法的另一个名称,我将在最后一节中详细解释。
Hartree-Fock 波函数与 Slater 行列式
既然我们已经知道了方程 \(H|\Psi\rangle=E|\Psi\rangle\) 中的哈密顿量,我们就必须指定许多电子系统的波函数的形式。首先,波函数必须是可分离的,才能满足方程 \(H_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle=E_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle\) 。Hartree 近似地考虑了不相关(相互独立)的电子,以建立可分离的波函数。波函数的平方是在特定体积的空间中发现电子的概率,同时发生两个独立事件的概率等于它们各自概率的乘积。因此,\(N\) 个不相关电子的电子波函数必须等于一个电子波函数的乘积。
\[\Psi_{H P}\left(x_{1}, x_{2}, \cdots, x_{N}\right)=\chi_{i}\left(x_{1}\right) \chi_{j}\left(x_{2}\right) \cdots \chi_{k}\left(x_{N}\right)\]
这个方程被称为 Hartree 乘积。\(\chi\left(x\right)\) 是被称为自旋轨道的单电子波函数,它们中的每一个都是三个空间坐标和一个量子性质的函数,称为自旋坐标。然而,Hartree 乘积作为电子波函数具有严重的流动性。也就是说,它与电子的不可区分性不一致。注意,如果我们在 Hartree 乘积中交换两个电子,结果项是不同的。
\[\chi_{i}\left(x_{1}\right) \chi_{j}\left(x_{2}\right) \cdots \chi_{k}\left(x_{N}\right) \neq \chi_{i}\left(x_{2}\right) \chi_{j}\left(x_{1}\right) \cdots \chi_{k}\left(x_{N}\right)\]
此外,根据泡利不相容原理,电子波函数必须是反对称的,这意味着随着任意两个电子的空间和自旋坐标的互换,波函数的符号会发生变化。
\[\Psi\left(x_{1}, x_{2}, \cdots, x_{N}\right)=-\Psi\left(x_{2}, x_{1}, \cdots, x_{N}\right)\]
为了满足这些要求,我们可以使用 Hartree 乘积的某些线性组合——注意,如果波函数是可接受的,那么它的线性组合也是可接受的。考虑一个双电子波函数,如果电子一和电子二分别占据 \(\chi_{i}\) 和 \(\chi_{j}\) 自旋轨道,我们有:
\[\Psi_{H P}\left(x_{1}, x_{2}\right)=\chi_{i}\left(x_{1}\right) \chi_{j}\left(x_{2}\right)\]
此外,我们可以通过将电子 1 放在 \(\chi_{j}\) 中,将电子 2 放在 \(\chi_{i}\) 中,得到另一个 Hartree 乘积。
\[\Psi_{H P}\left(x_{2}, x_{1}\right)=\chi_{i}\left(x_{2}\right) \chi_{j}\left(x_{1}\right)\]
这些 Hartree 乘积都不是反对称的,它们的电子也不可区分,但我们可以通过线性组合它们来形成反对称波函数。
\[\displaystyle \Psi\left(x_{1}, x_{2}\right)=2^{\displaystyle -\frac{1}{2}}\left[\chi_{i}\left(x_{1}\right) \chi_{j}\left(x_{2}\right)-\chi_{i}\left(x_{2}\right) \chi_{j}\left(x_{1}\right)\right]\]
\(\displaystyle 2^{\displaystyle -\frac{1}{2}}\) 是一个归一化因子,减号确保波函数是不对称的。为了整齐起见,我们可以把这个方程写成 \(2\times2\) 的行列式。
\[\Psi\left(x_{1}, x_{2}\right)=2^{-1 / 2}\left|\begin{array}{ll}\chi_{i}\left(x_{1}\right) & \chi_{j}\left(x_{1}\right) \\\chi_{i}\left(x_{2}\right) & \chi_{j}\left(x_{2}\right)\end{array}\right|\]
同样,每个 \(N\) 电子波函数都可以写成一个 \(N\times N\) 的行列式,称为 Slatter 行列式。
\[\displaystyle \Psi\left(x_{1}, x_{2}, \cdots, x_{N}\right)=(N !)^{\displaystyle -\frac{1}{2}}\left|\begin{array}{cccc}\chi_{i}\left(x_{1}\right) & \chi_{j}\left(x_{1}\right) & \cdots & \chi_{k}\left(x_{1}\right) \\\chi_{i}\left(x_{2}\right) & \chi_{j}\left(x_{2}\right) & \cdots & \chi_{k}\left(x_{2}\right) \\\vdots & \vdots & \ddots & \vdots \\\chi_{i}\left(x_{N}\right) & \chi_{j}\left(x_{N}\right) & \cdots & \chi_{k}\left(x_{N}\right)\end{array}\right|\]
请注意,每一行都属于 Slatter 行列式中的一个电子,每一列都代表一个自旋轨道。Hartree 乘积是一个完全不相关的波函数,但反对称的 Slater 行列式引入了电子之间的一些相关性。也就是说,具有平行自旋的电子不可能在相同的空间轨道上,因为在这种情况下,两行斯莱特行列式相等——记住,如果一个行列式的两行相同,那么行列式为零。 因此,Hartree-Fock 方法考虑了一种类型的相关性,称为交换相互作用。然而,由于 Hartree Fock 方法没有考虑具有相反自旋的电子之间的相关性,因此它通常被称为不相关方法。
Slatter 行列式可以通过不同的组合来建立。因此,我们可以得到多个 Slatter 行列式。考虑到双电子波函数的情况,我们有两个空间轨道 \(\psi_1\) 和 \(\psi_2\) 以及由它们构建的四个自旋轨道,\(\psi_1\alpha\) 、\(\psi_1\beta\) 、\(\psi_2\alpha\) 和 \(\psi_2\beta\) 。但在这种情况下,要建立一个 Slater 行列式,我们只需要两个自旋轨道,当考虑到所有排列时,有六种不同的可能组合,可以从四个自旋轨道中得到一个两电子的 Slater 行列式。
\[\begin{array}{l}\chi_{1}\left(x_{1}\right)=\psi_{1}\left(r_{1}\right) \varsigma(\alpha) \\\chi_{2}\left(x_{2}\right)=\psi_{1}\left(r_{1}\right) \varsigma(\beta) \\\chi_{3}\left(x_{3}\right)=\psi_{2}\left(r_{2}\right) \varsigma(\alpha) \\\chi_{4}\left(x_{4}\right)=\psi_{2}\left(r_{2}\right) \varsigma(\beta) \end{array}\Rightarrow \left\{\begin{matrix} \Psi_{0^{\prime}}\left(x_{1}, x_{2}\right)=\left|\chi_{1}\left(x_{1}\right) \chi_{2}\left(x_{2}\right)\right\rangle \\\Psi_{1'}\left(x_{1}, x_{3}\right)=\left|\chi_{1}\left(x_{1}\right) \chi_{3}\left(x_{3}\right)\right\rangle\\\Psi_{2^{\prime}}\left(x_{1}, x_{4}\right)=\left|\chi_{1}\left(x_{1}\right) \chi_{4}\left(x_{4}\right)\right\rangle\\\Psi_{3'}\left(x_{2}, x_{3}\right)=\left|\chi_{2}\left(x_{2}\right) \chi_{3}\left(x_{3}\right)\right\rangle\\\Psi_{4'}\left(x_{2}, x_{4}\right)=\left|\chi_{2}\left(x_{2}\right) \chi_{4}\left(x_{4}\right)\right\rangle\\\Psi_{5^{\prime}}\left(x_{3}, x_{4}\right)=\left|\chi_{3}\left(x_{3}\right) \chi_{4}\left(x_{4}\right)\right\rangle\end{matrix}\right. \]
四个自旋轨道产生六个 Slatter 行列式。为了简洁起见,我们使用了更简洁的符号来显示 Slatter 行列式。
\[\left|\chi_{i}\left(x_{n}\right) \chi_{j}\left(x_{m}\right)\right\rangle=2^{-1 / 2}\left|\begin{array}{cc}\chi_{i}\left(x_{n}\right) & \chi_{j}\left(x_{n}\right) \\\chi_{i}\left(x_{m}\right) & \chi_{j}\left(x_{m}\right)\end{array}\right|\]
一般来说,有 \(N\) 个电子和 \(M\) 个自旋轨道,我们可以构建 \(\displaystyle \frac{M !}{N !(M-N) !}\) 种不同的 Slatter 行列式。然而,Hartree-Fock 方法只使用其中一个称为 Hartree-Fock 基态行列式的方法。其他的 Slatter 行列式可以代表电子系统的激发态。此外,这些行列式的线性组合是一个更准确的波函数,它更准确地考虑了电子之间的相关性。配置交互(CI)是一种更复杂且计算繁琐的方法,它利用这些行列式的线性组合来描述电子系统。使用单个 Slater 行列式可以说等于以平均方式处理电子-电子排斥,这是 Hartree-Fock 近似的本质。
基集与 Roothaan 方程
既然我们知道电子波函数可以由自旋轨道的线性组合建立,关键问题是如何找到自旋轨道。每个自旋轨道包括两个部分,空间函数和自旋函数。空间函数是三个电子空间坐标的函数,自旋函数与电子自旋有关,这是一种量子属性。
\[\chi_{i}(x)=\psi_{j}(r) \varsigma(s)\]
由于哈密顿算符 \(\displaystyle H_{\text {elec }}=\sum_{i=1}^{N} f\left(x_{i}\right)\) 不影响自旋函数,我们可以将自旋函数视为常数系数。
\[f\left(x_{i}\right) \psi_{j}\left(r_{i}\right) \varsigma\left(s_{i}\right)=\varsigma\left(s_{i}\right) f\left(x_{i}\right) \psi_{j}(r)=\varsigma\left(s_{i}\right) \varepsilon \psi_{j}\left(r_{i}\right)=\varepsilon \psi_{j}\left(r_{i}\right) \varsigma\left(s_{i}\right)\]
因此,要解决这个问题,我们只需要确定自旋轨道的空间部分。Clemens C.J.Roothaan 和 George G.Hall 都是当时的研究生,他们独立地证明了空间分量可以被视为一组已知的空间基函数,即基集。
\[\displaystyle \psi_{i}(r)=\sum_{\nu=1}^{K} C_{\nu i} \varphi_{\nu}(r) \quad, i=1,2, \cdots, K\]
\(C\) 和 \(\varphi\) 分别表示该方程中的展开系数和已知函数。Roothan-Hall 方程的重要性在于,它将寻找 Hartree-Fock 分子轨道的问题简化为计算一组膨胀系数的问题,该膨胀系数可以用系数矩阵表示。 因此,我们可以将 Hartree-Fock 方程 \(f\left(x_{i}\right) \chi\left(x_{i}\right)=\varepsilon \chi\left(x_{i}\right)\) 写成一个可解的矩阵方程,可以用计算机软件进行处理。
\[\displaystyle f\left(x_{i}\right) \sum_{\nu} C_{\nu i} \varphi_{\nu}\left(r_{i}\right)=\varepsilon_{i} \sum_{\nu} C_{\nu i} \varphi_{\nu}\left(r_{i}\right)\]
就精度而言,如果我们可以使用任何完整的基集,它有一个无限的 \(K\) 集,并且跨越整个相空间,那么无论基函数的形式如何,展开都是精确的。但是,有限基集仅在其函数所跨越的空间中是精确的,因此由哪些基函数构成基集是至关重要的;然而,根据经验,\(K\) 越大,基集越大,分子轨道就越精确。但是,在现实世界的计算问题中,使用巨大的基集并不是一个实际的选择,因为电子结构计算的成本随着基集的大小而迅速增加。因此,我们总是要适当的选择基集的大小。
Hartree-Fock 方程
单电子和双电子积分
正如我之前所说,Hartree-Fock 方法旨在求解多体电子系统的电子薛定谔方程:
\[H_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle=E_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle\]
这是一个特征值方程,通过求解方程,我的意思是找到适合方程的 \(\Psi_{\text {elec }}\) 向量和 \(E_{\text {elec }}\) 值。不幸的是,对于许多人体电子系统,我们不能精确地求解这个方程。然而,我们可以利用变分法找到它的近似解。变分法指出,任何近似波函数的能量值都高于或等于精确能量。换句话说,如果我们最小化关于自旋轨道的电子能,我们可以在Hartree-Fock 理论的限制下找到最接近精确的波函数,它被称为 Hartree Fock 基态波函数。
为了应用变分法,让我们首先重新排列方程 \(H_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle=E_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle\) 的能量。
\[E_{\text {elec }}\left(\left\{\chi_{a}\right\}\right)=\left\langle\Psi_{\text {elec }}\left|H_{\text {elec }}\right| \Psi_{\text {elec }}\right\rangle\]
我们可以用 \(\displaystyle H_{\text {elec }}=-\sum_{i=1}^{N} \frac{1}{2} \nabla_{i}^{2}-\sum_{i=1}^{N} \sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}\) 代替 \(H_{\text {elec }}\) ,用一个 Slater 行列式代替 \(| \Psi_{\text {elec }}\rangle\) ,用 Hartree-Fock 近似求出能量方程。
\[\displaystyle E_{\text {elec }}=\left\langle\chi_{1} \chi_{2} \cdots \chi_{a} \chi_{b} \cdots \chi_{N}\left|-\sum_{i=1}^{N} \frac{1}{2} \nabla_{i}^{2}-\sum_{i=1}^{N} \sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}\right| \chi_{1} \chi_{2} \cdots \chi_{a} \chi_{b} \cdots \chi_{N}\right\rangle\]
在这个方程中,为了简洁起见,我对 Slater 行列式使用了线性速记符号。电子哈密顿量包括两种类型的算符。前两项是单电子算符。这些算符只取决于一个电子的位置或动量,不考虑与其他电子的相互作用。作为双电子算符,最后一项是所有电子对之间的排斥力之和,因此涉及两个电子同时的位置。
\[\displaystyle E_{\text {elec }}=\left\langle\chi_{1} \chi_{2} \cdots \chi_{N}\left|\sum_{i=1}^{N}\left(-\frac{1}{2} \nabla_{i}^{2}-\sum_{A=1}^{M} \frac{Z_{A}}{r_{i A}}\right)+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}\right| \chi_{1} \chi_{2} \cdots \chi_{N}\right\rangle\]
为了简单起见,让我们用 \(h_{\text {one }}\) 表示单电子运算子。
\[\displaystyle E_{\text {elec }}=\left\langle\chi_{1} \chi_{2} \cdots \chi_{N}\left|\sum_{i=1}^{N} h_{\text {one }}+\sum_{i=1}^{N} \sum_{j>i}^{N} \frac{1}{r_{i j}}\right| \chi_{1} \chi_{2} \cdots \chi_{N}\right\rangle\]
我们可以把上述方程看作一个矩阵方程。根据运算符的类型,存在用于评估此类方程的规则。使用这些规则,你可以找到能量的表达式:
\[\begin{array}{ll}E_{\text {elec }}=&\displaystyle \sum_{a=1}^{N} \int d x_{1} \chi_{a}^{*}\left(x_{1}\right) h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) \\&\displaystyle+\frac{1}{2} \sum_{a=1}^{N} \sum_{b=1}^{N}\left[\int d x_{1} d x_{2} \chi_{a}^{*}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{1} d x_{2} \chi_{a}^{*}\left(x_{1}\right) \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]\end{array}\]
我还没有疯到在这篇文章中引入这个方程的推导;相反,我想提请大家注意方程的组成部分第一个求和是在所有的自旋轨道上,内部积分是在单个电子(\(dx_1\) )的坐标上。这个单电子可以是特定自旋轨道中的任何电子;然而,为了方便起见,我们选择积分的虚设变量为 \(x_1\) 。方程的这一部分称为单电子积分。第二个求和是在所有成对的自旋轨道上进行的,\(\displaystyle\frac{1}{2}\) 系数是为了避免对这些对进行两次计数。这部分的积分是在两个电子(\(dx_1\) ,\(dx_2\) )的坐标上进行的。类似地,这两个电子可以是任何电子,积分被称为双电子积分。注意,在电子能量方程中只有 \(N\) 个单电子积分,但两个电子积分的数量与 \(N^4\) 成正比。这就是为什么两个电子积分总是需要很长时间才能计算出来的原因。
上图是 GAMESS US 软件输出的一部分显示了苯分子在 HF/3-21g 上的双电子积分计算。
双电子积分的数量为 1957454 。
苯分子的化学式:\(\rm C_6H_6\)
图片链接
苯分子有 42 个电子,HF/3-21g 给每个电子配 3 个基函数,共 126 个基函数。
双电子积分为 \(O(N^3)\) 量级正好 \(126^3=2000376\sim2\times10^6\) 个双电子积分。
这与计算中的 1957454 个双电子积分的数量正好符合。
变分法
现在我们有了电子能量的表达式,我们可以用变分法来求解电子薛定谔方程。根据变分定理,精确的波函数总是比任何近似的波函数具有更低的能量值,因此最精确的 Hartree-Fock 波函数在改变自旋轨道(基集系数)方面是最小的。我们把这个波函数的能量称为 Hartree-Fock 基态能量(\(E_0\) )。因此,\(\delta E_{0}\) 为零,我们可以写出以下方程。
\[\begin{array}{ll}\delta E_{0}=&\displaystyle\sum_{a=1}^{N} \int d x_{1} \delta \chi_{a}^{*}\left(x_{1}\right) h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) \\&\displaystyle+\sum_{a=1}^{N} \sum_{b=1}^{N}\left[\int d x_{1} d x_{2} \delta \chi_{a}^{*}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{1} d x_{2} \delta \chi_{a}^{*}\left(x_{1}\right) \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]+C C\end{array}\]
在这个方程中,\(CC\) 表示由微分过程产生的左边那一项的复共轭。
变分法和 Hartree-Fock 近似
如果所有的基集系数都是独立的,我们可以使用上面的方程来直接最小化能量;但是事实却不是这样,一些基集系数不是相互独立的。自旋轨道的归一化要求暗示了这一点。
\[\begin{array}{ll}\displaystyle \int d x_{1} \chi_{a}^{*}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)=1\\\displaystyle \int d x_{1} \chi_{a}^{*}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)-1=0\end{array}\]
根据 \(f\left(x_{i}\right) \psi_{j}\left(r_{i}\right) \varsigma\left(s_{i}\right)=\varsigma\left(s_{i}\right) f\left(x_{i}\right) \psi_{j}(r)=\varsigma\left(s_{i}\right) \varepsilon \psi_{j}\left(r_{i}\right)=\varepsilon \psi_{j}\left(r_{i}\right) \varsigma\left(s_{i}\right)\) 和 \(\displaystyle \psi_{i}(r)=\sum_{\nu=1}^{K} C_{\nu i} \varphi_{\nu}(r)\) ,我们可以写出:
\[\displaystyle \int d x_{1} \varsigma^{*}(s) \varsigma(s) \sum_{\nu=1}^{K} C_{\nu i}^{*} \varphi_{\nu}^{*}\left(r_{1}\right) \sum_{\nu=1}^{K} C_{\nu i} \varphi_{\nu}\left(r_{1}\right)-1=0\]
由于自旋函数和空间函数也是正交的,这个方程可以简化为:
\[\displaystyle \sum_{\nu=1}^{K} C_{\nu i}^{2}-1=0\]
上述方程表明,在每个自旋轨道中,基集系数(\(C_{\nu i}\) )之一取决于其他系数,因此 \(E_0\) 是 \(C_{\nu i}\) 的约束函数。在数学中,求约束函数局部极小值的标准方法是拉格朗日不确定乘子法。在这个方法中,我们引入了一个新的变量,称为拉格朗日乘子,并定义了一个与乘子和所有其他变量相关的新函数 \(L\) ;然后,我们最小化所有变量的 \(L\) 。现在让我们使用拉格朗日方法来求 \(\delta E_{0}\) 。
\[\displaystyle L\left[\left\{\chi_{a}\right\}\right]=E_{0}\left[\left\{\chi_{a}\right\}\right]-\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{a b}\left(\int d x \chi_{a}^{*} \chi_{b}-\delta_{a b}\right)\]
注意,我们只需在能量表达式中加一个零就可以建立拉格朗日函数,因为自旋轨道是归一化的。
\[\begin{array}{ll}\displaystyle \int d x_{1} \chi_{a}^{*}\left(x_{1}\right) \chi_{b}\left(x_{2}\right)=\delta_{a b}\\\displaystyle \int d x_{1} \chi_{a}^{*}\left(x_{1}\right) \chi_{b}\left(x_{2}\right)-\delta_{a b}=0\end{array}\]
所以 \(L\) 和 \(E\) 的最小值出现在 \(\delta L\) 等于零的同一点上:
\[\displaystyle \delta L=\delta E_{0}-\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a} \delta \int d x_{1} \chi_{a}^{*} \chi_{b}=0\]
上述方程中的第二项可以写成:
\[\begin{aligned}\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a} \delta \int d x_{1} \chi_{a}^{*} \chi_{b} & =\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a}\left(\int d x_{1} \delta \chi_{a}^{*} \chi_{b}+\int d x_{1} \chi_{a}^{*} \delta \chi_{b}\right) \\& =\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a} \int d x_{1} \delta \chi_{a}^{*} \chi_{b}+\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{a b} \int d x_{1} \chi_{b}^{*} \delta \chi_{a} \\& =\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a} \int d x_{1} \delta \chi_{a}^{*} \chi_{b}+\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a}^{*}\left(\int d x_{1} \chi_{a}^{*} \delta \chi_{b}\right)^{*} \\& =\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a} \int d x_{1} \delta \chi_{a}^{*} \chi_{b}+C C\end{aligned}\]
其中 \(CC\) 表示左边项的复共轭。根据上述方程和
\[\begin{array}{ll}\delta E_{0}=&\displaystyle\sum_{a=1}^{N} \int d x_{1} \delta \chi_{a}^{*}\left(x_{1}\right) h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) \\&\displaystyle+\sum_{a=1}^{N} \sum_{b=1}^{N}\left[\int d x_{1} d x_{2} \delta \chi_{a}^{*}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{1} d x_{2} \delta \chi_{a}^{*}\left(x_{1}\right) \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]+C C\end{array}\]
我们可以将\(\delta L\) 写成:
\[\begin{array}{ll}\delta L=&\displaystyle \sum_{a=1}^{N} \int d x_{1} \delta \chi_{a}^{*}\left(x_{1}\right) h_{o n e}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) \\&\displaystyle +\sum_{a=1}^{N} \sum_{b=1}^{N}\left[\int d x_{1} d x_{2} \delta \chi_{a}^{*}\left(x_{1}\right) \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{1} d x_{2} \delta \chi_{a}^{*}\left(x_{1}\right) \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right] \\&\displaystyle +\sum_{a=1}^{N} \sum_{b=1}^{N} \varepsilon_{b a} \int d x_{1} \delta \chi_{a}^{*} \chi_{b}+C C\end{array}\]
上述方程也可以写成:
\[\displaystyle \delta L=\sum_{a=1}^{N} \int d x_{1} \delta \chi_{a}^{*}\left(x_{1}\right)\left\{h_{o n e}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)+\sum_{b=1}^{N}\left[\int d x_{2} \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{2} \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]-\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right)\right\}+C C\]
我们可以忽略复共轭部分,因为如果 \(A+A^*=0\) ,那么 \(A=0\) 。
\[\displaystyle\delta L=\sum_{a=1}^{N} \int d x_{1} \delta \chi_{a}^{*}\left(x_{1}\right)\left\{h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)+\sum_{b=1}^{N}\left[\int d x_{2} \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{2} \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]-\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right)\right\}=0\]
因此
\[\displaystyle h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)+\sum_{b=1}^{N}\left[\int d x_{2} \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{2} \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]-\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right)=0\]
库仑算符和交换算符
现在让我们将库仑算符 \(J\) 和交换算符 \(K\) 定义为:
\[\begin{array}{ll}\displaystyle J_{b}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)&\displaystyle=\left[\int d x_{2} \chi_{b}^{*}\left(x_{2}\right) r_{12}^{-1} \chi_{b}\left(x_{2}\right)\right] \chi_{a}\left(x_{1}\right)\\&\displaystyle=\left[\int d x_{2}\left|\chi_{b}\left(x_{2}\right)\right|^{2} r_{12}^{-1}\right] \chi_{a}\left(x_{1}\right)\end{array}\]
\[\displaystyle K_{b}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)=\left[\int d x_{2} \chi_{b}^{*}\left(x_{2}\right) r_{12}^{-1} \chi_{a}\left(x_{2}\right)\right] \chi_{b}\left(x_{1}\right)\]
库仑算符有一个直接的解释。原子单位中两个电子之间的精确库仑相互作用是 \(r_{12}^{-1}\) 。
同样,在 Hartree-Fock 近似中,\(\chi_{a}\) 中的电子 1 经历一个从 \(\chi_{b}\) 到 \(\displaystyle \int d x_{2}\left|\chi_{b}\left(x_{2}\right)\right|^{2} r_{12}^{-1}\) 的单电子势,因为在方程
\[
\displaystyle h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)+\sum_{b=1}^{N}\left[\int d x_{2} \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{2} \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]-\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right)=0
\]
中,总和是在所有自旋轨道上,每个电子都感受到来自所有其他电子的库仑排斥。请注意,求和中的每个积分都独立于其他积分,这就是为什么 Hartree-Fock 近似没有考虑电子之间的库仑相关性。
另一方面,交换算符没有可感知的经典解释,它是由具有平行自旋的电子之间的交换相关性引起的,我之前已经解释过了。Hartree-Fock 方程中交换算子的存在意味着 Hartree-Fock 方法不是完全不相关的,并考虑了具有平行自旋的电子之间的相关性。使用库仑算子和交换算子,我们可以将方程
\[
\displaystyle h_{\text {one }}\left(x_{1}\right) \chi_{a}\left(x_{1}\right)+\sum_{b=1}^{N}\left[\int d x_{2} \chi_{a}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{b}\left(x_{2}\right)-\int d x_{2} \chi_{b}\left(x_{1}\right) r_{12}^{-1} \chi_{b}^{*}\left(x_{2}\right) \chi_{a}\left(x_{2}\right)\right]-\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right)=0
\]
转化为:
\[\displaystyle \left[h_{\text {one }}\left(x_{1}\right)+\sum_{b=1}^{N} J_{b}\left(x_{1}\right)-K_{b}\left(x_{1}\right)\right] \chi_{a}\left(x_{1}\right)=\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right), \quad a=1,2, \ldots, N\]
这就是 Hartree-Fock 方程。注意,我们将一个不可解的多电子问题 \(H_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle=E_{\text {elec }}\left|\Psi_{\text {elec }}\right\rangle\) 分离为 \(N\) 个可解的——尽管近似的——单电子问题。方程右侧出现求和是因为 Slater 行列式是由一组自旋轨道形成的,这些轨道提供了一定程度的灵活性;即在不改变期望值 \(E_0\) 的情况下可以存在不同的自旋轨道组合。然而,由于 \(\varepsilon\) 是哈密顿矩阵,我们总能找到一个将 \(\varepsilon\) 转化为对角矩阵的酉矩阵。对应于这个特定的对角线 \(\varepsilon\) 矩阵的唯一的一组自旋轨道称为正则自旋轨道集。通常将上述方程写成其规范(标准)形式,与方程 \(f\left(x_{i}\right) \chi\left(x_{i}\right)=\varepsilon \chi\left(x_{i}\right)\) 相同。
自洽场方法;计算机如何求解 Hartree-Fock 方程
现在我们已经熟悉了 Hartree-Fock 方程,以及如何为它建立一个合适的波函数,在最后一节中,我可以解释计算机如何求解多体电子系统的 Hartree-Fock 方程。求解 Hartree-Fock 方程的具体过程称为自洽场(SCF)方法。SCF是 Hartree-Fock 方法的另一个名称,这两个术语在计算文献中可以互换使用。让我们再一次看看 Hartree-Fock 方程的正则形式。
\[f\left(x_{i}\right) \chi\left(x_{i}\right)=\varepsilon \chi\left(x_{i}\right)\]
\(\chi\) 表示由该方程中的空间函数和自旋函数组成的自旋轨道。自旋函数只有两个值(\(\alpha\) 和\(\beta\) ),在自洽场计算之前,可以根据泡利排除原理确定其值。在 Hartree-Fock 方法中,处理自旋函数有三种形式:限制闭壳、非限制开壳和限制开壳。我们可以根据电子系统的多重性应用其中一个,并从方程 \(f\left(x_{i}\right) \chi\left(x_{i}\right)=\varepsilon \chi\left(x_{i}\right)\) 中消除自旋函数。
\[f\left(r_{1}\right) \psi_{i}\left(r_{1}\right)=\varepsilon_{i} \psi_{i}\left(r_{1}\right)\]
由于 Roothaan 对 SCF 方法的贡献,我们可以将空间函数视为一组已知的基函数。
\[\displaystyle \psi_{i}=\sum_{\mu=1}^{K} C_{\mu i} \phi_{\mu}, \quad i=1,2, \ldots, K\]
通过将基集代入方程 \(f\left(r_{1}\right) \psi_{i}\left(r_{1}\right)=\varepsilon_{i} \psi_{i}\left(r_{1}\right)\) ,我们可以将 Hartree-Fock 方程写成:
\[\displaystyle f\left(r_{1}\right) \sum_{\nu} C_{\nu i} \phi_{\nu}\left(r_{1}\right)=\varepsilon_{i} \sum_{\nu} C_{\nu i} \phi_{\nu}\left(r_{1}\right)\]
这是一个积分微分方程;然而,乘以左边的 \(\phi^{*}\) 并对其进行积分,我们可以将其转化为一个更便于计算机使用的矩阵方程。
\[\displaystyle \sum_{\nu} C_{\nu i} \int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) f\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)=\varepsilon_{i} \sum_{\nu} C_{\nu i} \int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)\]
如果您不能将这些项视为矩阵方程,请将 \(\mu\) 和 \(\nu\) 视为矩阵索引,其值范围从 1 到 \(K\) 。
现在让我们定义两个新矩阵。
(1)重叠矩阵 \(S\) 的每个元素符合公式:\(\displaystyle S_{\mu \nu}=\int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)\)
重叠矩阵量化通常彼此不正交的基函数之间的重叠。\(S\) 的对角线元素是单位的,非对角线元素的值范围从 1 到 0 。非对角元素的符号取决于两个基函数的相对符号及其相对方向。\(S\) 的非对角元素越接近 1 ,两个基函数的重叠就越多。
(2)Fock 矩阵 \(F\) 的每个元素符合公式:\(\displaystyle F_{\mu \nu}=\int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) f\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)\)
Fock 矩阵 \(F\) 是 Fock 算符 \(f(x)\) 的矩阵表示——正如我在上一节中定义的一个单电子算子——具有基函数集 \(\{\Phi\}\) 。由于等式 \(\displaystyle \psi_{i}=\sum_{\mu=1}^{K} C_{\mu i} \phi_{\mu}\) 中的求和索引(\(\mu\) 和\(\nu\) )范围从 1 到 \(K\) ,因此重叠矩阵和 Fock 矩阵都是 \(K\times K\) 方阵。 它们也是哈密顿形式的,这意味着我们可以通过酉矩阵将它们正交化。
有了这些定义,现在我们可以把方程 \(\displaystyle \sum_{\nu} C_{\nu i} \int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) f\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)=\varepsilon_{i} \sum_{\nu} C_{\nu i} \int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)\) 写成:
\[\displaystyle \sum_{\nu} F_{\mu \nu} C_{\nu i}=\varepsilon_{i} \sum_{\nu} S_{\mu \nu} C_{\nu i}, \quad i=1,2, \ldots, K\]
也可以写为:
\[F C=S C \varepsilon\]
在该方程中,称为 Roothann 方程,\(C\) 是包含基函数展开系数的 \(K\times K\) 方阵,\(\varepsilon\) 是轨道能量的对角矩阵。
\[C=\left(\begin{array}{cccc}C_{11} & C_{12} & \cdots & C_{1 K} \\C_{21} & C_{22} & \cdots & C_{2 K} \\\vdots & \vdots & \ddots & \vdots \\C_{k 1} & C_{K 2} & \cdots & C_{K K}\end{array}\right)\]
从计算软件的角度求解 Roothaan 方程,或者等效地求解 Hartree-Fock 方程,意味着找到一个适当的系数矩阵 \(C\) ,使系统的总能量最小化。Roothaan 方程 \(F C=S C \varepsilon\) 不是标准的特征值问题,因为基函数的非正交性导致了重叠矩阵。因此,我们需要考虑一个使基函数正交的过程。如果我们设法使基函数正交,重叠矩阵就变成了单位矩阵, Roothaan 方程就变成了一组标准特征值问题。
\[F C=C \varepsilon\]
如果我们有一组非正交基函数 \(\{\Phi\}\) ,那么总是有可能找到一个将非正交集变换为正交集的变换矩阵 \(X\) 。
\[\displaystyle \phi_{\mu}^{\prime}=\sum_{\nu} X_{\nu \mu} \phi_{\nu}, \quad \mu=1,2, \ldots, K\]
并且
\[\displaystyle \int d r \phi_{\mu}^{\prime}(r) \phi_{\nu}^{\prime}(r)=\delta_{\mu \nu}\]
我们可以使用这个变换矩阵将重叠矩阵转换为单位矩阵。
\[X^{\dagger} S X=1\]
有两种方法可以找到变换矩阵——对称正交化和规范正交化——这两种方法我在本文中不会解释。然而,具有 \(X\) ,我们可以将基函数正交化,并从 Roothaan 方程中消除重叠矩阵 \(S\) 。然后,我们可以通过对 Fock 矩阵进行对角化来直接求解方程。然而,我们必须变换所有的两个电子积分,这是非常耗时的。Hartree-Fock 方法使用了一种更有效的方法来处理这个问题。考虑一个与矩阵 \(X\) 相关的新系数矩阵 \(C'\) :
\[
\begin{array}{ll}C^{\prime}=X^{-1} C\\C=X C^{\prime}\end{array}
\]
其中 \(X^{-1}\) 是变换矩阵的逆。将上述方程中的 \(C\) 代入 Roothaan 方程 \(F C=S C \varepsilon\) ,得到
\[F X C^{\prime}=S X C^{\prime} \varepsilon\]
如果我们定义一个变换的Fock矩阵 \(F'\) ,使得
\[F^{\prime}=X^{\dagger} F X\]
我们可以将变换后的 Roothaan 方程定义为:
\[F^{\prime} C^{\prime}=C^{\prime} \varepsilon\]
求解 Roothaan 方程的 SCF 形式是求变换矩阵、变换 Fock 矩阵和求解变换后的 Roothaan 方程。最后,根据等式 \(C^{\prime}=X^{-1} C, \quad C=X C^{\prime}\) 计算系数矩阵。事实上,自我一致的现场教学比这更为复杂。Roothaan 方程是非线性的,需要通过迭代方法求解,因为 Fock 矩阵取决于展开系数。在解释自洽场过程之前,我们需要知道密度矩阵的概念和 Fock 矩阵的显式。
密度矩阵
我们从量子力学中知道,在特定体积 \(dr\) 中找到电子的概率,即该电子的电荷密度,等于 \(\left|\psi_{a}(r)\right|^2\) 。现在考虑一个由单个行列式波函数描述的闭壳层系统,其中所有占据的分子轨道都包含两个电子。在该系统中,总电荷密度为:
\[\displaystyle \rho(r)=2 \sum_{a}^{N / 2}\left|\psi_{a}(r)\right|^{2}\]
让我们把分子轨道从方程 \(\displaystyle \psi_{i}=\sum_{\mu=1}^{K} C_{\mu i} \phi_{\mu}\) 中展开为一组基函数:
\[
\begin{array}{ll}\displaystyle \rho(r)=2 \sum_{a}^{N / 2} \psi_{a}^{*}(r) \psi_{a}(r)\\\displaystyle \rho(r)=2 \sum_{a}^{N / 2} \sum_{\nu} C_{\nu a}^{*} \phi_{\nu}^{*}(r) \sum_{\mu} C_{\mu a} \phi_{\mu}(r)\\\displaystyle \rho(r)=\sum_{\mu \nu}\left[2 \sum_{a}^{N / 2} C_{\mu a} C_{\nu a}^{*}\right] \phi_{\mu}(r) \phi_{\nu}^{*}(r)\end{array}
\]
根据这个方程,我们可以将密度矩阵定义为:
\[\displaystyle D_{\mu \nu}=2 \sum_{a}^{N / 2} C_{\mu a} C_{\nu a}^{*}\]
密度矩阵与展开系数直接相关,它可以完全表示 Hartree-Fock 波函数。密度矩阵很重要,因为在自洽场指令中, Fock 算符是根据密度矩阵写成的(你将在下面的小节中看到它),它迭代求解关于电荷密度的 Hartree-Fock 方程。Hartree-Fock 代码首先猜测描述系统电子位置的电荷密度。然后他们用这个推测的电荷密度来估计一个初始的 Fock 算符。使用这个算符,他们求解单电子类薛定谔方程 \(f\left(r_{1}\right) \psi_{i}\left(r_{1}\right)=\varepsilon_{i} \psi_{i}\left(r_{1}\right)\) ,找到分子轨道 \(\left\{\psi_{i}\right\}\) 。然后,他们可以根据这些最近的分子轨道建立更好的电荷密度,并猜测更准确的 Fock 算符。自洽场算法重复这个过程,直到 Fock 算符不再改变。换言之,SCF 过程继续使 Fock 算符和电荷密度相互作用的循环,直到产生特定电荷密度的场( Fock 算符的两个电子部分)与根据该电荷密度计算的场相同(一致)。因此,我们也将 Hartree-Fock 方法称为自洽场方法。 在下面的小节中,我们仔细检查 Fock 算符,以找到它的显式表达式,我们将在最后一部分中使用它来演示 Hartree-Fock 方法是如何工作的。
Fock 矩阵
让我们再来看看方程 \(\displaystyle \left[h_{\text {one }}\left(x_{1}\right)+\sum_{b=1}^{N} J_{b}\left(x_{1}\right)-K_{b}\left(x_{1}\right)\right] \chi_{a}\left(x_{1}\right)=\sum_{b=1}^{N} \varepsilon_{b a} \chi_{b}\left(x_{1}\right)\) 。在这个方程中,Fock 算符是:
\[\displaystyle f\left(x_{1}\right)=h_{\text {one }}\left(x_{1}\right)+\sum_{b=1}^{N} J_{b}\left(x_{1}\right)-K_{b}\left(x_{1}\right)\]
然而,如果我们考虑 Hartree-Fock 方程的最简单形式,即限制闭壳 Hartree-Fock 方程,则 Fock 算符与上述方程略有不同。
\[
\begin{array}{ll}\displaystyle f\left(r_{1}\right)=h_{\text {one }}\left(r_{1}\right)+\sum_{a}^{N / 2} 2 J_{a}\left(r_{1}\right)-K_{b}\left(r_{1}\right)\\\displaystyle J_{a}\left(r_{1}\right)=\int d r_{2} \psi_{a}^{*}\left(r_{2}\right) r_{12}^{-1} \psi_{a}\left(r_{2}\right)\\\displaystyle K_{b}\left(r_{1}\right) \psi_{a}\left(r_{1}\right)=\left[\int d r_{2} \psi_{b}^{*}\left(r_{2}\right) r_{12}^{-1} \psi_{a}\left(r_{2}\right)\right] \psi_{b}\left(r_{1}\right)\end{array}
\]
为了目标,我们定义一个新的算符 \(P_{12}\) ,它交换电子 1 和 2 并重写交换算符。
\[
\begin{array}{ll}P_{12} \psi_{b}\left(r_{2}\right) \psi_{a}\left(r_{1}\right)=\psi_{a}\left(r_{2}\right) \psi_{b}\left(r_{1}\right)\\\displaystyle K_{b}\left(r_{1}\right) \psi_{a}\left(r_{1}\right)=\left[\int d r_{2} \psi_{b}^{*}\left(r_{2}\right) r_{12}^{-1} P_{12} \psi_{b}\left(r_{2}\right)\right] \psi_{a}\left(r_{1}\right)\end{array}
\]
现在我们可以把 Fock 算符写成:
\[\displaystyle f\left(r_{1}\right)=h_{\text {one }}\left(r_{1}\right)+\sum_{a}^{N / 2} \int d r_{2} \psi_{a}^{*}\left(r_{2}\right) r_{12}^{-1}\left(2-P_{12}\right) \psi_{b}\left(r_{2}\right)\]
然后将基函数 \(\displaystyle \psi_{i}=\sum_{\mu=1}^{K} C_{\mu i} \phi_{\mu}\) 合并到其中。
\[\displaystyle f\left(r_{1}\right)=h_{\text {one }}\left(r_{1}\right)+\sum_{a}^{N / 2} \int d r_{2} \sum_{\mu} C_{\mu a}^{*} \phi_{\mu}^{*}\left(r_{2}\right) r_{12}^{-1}\left(2-P_{12}\right) \sum_{\nu} C_{\nu a} \phi_{\nu}\left(r_{2}\right)\]
我们可以从积分中提取膨胀系数,并将其定义为密度矩阵 \(\displaystyle D_{\mu \nu}=2 \sum_{a}^{N / 2} C_{\mu a} C_{\nu a}^{*}\) 。
\[
\begin{array}{ll}\displaystyle f\left(r_{1}\right)=h_{\text {one }}\left(r_{1}\right)+\sum_{a}^{N / 2} \sum_{\mu \nu} C_{\mu a}^{*} C_{\nu a} \int d r_{2} \sum_{\mu} \phi_{\mu}^{*}\left(r_{2}\right) r_{12}^{-1}\left(2-P_{12}\right) \sum_{\nu} \phi_{\nu}\left(r_{2}\right)\\\displaystyle f\left(r_{1}\right)=h_{\text {one }}\left(r_{1}\right)+\frac{1}{2} \sum_{\mu \nu} D_{\mu \nu} \int d r_{2} \phi_{\mu}^{*}\left(r_{2}\right) r_{12}^{-1}\left(2-P_{12}\right) r_{12}^{-1} \phi_{\nu}\left(r_{2}\right)\end{array}
\]
最后,使用 Fock 矩阵的定义 \(\displaystyle F_{\mu \nu}=\int d r_{1} \phi_{\mu}^{*}\left(r_{1}\right) f\left(r_{1}\right) \phi_{\nu}\left(r_{1}\right)\) ,我们可以得到:
\[\displaystyle F_{\lambda \sigma}=\int d r_{1} \phi_{\lambda}^{*}\left(r_{1}\right) h_{\text {one }}\left(r_{1}\right) \phi_{\sigma}\left(r_{1}\right)+\sum_{\mu \nu} D_{\mu \nu} \int d r_{1} d r_{2} \phi_{\lambda}^{*}\left(r_{1}\right) \phi_{\mu}^{*}\left(r_{2}\right) r_{12}^{-1}\left(1-\frac{1}{2} P_{12}\right) r_{12}^{-1} \phi_{\nu}\left(r_{2}\right) \phi_{\sigma}\left(r_{1}\right)\]
第一个积分项,称为核心哈密顿量 \(H_{core}\) ,只涉及一个电子算符(见上文),每次都在一个电子(\(r_1\) )的坐标上。核心哈密顿量表示一个电子的动能和核引力,忽略了与其他电子的排斥。与全 Fock 矩阵不同,核心哈密顿矩阵只需要计算一次,作为自洽场过程的开始。Fock 矩阵的剩余部分是两个电子部分,用 \(G\) 表示,它由密度矩阵和两个电子积分组成。
\[
\begin{array}{ll}\displaystyle F_{\lambda \sigma}=H_{\lambda \sigma}^{c o r e}+\sum_{\mu \nu} D_{\mu \nu}[\text { two }- \text { electron integrals }]\\F_{\lambda \sigma}=H_{\lambda \sigma}^{\text {core }}+G_{\lambda \sigma}\end{array}
\]
至此,我们有足够的理论来正确描述自洽场过程,这是最后一部分的主题。
自洽场算法
本节描述了计算代码为求解分子的受限闭壳层 Hartree-Fock 方程所执行的实际过程。开放式 shell 系统的指令非常相似,它们是许多计算方法的核心。以下文章有助于电子结构软件的用户和开发人员了解计算软件外壳下发生的事情。然而,本节的先决条件是理解我在本文前几部分中提出的概念和理论,因此,如果您发现以下段落不明确,请返回并阅读前几节。注意:术语自洽场和 Hartree-Fock 指的是相同的方法,所以可以随意互换使用。SCF 方法如下所示:
从输入文件中指定核坐标、原子序数、电子数和基集。
计算重叠矩阵 \(S\) 、核心哈密顿量 \(H_{core}\) 和两个电子积分的第一个估计。
通过对重叠矩阵 \(S\) 进行对角化来找到变换矩阵 \(X\) 。
猜测初始密度矩阵 \(D\) 。
根据密度矩阵 \(D\) 和两个电子积分计算两个电子矩阵 \(G\) 。
通过将 \(H\) 与 \(G\) 相加来计算第一个 Fock 矩阵 \(F\) 。
使用变换矩阵变换 Fock 矩阵,\(F^{\prime}=X^{\dagger} F X\) 。
求解变换后的 Roothaan 方程,\(F^{\prime} C^{\prime}=C^{\prime} \varepsilon\) 。
计算膨胀系数,\(C=X C^{\prime}\) 。
根据使用 \(C\) 和新密度矩阵 \(D\) 。
将新的密度矩阵与旧的密度矩阵进行比较,并检查它们之间的差异。如果差值大于特定的收敛标准,则返回步骤 5 。如果差异小于标准,请转到最后一步。
根据 Fock 和 Density 矩阵计算总能量。
自洽场理论的算法
讨论
Hartree 方法和 Hartree-Fock 方法有什么区别?
Hartree 方法和 Hartree-Fock 方法是量子化学中用于电子结构计算的方法,它们之间存在一些重要的区别,同时也是相互关联的重要概念:
1、Hartree 方法:
Hartree 方法是最早的量子力学多电子体系的计算方法之一。
它基于自洽场的概念,即每个电子都在由其他电子产生的平均电场中运动。
Hartree 方法忽略了电子间的交换相互作用,即电子具有不可区分性所带来的效应。
关键的是,Hartree 方法使用玻色子波函数进行计算,这在处理电子结构时是一个重要的限制,因为电子实际上是费米子。
2、Hartree-Fock 方法:
Hartree-Fock 方法是 Hartree 方法的一个改进版本,它考虑了电子之间的交换相互作用。
这种方法基于 Slater 行列式,通过引入交换项来考虑电子的不可区分性和泡利不相容原理,这意味着它使用费米子波函数。
Hartree-Fock 方法因此能更准确地描述电子间的相互作用,尤其是对于闭壳层系统。
但它仍然忽略了电子相关效应(即电子之间的动态相互作用),这在一些系统中可能非常重要。
综上所述,Hartree-Fock 方法相较于 Hartree 方法提供了一个更准确的框架,特别是因为它考虑了电子间的交换作用,并使用费米子波函数,这更符合实际的电子行为。尽管如此,两者都有其局限性,尤其是在处理电子相关性方面。