我正在编写一个程序来计算任何封闭壳原子的基态能量,使用 Hartree Fock Roothaan 方法,以 GTO 为基础。该代码适用于最简单的情况,即氦,但它因铍 (z=4) 而失败。
我知道我有两个正交轨道的两个 Roothaan 方程:
像往常一样,我对系数矩阵有初步的猜测。使用它来生成 Fock 矩阵并通过解决广义特征值问题来找到第一个轨道的系数,只选择最小的能量。
比我使用新的 1_st 轨道的系数(第 2_nd 轨道还没有改变)生成一个新的 Fock 矩阵来找到 2_nd 轨道的系数
并使用新的 2_nd 轨道再次找到新的 1_st 轨道,直到能量收敛。
我的问题是,使用该算法,我总是生成具有相同系数的轨道。但是不同的轨道被认为是相互正交的。
如果我通过对系数向量进行 gram-schmidting 施加正交条件,我会得到一个振荡的结果,但获得的能量范围甚至没有接近正确的答案。
我解决广义特征值问题的代码会自动生成相应的特征向量,并根据我的基础对其进行归一化。
我真的希望一些知识渊博的人能给我指出正确的方法。