-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Evenly keep eigenvalues among different sector for abeliantensor #2
Comments
Hi Xinliang,
Can I ask, in what context would you need this? |
Markus, You may already know that I'm now combining the HOTRG with you Gilt in order to generate an RG flow that will go to the critical fixed-point tensor of, for example, the 2D Ising model. However, in practice, when the tensor comes near to the critical fixed-point tensor, the shape of the Z2 symmetric tensor sometimes oscillates. For example, if we have bound dimension 30, one leg of the tensor sometimes has a shape going like [15,15] → [14,16] → [15,15] → [14,16] under the RG, even though the singular value spectrum of the tensor (as is defined in your Gilt-TNR paper) is already very stable. I remember I saw a similar behavior for the TRG combined with Gilt when I played with your Gilt-TNR codes, but I'm not 100% sure my memory is correct. In my current research project, I want to find a manifestly fixed-point tensor by adding some gauge fixing procedure as Evenbly and Vidal did in their TNR paper. This is the reason why I want to have the freedom to impose the bound dimension distributed evenly between two sectors. Current, I'm using the above quick hack for the Z2 case, and it works. I just finished writing up the paper and I believe I can upload it to arXiv in a few weeks. I will tell you when I do. Your two reasons make sense to me. So I think I will keep using my quick hack version. |
Ah yes, I now remember you talking about the issue of the oscillating bond dimension. Looking forward to reading your paper! One thing that might work is providing a way for the user to specify the exact sizes of the different symmetry sectors. This would be independent of whether it's Z2 or something else, and then in your case you would just have to specify that you want the dimensions of the sectors to be the same as in the previous iteration. Options like |
That is true! The freedom to specify the sizes of different sectors is really useful. |
Hi Markus, the current
matrix_eig
method inabeliantensor.py
keep the first several largest eigenvalues among all eigenvalues. For example, if we truncate a leg with bound dimension 30 to 20 for Z2 symmetric tensor, and let's say the initial shape is [15,15], the truncation could end up like [9,11]. However, sometimes, we may wish the truncation is evenly distributed among two sectors to be [10,10], so is it possible to support this "evenly truncation feature" for the eigenvalue decomposition for the abeliantensor?I think the key is in line 1978 of the
abeliantensor.py
inmatrix_eig
methodCurrent what I do is to add something like this after, just design for Z2-symmetric tensors
where
evenTrunc
is a boolean variable specifying whether we want to evenly truncate among sectors or not. However, I think there must be a better way to do it.Xinliang
The text was updated successfully, but these errors were encountered: