ffsim.doubles_excitations_unrestricted

ffsim.doubles_excitations_unrestricted(t2)[source]

Unrestricted doubles excitations operator.

The unrestricted doubles excitations operator is

\[T_2 = \frac12 \sum_{ijab} t^{(\alpha \alpha)}_{ijab} a^\dagger_{a\alpha} a^\dagger_{b\alpha} a_{j\alpha} a_{i\alpha} + \frac12 \sum_{ijab} t^{(\beta \beta)}_{IJAB} a^\dagger_{a\beta} a^\dagger_{b\beta} a_{j\beta} a_{i\beta} \right) + \sum_{ijab} t^{(\alpha \beta)}_{iJaB} + a^\dagger_{a\alpha} a^\dagger_{B\beta} a_{J\beta} a_{i\alpha}\]

where

  • \(i\) and \(j\) run over occupied spin-up orbitals,

  • \(a\) and \(b\) run over virtual spin-up orbitals,

  • \(I\) and \(J\) run over occupied spin-down orbitals,

  • \(A\) and \(B\) run over virtual spin-down orbitals,

  • \(t^{(\alpha \alpha})_{ijab}\) are the doubles amplitudes within spin-up orbitals,

  • \(t^{(\alpha beta})_{iJaB}\) are the doubles amplitudes between spin-up and spin-down orbitals, and

  • \(t^{(\beta \beta})_{IJAB}\) are the doubles amplitudes within spin-down orbitals.

Parameters:

t2 (tuple[ndarray, ndarray, ndarray]) – The doubles amplitudes. This should be a tuple of three of Numpy arrays, (t2aa, t2ab, t2bb).

Return type:

FermionOperator

Returns:

The doubles excitations operator.