qat.fermion.chemistry.ucc.guess_init_params

qat.fermion.chemistry.ucc.guess_init_params(two_body_integrals: ndarray, n_electrons: int, orbital_energies: List[float], noons: Optional[List[float]] = None) List[float]

Find initial parameters using Møller-Plesset perturbation theory.

The trial parametrization is efficiently improved upon the Hartree-Fock solution (which would set every initial parameter to zero) thanks to the following formula identifying the UCC parameters in the Møller-Plesset (MP2) solution :

\[\theta_a^i = 0\]
\[\theta_{a, b}^{i, j} = \frac{h_{a, b, i, j} - h_{a, b, j, i}}{\epsilon_i + \epsilon_j -\epsilon_a - \epsilon_b}\]

where \(h_{p, q, r, s}\) is the 2-electron molecular orbital integral, and \(\epsilon_i\) is the orbital energy.

Parameters
  • two_body_integrals (np.ndarray) – 4D array of two-body integrals \(I_{uvwx}\).

  • n_electrons (int) – The number of active electrons of the system.

  • noons (List[float]) – the natural-orbital occupation numbers \(n_i\), sorted in descending order (from high occupations to low occupations) (doubled due to spin degeneracy).

  • orbital_energies (List[float]) – The energies of the molecular orbitals \(\epsilon_i\) (doubled due to spin degeneracy).

Returns

The list of initial coefficients \(\{\theta_{a}^{i}, a \in \mathcal{I}', i \in \mathcal{O}' \} \cup \{\theta_{ab}^{ij}, a>b, i>j, a,b \in \mathcal{I}', i,j \in \mathcal{O}'\}\),

Return type

theta_list (List[float])