how to reduce Hilbert space

Hi ,ITensor

I’m reading a paper on ruby lattices, the Hamiltonian is shown in the figure.
figue

The paper says: we can explicitly enforce V(r1) = +∞ by working in the reduced Hilbert space where each triangle of the kagome lattice (containing three atoms) only has four states: empty or a dimer on one of the three legs.

This seems a little difficult to me. Is this possible to implement in itensor? What do I need to know?

Thank you for all the help you can give in this problem.

Interesting question. It’s not totally obvious whether this can be implemented straightforwardly using our existing set of tools. (Whether something can be implemented “in itensor” is a harder question to answer, because ITensor is a general tensor library, so any tensor network method can be implemented using it.)

Maybe what you are asking is whether that idea can be implemented using tensor networks?

Possibly: depending on details. If it is possible, it would be by defining a new kind of local Hilbert space (which we make easy to do) which has a dimension of four, representing the four states. The tricky part is that I don’t think in the system that you are describing that the total Hilbert space is simply a tensor product of the individual, local Hilbert spaces. This is because the triangles of the Kagome lattice share corner sites with each other. So it may not be the case that if one triangle is in a particular state (empty or dimer on one of the three legs) that the neighboring triangles are allowed to be in any of their states: only a reduced set may be allowed.

What I’m describing there is a constraint. This kind of Hilbert space constraint could be rigorously implemented in ITensor in the future when we add support for things like non-Abelian symmetries and anyonic spaces, which are also kinds of constrained Hilbert spaces.

But for now the best way to handle constrained spaces like that is to just add an energy penalty to your Hamiltonian that “costs” a high energy whenever the system goes into a state that violates the constraint you want to impose.

1 Like

Hi Miles,

I happened to see this question. I’m also interested in this implementation. For 1D Rydberg chain, Chepiga & Mila have described the method in their paper Kibble-Zurek exponent and chiral transition of the period-4 phase of Rydberg chains | Nature Communications, see the Methods on page 7. It seems doable in ITensor by properly defining the QN object in the new site type. But I’m not sure.

Best,
Jin