qat.fermion.chemistry.ucc.compute_active_space_integrals

qat.fermion.chemistry.ucc.compute_active_space_integrals(one_body_integrals: ndarray, two_body_integrals: ndarray, active_indices: List[int], occupied_indices: List[int]) Tuple[ndarray, ndarray, float]

Restrict one- and two-body integrals for given list of active indices.

\[ \begin{align}\begin{aligned}\forall u,v\in \mathcal{A},\; I^{(a)}_{uv} = I_{uv} + \sum_{i\in \mathcal{O}} 2 I_{i,u,v,i} - I_{i,u,i,v}\\\forall u,v,w,x \in \mathcal{A}, I^{(a)}_{uvwx} = I_{uvwx}\\c^{(a)} = c + \sum_{i\in\mathcal{O}} I_{ii} + \sum_{ij\in\mathcal{O}} 2I_{ijji} - I_{ijij}\end{aligned}\end{align} \]
Parameters
  • one_body_integrals (np.ndarray) – Array of one-body integrals \(I_{uv}\). Must be 2D.

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

  • active_indices (List[int]) – Active indices.

  • occupied_indices (List[int]) – Occupied indices.

Returns

  • 2D array of one-body integrals \(I_{uv}^{(a)}\),

  • 4D array of two-body integrals \(I_{uvwx}^{(a)}\),

  • core constant \(c^{(a)}\).

Return type

Tuple[np.ndarray, np.ndarray, float]