View source on GitHub |
Implement the wedge product between left_tensor and right_tensor
openfermion.linalg.wedge(
left_tensor, right_tensor, left_index_ranks, right_index_ranks
)
The wedge product is defined as
\[ \begin{align} a_{j_{1}, j_{2}, ...,j_{p} }^{i_{1}, i_{2}, ..., i_{p} } \wedge b_{j_{p+1}, j_{p+2}, ..., j_{N} }^{i_{p+1}, i_{p + 2}, ..., i_{N} } = \left(\frac{1}{N!}\right)^{2} = \sum_{\pi, \sigma}\epsilon(\pi) \epsilon(\sigma)\pi \sigma a_{j_{1}, j_{2}, ...,j_{p} }^{i_{1}, i_{2}, ..., i_{p} } b_{j_{p+1}, j_{p+2}, ..., j_{N} }^{i_{p+1}, i_{p + 2}, ..., i_{N} } \end{align} \]
The top indices are those that transform contravariently. The bottom indices transform covariently.
The tensor storage convention for marginals follows the OpenFermion
convention. tpdm[i, j, k, l] = ,
rtensor[u1, u2, u3, d1] =
Returns | |
---|---|
new tensor constructed as the wedge product of the left_tensor and right_tensor |