# how to compute the ground state energy in a given symmetry sector?

Dear Itensor,

I have some questions on how one can compute the ground state energy in a given symmetry sector. For some reason, I was not able to obtain these results from a google search, so I decided to ask them here.

1) For the transverse-field Ising chain, with
H = \sumi \sigma^zi \sigma^z{i+1} + h \sumi \sigma^xi
When h < h
c, is there anyway for DMRG to obtain the ground state polarized along the +z direction? What about the ground state with even/odd parity?
What about the imaginary-time TEBD or the VUMPS algorithm?

2) For systems with global U(1) symmetry, such as the Bose-Hubbard model,
H =\sumi (ai^\dag a{i+1} + ai a{i+1}^\dag + \gamma ni n{i+1}) - \mu sumi ni
where a
i and n_i are respectively the annihilation and number operators of the bosons.
Is there anyway for DMRG to obtain the ground state of H with a given particle number? (I know one can shift the chemical potential \mu to make the full ground state have any given particle number. But I'm curious whether one can do this directly by exploiting symmetries of the MPS) Is it enough to use an initial state with a definite particle number in the DMRG? Is so, why?
What about the imaginary-time TEBD or the VUMPS algorithm?

I would also be very grateful for any pointers to references that talk about these issues. (I find this reference ("Tensor network states and algorithms in the presence of a global U(1) symmetry" PRB 83 115125) very helpful. But unfortunately, it focuses on MERA instead of MPSes).

Thanks very much!
Yantao

answered by (44.9k points)
selected by

Hi Yantao,
Thanks for the question. This is a good question because it is one of the more subtle aspects of ITensor, though it is also very simple to use in the end.

The answer to your questions is that the way quantum-number-conserving tensors work in the ITensor library (both the C++ and Julia versions) is that they always change whichever quantum numbers you are conserving by a definite amount. And for the case of acting with the Hamiltonian or a "gate" which is an exponential of a Hamiltonian term, the change to the total quantum number is zero, so no change at all.

Practically what this means is the following:
1. if you initialize an ITensor DMRG calculation with an MPS made of quantum-number conserving ITensors, then it is guaranteed that the resulting, optimized MPS will have the same total quantum numbers as the initial state
2. if you do a calculation such as TEBD, then as long as your gates conserve the quantum numbers (are zero-flux QNITensors) then the total quantum numbers of your MPS will not change

So if you just prepare an initial state in the symmetry sector you want, the calculations will stay in that symmetry sector. You can check the total quantum number at any point during or after a calculation by calling totalQN(psi) (or totalqn(psi) in Julia) on an MPS psi.

Miles

commented by (310 points)
Dear Miles,

Thanks for the answer and sorry for the late response!
I have two more questions.
1. How do you initialize a symmetric MPS? It seems that you have to manually set the entries of an MPS so that it's block diagonal. Is there a more automatic way of doing that?
2. I understand that all block-diagonal MPSes are symmetric. But are there symmetric MPS states which are not block diagonal? If yes, will one miss out a possible eigenstate in the symmetry sector by using only the block-diagonal states?

Thanks,
Yantao
commented by (44.9k points)
Dear Yantao,
Good questions. The answer to #1 depends on what you want to initialize your symmetric MPS to be. If you are content to initialize it to be a product state, then it is very easy and we have the InitState feature for doing that. You can see an example of using InitState in this code formula:
http://itensor.org/docs.cgi?vers=cppv3&page=formulas/2d_dmrg

As long as the indices used to construct the MPS (from the site set object, usually called "sites") have QN information, then the product state made using InitState will also be QN-conserving, symmetric, and block-sparse.

Also I should note that QN-conserving tensors are block-sparse, but not block-diagonal in general. Block-diagonality would be an extra condition which is not required for conserving quantum numbers.

I don't really understand all of your question #2. As I just mentioned, block-diagonal tensors might be symmetric, but symmetry-conserving tensors are not in general block-diagonal. Instead, they are just block-sparse, so they might have some non-zero blocks which are not on the diagonal.

I'm not sure what it means for an MPS to be block-diagonal. Do you mean each of its tensor are block-diagonal? Or that viewed as one single tensor the MPS is block-diagonal? Or did you mean to say that the MPS tensors are block-sparse?

But to answer your last question: if the Hamiltonian conserves a particular set of symmetries, then restricting MPS to have well-defined values of those symmetries will not mean you will miss any eigenstates because it can be proved that *all* eigenstates will have a well defined value of the quantum numbers that are conserved. The only way you could miss some eigenstates would be if you only found the eigenstates in one, single symmetry sector and didn't explore other sectors. This can be tricky, though. For example, if you don't know a priori which symmetry or QN sector the ground state is in it might not always be obvious. A good way to find out for sure is to compute the ground state on a small system with QN's turned off and then measure the conserved quantity, such as total Sz.

Hope that helps -

Miles
commented by (310 points)
Dear Miles,

Suppose the matrix in your MPS is A_{a,b}^s, and that each index to A has well defined quantum numbers. Then what I mean by "block-diagonal" is that A_{a,b}^s = nonzero only if Q(a) + Q(s) = Q(b), (assuming that the index a, s flows in, and index b flows out). Perhaps this is what you mean by "block-sparse" as well. Is it?

My understanding of how DMRG (and other algorithms) preserves symmetry is that this "block-diagonal" structure is preserved during each step of the algorithm. My second question is trying to ask is it possible that somehow an eigenstate with a definite quantum number can be NOT in the block-diagonal form for any symmetry sector. Then if one only looks for block-diagonal MPSes, one will then miss it. Is this a legit worry?

Thanks,
Yantao
commented by (44.9k points)
Dear Yantao,
Thanks for clarifying the situation that you mean. I would definitely call that kind of MPS tensor "block sparse" and not "block diagonal" because in general the non-zero blocks do not have to be on the diagonal,  nor are the blocks themselves diagonal. Sorry to be so picky about it, but we have a separate block-diagonal storage type in ITensor which we use to store things like the singular values coming from an block-sparse SVD, so it's helpful to distinguish that case.

Also, in general it may not be that Q(a)+Q(s) = Q(b), but it could be. The more general relation is something like Q(a)+Q(s) - Q(b) = F where F is the "flux" of that MPS tensor which can be non-zero (though also note that the signs of this equation depend on which way the arrows of the tensor point).

Yes, the DMRG code in ITensor preserves the block-sparsity of all tensors input into it, in a symmetry-preserving MPS. That's correct. Not only DMRG, but actually all operations on block-sparse, QN-conserving ITensors (such as taking an SVD, etc.) preserve the block-sparsity.

Regarding properties of eigenstates of symmetric Hamiltonians, any eigenstate with a unique energy (non-degenerate) will have a well-defined quantum number (i.e. be in a well-defined symmetry sector / or transform under a particular representation of the symmetry group). The exception is when eigenstates are degenerate, and then only certain linear combinations of them will have a well-defined symmetry. But that's ok, because you can just find these linear combinations, so there's still no danger of missing an eigenstate as long as you look in every symmetry sector.

Miles
commented by (44.9k points)
Your last question involves a fundamental theorem of quantum mechanics, namely that operators Q which commute with a Hamiltonian H can be simutanously diagonalized by the eigenstates of H. For more information you can see the precise statement on this page:

https://en.wikipedia.org/wiki/Good_quantum_number