Skip to content
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

Slicing an infinite MPS to get a finite one #71

Closed
nbaldelli opened this issue Feb 27, 2023 · 1 comment
Closed

Slicing an infinite MPS to get a finite one #71

nbaldelli opened this issue Feb 27, 2023 · 1 comment

Comments

@nbaldelli
Copy link
Contributor

Following the discussion in #69 I tried some ways to get a finite MPS from Infinite ones.

Directly slicing via psi_finite = psi[start:stop] creates problems with the dangling Link indices at the beginning and the end of the resulting MPS when using functions designed for finite MPS, i.e. correlation_matrix.

The solution I would implement would be creating a finite MPS by attaching two "Dummy" indices at the beginning and the end of the chain via delta tensors to close the dangling links, after having put the finite slice in a proper canonical form. One would only need to take the precaution not to do any operation on the dummy sites.

I tried it and it works when computing the correlation function, both using the function in ITensorCorrelators (ITensors correlation_matrix automatically applies operators to the first site of the MPS) and by directly applying the operators.

I plan on making a PR with an example file with a function toMPS and some tests but open this issue in case something else comes up.

@nbaldelli
Copy link
Contributor Author

The issue with dangling indices in correlation_matrix is solved by ITensor/ITensors.jl#1081. The Infinite MPS -> Finite MPS issue is solved by #72

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant