+2 votes
asked by (400 points)
edited by


First, this is a general question about ITensor or DMRG.

So, I am recently playing with the SU(2)-symmetric spin-1 Bilinear-Biquadratic Heisenberg model using Itensor.

H=\cos\theta\sum_{i, j} S_i\cdot S_j+\sin\sum_{i,j} (S_i\cdot S_j)^2

The Hamiltonian itself is SU(2)-symmetric. When tuning the paramters, however, there will be some phases where the ground states spontaneously break the SU(2) spin-rotational symmetry. Since for now ITensor does not have SU(2) symmetric version (I am not sure whether you will consider about this in the future), I think it will be difficult to capture the spontaneous symmetry breaking.

But if one insists on doing this, I am wondering how one should proceed. Here I will share some ideas that I know from different literatures. And say, now we want to capture the Neel (AFM) order.

(1) Calculate the staggered magnetization.

|\vec{M}| = |\sum_{i}(-1)^i \vec{S}_i|

This might not be a good idea for models whose ground states spontaneously break the SU(2) symmetry because we are dealing with finite systems. If I remember it correctly, there is no spontaneous symmetry breaking (symmetry of the Hamltonian) for (d<2) finite systems.

(2) Correlations.

The spin-spin correlations for Neel-order states will have a non-vanishing oscillating tail. And it is SU(2) symmetric and thus respects the symmetry of the Hamtilonian.

And one can have some neel order parameter, e.g., see this paper.

m_s^2=\frac{1}{N^2}\sum_{ij}(-1)^{r_i - r_j} S_i\cdot S_j

(3) Manually breaking the symmetry by pinning fields.

H = H_0 + h\sum_i (-1)^i S_z

And eventually we make h go to zero. This seems to take a little bit more effort on calculations.

This question is a bit specific, but I think it is worth discussions because it will be helpful and give some ideas for those who want to study similar Heisenberg spin models using Itensor. And I would very much appreciate it if you have any advice on this.

Thank you very much!


1 Answer

+1 vote
answered by (70.1k points)
selected by
Best answer

Hi Yi, the questions and issues you raise here are good ones. First of all, regarding your three ideas, I would say there is no single best one, but it depends on various details like the kind of order you are studying, the sizes of systems you can reach, and the accuracy of your calculations. Let us get back to that in a moment.

One point you raised is about SU(2) conservation of DMRG and the idea that not having it could prevent seeing symmetry breaking. In fact, the situation is the exact opposite: conserving a symmetry means the code is not allowed to break that symmetry, even if the actual physical system would. For example, if one conserves Z2 spin parity in the transverse-field Ising model (something you can do in ITensor since it is an Abelian symmetry), then the ground states DMRG will return in the symmetry breaking ferromagnetic phase will actually be linear combinations of all spins up plus all spins down, thus not actually breaking the symmetry. Whereas if you studied the system with all symmetry conservation turned off, then the code could return a ground state which is just all spins up, say (or all spins down and which one depends on subtle details of your initial state).

This ties into your other point about finite systems not being able to break a symmetry. Technically this is absolutely correct, however in practice the energy difference between a state which breaks the symmetry and one which does not is extremely tiny, and goes to zero exponentially with system size. So in DMRG, unless you study rather small systems and push the calculation to very high accuracy, often the approximate ground state DMRG returns will in fact break the symmetry if that is what the system wants to do. But also in practice DMRG might not break the symmetry in a "clean" way, and could return a state which is some mixture of two or more of the symmetry-equivalent ground states. Which brings me to my next point.

The safest "best practice" for observing symmetry breaking with DMRG is usually your third idea, about applying a field. Except here the best idea is usually to apply the field only at the edges of the system, so that you minimally disrupt the physics in the bulk of the system. See for example this review article which discusses this idea in more detail: https://arxiv.org/abs/1105.1374
With the edge-pinning idea, you don't have to adjust the size of the field, but can just adjust the length of your system and do finite-size scaling, which is nice.

Measuring correlation functions can also be a good idea, but because you are measuring the square of two operators, this quantity can be affected more by approximations such as the truncation of an MPS that is done by DMRG. The number that you obtain from this method is smaller and so can be harder to converge. But in many cases it can still be a good method to use, because it can be an easier method for detecting complicated orders which might be more easily missed by just guessing an order parameter to measure.

So briefly, I would usually recommend a combination of (1) and (3), with the fields in (3) only applied at the edges. But (2) can also be a good option. Ideally trying both together and comparing the results is the best, especially when first exploring a new system and trying to understand it.

Hope that's helpful -


commented by (400 points)
Hi Miles,

Thank you so much for the detailed reply! That's very helpful. In fact, what you call edge-pinning idea is exactly what I am using to try to study the phase transitions. I pin the edges by designing the Hamiltonians whose ground states have the specific orders I want, like dimerized states, Neel states, etc. And the two phase transitions happen to have some symmetry-breaking, which is why I think it would be great to have symmetry-breaking in DMRG calculation and ask this question.

And your explanation regarding the statement - "conserving a symmetry means the code is not allowed to break that symmetry, even if the actual physical system would. " - is great and clears my confusion.

What I previously thought was that if I turn on the symmetry conservation, I would at first choose one of all the symmetry-equivalent "directions" or simply states, then I automatically have a symmetry-breaking state. However, this is usually not the case because, as you pointed out, what we usually have as initial states are those with a mixture of some symmetry-equivalent states. Whether or not we can have symmetry breaking with symmetry conservation turned on will depend on the initial states, and in most cases we have to be extremely lucky to make the correct guess.

Take your Z2 spin parity example, and suppose we turn on the symmetry conservation.

(i) If the initial state only has spin ups which already breaks the global Z2 spin parity, then the symmetry can be broken.

However, in most cases,
(ii) the initial state has both spin ups and spin downs, in which case we will have a state that is some linear combination of all spin ups plus all spin downs.

This is my understanding.

Thank you again!

commented by (70.1k points)
Hi Yi,
Yes I would say your understanding of the Z2 example is correct. However, there it is a simple enough system that probably DMRG will really just break the symmetry in a "clean" way, meaning returning one of the ground states of minimal entanglement which is not a funny superposition of symmetry broken ground states.

But in other systems where the broken symmetry is a continuous one, I have found that DMRG can take a long time to really end up in a state with the minimum entanglement i.e. the simplest kind of broken symmetry state. Instead it will often spend a long time in an arbitrary mixture of states with different order parameter values. So that is why it is best to add a small field or perturbation to definitively favor one value of the order parameter over all others. And I think you agree this does not ultimately bias the calculation, as long as one does a combination of finite-size scaling and adjusting the pinning field to make sure the effect is fully removed or accounted for.

Best regards,
commented by (70.1k points)
Here is a nice paper, by the way, where Fakher Assaad adapted this idea of edge pinning popularized in the DMRG community to quantum Monte Carlo calculations and also found it worked very well there:
commented by (400 points)
Hi Miles,

Thank you so much! And I find your paper (arxiv1105.1374) really helps. If I understand it corretly, there you use the idea of the pinning fields to create some kind of "environment" you want for some reasons, like ruling out some orders or maybe have more reliable ground states.
However, I am using the idea of pinning fields in a slightly different way that I actually have different fields with different orders on the two edges. This is because basically what I want to do is to use this idea to explore the type of the phase transition, i.e., whether it is a first order transition or second order (having coexistence).

For this purpose, I pin the two edges with different fields having different orders, corresponding to the two phases when tuning the parameters.

Then, if it is a first-order transition, I should not see coexistence in the bulk for any parameters as I scale with the system size. Otherwise if it's a second-order transition, one would expect to see the coexistence of the two parameters in the bulk as scaling with the system size for some parameters. I think this would be a better approach to explore the phase transition since my calculations are quite limited by the bond dimensions (and thus truncation errors, about 1E-5, which is not so good).

Thank you again!

commented by (70.1k points)
That's a neat idea, yes. Steve White and his collaborators have tried out an idea like that, where the parameters of the Hamiltonian vary in space along the length of a long cylinder (because DMRG scales linearly with cylinder length, so it can be affordable to do long cylinders). For example in Fig. 3 of this paper: https://arxiv.org/abs/1801.01130

Your idea is different, I see, with the same Hamiltonian throughout the bulk. I like it and hope that you find it works well!
Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.