Adding Heavy-hex lattice
Created by: PhilipVinc
I would like to add the heavy hex lattice as a built-in one in netket to make it easy to look at ibm's stuff.
This is relatively easy to do, thanks to @attila-i-szabo implementation of lattice, and I think can be done by adding two new sites to the unit cell
import netket as nk
extent = (2,2)
site_offsets = [
[0.50, 0.50 / 3**0.5],
[0.75, 0.75 / 3**0.5],
[1.00, 1.00 / 3**0.5],
[1.25, 0.75 / 3**0.5],
[1.00, 1.50 / 3**0.5],
]
g = nk.graph._common_lattices._hexagonal_general(
extent=extent,
site_offsets=site_offsets,
pbc=False,
)
but this gives the following graph
which is correct, but does not really match the way that IBM does it (also, the 'unit' used by ibm corresponds to 2 unit cells in this representation.
But the way IBM uses this lattice is that... they have a certain number of unit cells plus some extra sites. I'm unsure how to do it exactly if we want to keep using a Lattice... Indeed we could just hardcode the same graph structure that they use, but maybe I'm missing something...