Selected Configuration Interaction
These methods rely on the same principle as the usual CI approaches, except that determinants aren’t chosen a priori based on an occupation or excitation criterion, but selected on the fly among the entire set of determinants based on their estimated contribution to the FCI wave function. It has been noticed long ago that, even inside a predefined subspace of determinants, only a small number significantly contributes to the wave function. [15, 16] Therefore, an on the fly selection of determinants is a rather natural idea that has been proposed in the late 60’s by Bender and Davidson [17] as well as Whitten and Hackmeyer. [18]
The approach we are using in the Quantum Package is based on CIPSI developed by Huron, Rancurel and Malrieu, [19] that iteratively selects external determinants (determinants which are not present in the variational space) using a perturbative criterion.
There is however a computational downside. In a priori selected methods, the rule by which determinants are selected is known a priori, and therefore, one can map a particular determinant to some row or column index. [20] As a consequence, it can be systematically determined to which matrix element of \(\hat H\) a two-electron integral contributes. This allows for the implementation of so-called integral-driven methods, that work essentially by iterating over integrals and are very fast.
On the contrary, in selected methods an explicit list of determinants has to be kept, and there is no immediate way to know whether a determinant has been selected, or what its index is in the list. Consequently, a determinant-driven approach will be used, in which the loops run over determinants rather than integrals. This can be a lot more computationally expensive since the number of determinants is typically much larger than the number of integrals.
What makes determinant-driven approaches possible here is:
the fact that selected CI methods will keep the number of determinants small enough, orders of magnitude smaller than in a priori selected methods for wave functions with equal energies,
an efficient way to compare determinants in order to extract the corresponding excitation operators [],
an intense filtering of the internal space to avoid as much as possible determinant comparisons of disconnected determinants,
a fast retrieval of the corresponding two-electron integrals in memory.
Simple Algorithm
The variational wave function \(|\Psi^{(n)}\rangle\) is defined over a set of determinants \(\{|D_I\rangle\}^{(n)}\) in which we diagonalize \(\hat H\).
The determinants in \(\{|D_I\rangle\}^{(n)}\) will be characterized as internal.
For all external determinants \(|\alpha \rangle\) \(\notin\) \(\{|D_I\rangle\}^{(n)}\), compute the Epstein-Nesbet second-order perturbative contribution to the energy
\[e_\alpha = \frac{ \langle \Psi^{(n)}| {\hat H} | \alpha \rangle^2 }{E^{(n)} - \langle \alpha | {\hat H} | \alpha \rangle }.\]\(E^{(n)}\) is the variational energy of the wave function at the current iteration. Note that another perturbation theory could be used to estimate \(e_\alpha\).
An estimate of the total missing correlation energy can be computed by summing all the \(e_\alpha\) contributions
\[\begin{split}E_\text{PT2} & = \sum_{\alpha} e_\alpha \\ E_\text{FCI} & \approx E + E_\text{PT2}\end{split}\]\(\{ |\alpha \rangle \}_\star ^{(n)}\), the subset of determinants \(|\alpha \rangle\) with the largest contributions \(e_\alpha\), is added to the variational space
\[\{ |D_I \rangle \}^{(n+1)} = \{|D_I\rangle\}^{(n)} \cup \{ |\alpha\rangle \}_\star^{(n)}\]Go to iteration n+1, or exit on some criterion (number of determinants in the wave function, low \(E_\text{PT2}\), …).
Of course, such a procedure can be applied on any state and therefore can allow to treat both ground and excited states.
Stochastic approximations for the selection and the computation of \(E_\text{PT2}\)
The simple algorithm would be too slow to make calculations possible. Instead, the Quantum Package uses a stochastic algorithm [6] in order to compute efficiently the \(E_\text{PT2}\) and to select on-the-fly the best Slater determinants.
In such a way, the selection step introduces no extra cost with respect to the \(E_\text{PT2}\) calculation and the \(E_\text{PT2}\) itself is unbiased but associated with a statistical error bar rapidly converging.
Deterministic approximations for the selection
The following description was used in a previous version of the CIPSI algorithm which was less efficient. Nonetheless, it introduces the notions of generator and selector determinants which are much more general than the CIPSI algorithm that targets the FCI and can be used to realize virtually any kind of CI in a selected way.
We define generator determinants, as determinants of the internal space from which the \(|\alpha \rangle\) are generated. We then define selector determinants, a truncated wave function used in the computation of \(e_\alpha\).
For calculations in the FCI space, the determinants are sorted by decreasing
\(|c_I|^2\), and thresholds are used on the squared norm of the wave function.
The default is to use determinants threshold_generators
= 0.99 for
the generators, and determinants threshold_selectors
= 0.999 for the
selectors.
This is nothing but the 3-class CIPSI approximation to accelerate the selection, [21] where instead of generating all possible \(|\alpha \rangle\), we only generate a subset which are likely to be selected.
The computation of \(E_\text{PT2}\) using a truncated wave function is biased, so if an accurate estimate of the FCI energy is desired, it is preferable to recompute \(E_\text{PT2}\) with the hybrid deterministic/stochastic algorithm [22] which is unbiased (this is the default).
Modifying the selection space
By changing the definition of generators, and the rules for the generation of the \(|\alpha \rangle\), it is easy to define selected variants of traditional CI methods.
For example, if one defines the HF determinant as the only generator, one will produce a selected CISD. If one also changes the rules for the generation to generate only the double excitations, one will have a selected CID.
The generators can also be chosen as determinants belonging to a CAS. If the rules allow only for excitations inside the CAS, we obtain a selected CAS CI. If the rules allow for excitations in the FCI space, we obtain a selected CAS-SD. And if one add the rule to prevent for doing double excitations with two holes and two particles outside of the active space, one obtains a selected DDCI method.
All such things can be done very easily when programming the Quantum Package.