# Constraints with Bosons

+1 vote
edited

Hi everyone,

I have implemented in iTensor a very simple hard-core boson Hamiltonian (only one-site terms), using the SiteSet "Spinless.h". Now, for my model I have to implement two constraints:

1) n{i} * n{i+1} = 0 (bosons cannot sit on neighboring sites)
2) n{i-1} * n{i+1} = 0 (bosons cannot sit at a distance of 2 lattice sites).

where n_{i} is the density (i.e. occupation number) on the lattice site i.

What is the best strategy to do this (apart from introducing energy penalties with extra-terms in the Hamiltonian)? I would like to implement directly this "physical" sub-space.

commented by (190 points)
Hello, any updates on what methods you used? Thanks!

I think one way you can do this, although probably at an increased computational cost relative to the energy-penalty strategy you mentioned (which is what I would try first) is to do the following:

1. define a Hamiltonian MPO (assuming this is a 1D problem) in the usual Hilbert space which includes all configurations including ones which violate your constraints
2. define "isometry" tensors which map three neighboring site indices into one "mega site" index, sending to zero any states which violate your constraints
3. since these isometries will overlap, try to resolve them into a MERA-like tensor network by introducing unitary two-site maps (gates) that allow you to then use two-site isometries on the indices resulting after the unitary maps
4. finally, apply these MERA-like tensors to your MPO and use an algorithm like DMRG to find the ground state in your modified MPO

This is just an idea off the top of my head which I haven't worked out in any detail, so I'm not sure if step #3 is possible in the way I'm guessing it might be. It's just an idea to get started with. Hope it helps though-

Another off-the-top-of-my-head idea is to work out the most general form of MPS that obeys your constraints #1 and #2. It might have a block-sparse structure, similar to quantum number conserving MPS. Then you could formulate an MPS with such a constrained structure, write down the energy expectation value expression in terms of the MPS blocks (naming them like "A", "B", "C") and then use gradient descent or some other optimization technique to minimize the energy. Once you found the optimal blocks, you could "load" them back into your MPS to compute other properties numerically.

Best regards,
Miles