Hi,

I am trying to use DMRG to compute a gap between Sz=0 and Sz=1 states.

My (fermionic) model is by no means intricate: a given 1D tight-binding model at half-filling with Hubbard interactions.

I am sure there is a gap in my particular system, but I am getting 0.

I tested several different things, so let me try to summarize my struggles:

1) Getting stuck in local minima (which depends on the initial state) while conserving symmetries

In principle, I want to converse N and Sz in this type of calculations: first, calculations are faster; second, I can get the gap by simply computing groundstates with the desired QNs. When I do that, I have to initialize my system in a state that has the QNs that I want. If I use Fock states, I can easily get stuck in local minima (as replied by Miles in http://itensor.org/support/105/sweeps-system-size-clarification-choice-intial-state-dmrg). I believe this is what happens in my code, even though I've tried many different initial guesses (all of them Fock states). For that reason, now I want to feed DMRG with an "arbitrary" combination of states (similarly to what is asked in http://www.itensor.org/support/1359/how-to-create-a-particular-initial-state-as-a-mps, http://itensor.org/support/1357/setting-random-initial-product-state, and http://itensor.org/support/490/starting-initial-state-as-product-state-of-singlets?show=490#q490) **that still has the right N and Sz**. However, I have not been able to create states as in the first and second links while conserving QNs (I get errors saying "Setting Tensor element non-zero would violate its symmetry"). In addition, I don't fully understand the syntax of the solution proposed in the third link to make something similar for electrons.

Let me give a concrete example. Let's say that instead of starting with a Neel-like Fock state, |up,dn,up,dn,...>, I want to start with something like 1/sqrt(2)(|up>+|dn>)1/sqrt(2)(|up>-|dn>)..., which has the same N and Sz. How can I run DMRG, starting from this initial state, and still conserving N and Sz?

2) "ConserveQNs"==false not working properly in version v3 for electrons?

While I could not fix the previous issue, other option that I had in mind was to not conserve symmetries at all (which allows me to start with a randomized wave function via the "randomMPS" function) and then look for the ground state (which has Sz=0) and to excited states (until I get one with Sz=1). Since the Sz=1 can be degenerate, to explore this option I would probably need to add a Zeeman splitting term in the Hamiltonian as well. However, it looks like there is a bug in version v3 when "ConserveQNs"==false is set for electrons (I think this is acknowledged in https://github.com/ITensor/ITensor/issues/311). For that reason, I am installing version v2 and exploring that route.

I believe this should be a quite common problem for people more experienced than me in DMRG calculations (I have just started). So, if someone has any other idea in mind to tackle this difficulty, please let me know.

Let me add that I have also played with the "noise" parameter in DMRG, but I couldn't fix my problems with that.

Best,

GonĂ§alo Catarina

EDIT: minor modifications to my questions, before any reply, for the sake of clarity.