-
Notifications
You must be signed in to change notification settings - Fork 41
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
Why using weighted singular values for the truncation? #184
Comments
The motivation for this comes from minimising the truncation error. The total truncation error using the For example, for Note that there is also |
To be fair, I do agree that it is somewhat of an unconventional choice. I think that a somewhat contrived counterexample would be to have a tensor with singular values |
Ok I had not considered that, so the problem is that selecting for removal one-by-one is not leading the optimal solution. Not a surprise in hindsight, but something I surely overlooked in the design/development. |
I think it is reasonable to just always select the smallest ones, and just overcut a little bit. At the very least, this would give behavior that’s somewhat consistent, and doesn’t change the way the values are selected between symmetric and non-symmetric simulations |
I second that. In my (humble) opinion, the default should behave the same for symmetric and non-symmetric code. |
Well it's never going to be possible to be exactly the same, since in the symmetric case you can cut away complete multiplets. But I am not bound to this behaviour and will thus change it (and maybe give it a few moments of thought if I can come up with a better strategy to determine what to cut altogether). |
In the file truncation.jl, I saw the following function:
It seems to me that the truncation is based on the weighted singluar values, as
and
In the non-Abelian case, singular values are weighted by the square root of the degeneracy of the corresponding sector. I am wondering why the singular values should be weighted in that way? Usually, one only truncates based on the singular values without weights. I ask because in some cases, the spin-0 sectors have the largest singular values, but smallest degeneracy. So sometimes the truncation truncates out the most important spin-0 sector...
The text was updated successfully, but these errors were encountered: