ffsim.expectation_one_body_power

ffsim.expectation_one_body_power(one_rdm, one_body_tensor, power=1)[source]

Expectation of power of one-body operator w.r.t. a Slater determinant.

A one-body operator \(O\) has the form

\[O = \sum_{pq} M_{pq} a_p^\dagger a_q.\]

This function takes the matrix \(M\) as its first argument. Let \(\lvert \psi \rangle\) be the Slater determinant. Then this function returns the quantity

\[\langle \psi \rvert O^k \lvert \psi \rangle.\]
Note: Unlike most functions in ffsim, the inputs to this function are specified

in terms of spin-orbitals, not spatial orbitals. In other words, the one-rdm and the one-body tensors should have the same shape, and all orbitals are treated on an equal footing. The 1-RDM passed here should not be spin-summed, and the one-body tensors should be expanded when compared to the usual one-body tensors elsewhere in ffsim, i.e., scipy.linalg.block_diag(one_body_tensor, one_body_tensor).

Parameters:
  • one_rdm (ndarray) – The one-body reduced density matrix of the Slater determinant.

  • one_body_tensor (ndarray) – The one-body operator.

  • power (int) – The power.

Return type:

complex

Returns:

The expectation value.