Hello,

1) I want to compute ground states of the finite-size TF Ising model via DMRG for transverse fields \(g_x<1\). However, I always want to get the ground state that is spin-flip symmetric. For example, when setting \(g_x=0\), I want to get the GHZ state: \(1/\sqrt{2}(|0...0\rangle + |1...1\rangle|)\) rather than the spin-up/down state. Since it seems that spin inversion symmetry is not implemented yet, is there a way to achieve this nonetheless?

2) While I was looking for answers for question 1) I came across this forum post: viewtopic.php?f=7&t=28&p=95&hilit=z2+symmetry#p95 and I was wondering how you determined the value of the symmetry breaking field in this case since, as you mentioned yourself, it is rather tricky and could change the physics of the problem (I know that this would do the opposite of what I want in 1), but I am just curious).

3) Is it in general possible to implement reflection symmetry (w.r.t. the center of a chain) for a MPS and if yes, can this be done somehow in TeNPy?

Thanks a lot!

Rike

## spin inversion & reflection symmetry

### Re: spin inversion & reflection symmetry

1) You refer to H = ZZ - g_x X, where the spin flip symmetry is a product(X).

TeNPy implements the TF Ising model as H = XX - g Z, such that the symmetry becomes product(Z), i.e. the parity of sum(Z) is conserved. This is implemented in tenpy.models.tf_ising.TFIChain, it will by default use conserve='parity'.

It'll force the MPS to have <X> = 0.

If you try running the infinite DMRG as given in d_dmrg.py for say

Note that you generally want to avoid getting such superpositions, however, because they require larger bond dimensions....

2) Guessing. If you are at a fine-tuned critical point, any perturbation will get you away from it, and is "bad" in that respect.

1.e-6 seems small enough to not get you into another phase away from a critical point, however, but still large enough that it let's DMRG reliably select one state over the other (i.e. it shouldn't be smaller than truncation errors you have in DMRG). If in doubt, just try it out for a bunch of different values.

3) It's not implemented in TeNPy.

In general, you could enforce it by demanding that your MPS is reflection symmetric by construction, i.e. that the Tensors are not independent of each other. There's a slightyly different notation for finite/infinite MPS of what this means, and it makes things complicated if you really want to adjust DMRG to do it properly, i.e. to find the optimal new tensor minimizing the energy given the reflection symmetric ansatz - I think it's no longer a simple eigenvalue problem. You could ignore this and just "symmetrize" at some point when you optimize the center, but I'm not sure if/how well this works. In any case, it would be quite some effort to implement this exactly, I think.

TeNPy implements the TF Ising model as H = XX - g Z, such that the symmetry becomes product(Z), i.e. the parity of sum(Z) is conserved. This is implemented in tenpy.models.tf_ising.TFIChain, it will by default use conserve='parity'.

It'll force the MPS to have <X> = 0.

If you try running the infinite DMRG as given in d_dmrg.py for say

`g=0.8`

, you'll find that it gives non-zero X if you don't preserve the parity, and entanglement close to 0, while it gives zero X and entanglement increased by log(2) when you set `conserve='best'`

. The extra log(2) entanglement is exactly from the superposition of the GHZ state.Note that you generally want to avoid getting such superpositions, however, because they require larger bond dimensions....

2) Guessing. If you are at a fine-tuned critical point, any perturbation will get you away from it, and is "bad" in that respect.

1.e-6 seems small enough to not get you into another phase away from a critical point, however, but still large enough that it let's DMRG reliably select one state over the other (i.e. it shouldn't be smaller than truncation errors you have in DMRG). If in doubt, just try it out for a bunch of different values.

3) It's not implemented in TeNPy.

In general, you could enforce it by demanding that your MPS is reflection symmetric by construction, i.e. that the Tensors are not independent of each other. There's a slightyly different notation for finite/infinite MPS of what this means, and it makes things complicated if you really want to adjust DMRG to do it properly, i.e. to find the optimal new tensor minimizing the energy given the reflection symmetric ansatz - I think it's no longer a simple eigenvalue problem. You could ignore this and just "symmetrize" at some point when you optimize the center, but I'm not sure if/how well this works. In any case, it would be quite some effort to implement this exactly, I think.