Fix wraparound logic
#114 (closed) The new logic is:
First keep sites in the fundamental domain of the original symmetry builder.symmetry
. Every site
that is stored and every a
site of hoppings (a, b)
should already be there. Wrapping back of b
from a hopping is done by b_dom = builder.symmetry.which(b)
, then the part of b_dom
that is in the remaining keep
translation direction is discarded, resulting in a translation purely in the wrapped directions. The wrapped back b_wa = sym.act(-b_dom, b)
is guaranteed to be an image of a site in the original FD under a kept translation.
In the end we shift everything to the FD of the remaining 1D translational symmetry.
Closes #114 (closed)
Edited by Joseph Weston