Explained in this 2005 paper by Verstraete and Cirac, it is possible to transform local fermion Hamiltonians on a lattice in D dimensions into local spin Hamiltonians on a lattice in D dimensions. Myself and others I've spoken with recently, including @dabacon, would love to play around with this mapping. So it would be great to have it implemented in OpenFermion. This project would be a great introduction to OpenFermion but requires that one has enough physics background to get through the paper.
I implemented the transformation on 2-d square grids with an even number of columns, in transforms/_verstraete_cirac.py. However, I can still think of some things to do:
Extend to an odd number of columns (this is straightforward and explained in the paper).
It would be great if we could check that the ground state decomposes as a tensor product, but I don't know how to do this. I don't think it works to check that the qubit state vector is a tensor product, since the tensor product structure of the Hilbert space of qubits is different from that of the Hilbert space of fermionic modes.
The general idea of the transform is to multiply some operators by stabilizer operators to cancel out Jordan-Wigner strings. Right now, I only handle quadratic operators corresponding to vertical edges, as described in the paper. I haven't thought about whether it's necessary to handle other operators, and how we would do so.
My implementation works only for spinless models. I think the way to handle spin varies depending on the particular interactions between orbitals of different spin which are present in the Hamiltonian we want to transform, so this might be a little complicated.
It would be cool to generalize to different 2-d lattice geometries and also higher dimensions.
I use one particular graph for the auxiliary Hamiltonian, corresponding to Fig. 2a in the paper, but other auxiliary graphs are possible, and we may want to explore them.
Explained in this 2005 paper by Verstraete and Cirac, it is possible to transform local fermion Hamiltonians on a lattice in D dimensions into local spin Hamiltonians on a lattice in D dimensions. Myself and others I've spoken with recently, including @dabacon, would love to play around with this mapping. So it would be great to have it implemented in OpenFermion. This project would be a great introduction to OpenFermion but requires that one has enough physics background to get through the paper.