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

Correlation functions for MPSEnvironment #173

Closed
jhauschild opened this issue Jul 19, 2022 · 2 comments
Closed

Correlation functions for MPSEnvironment #173

jhauschild opened this issue Jul 19, 2022 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@jhauschild
Copy link
Member

The MPS has a few functions for evaluating correlation functions of the form C(j) = <A(i) B(i+j)> == <psi| A(i) B(i+j) |psi>. All of these things can also be evaluated between different MPS, C2(j) = <phi| A(i) B(i+j) |psi>.
In terms of code, this means to mostly copy the methods from the MPS, properly insert get_LP and get_RP of the environments, and use the B.conj() and one set of S from the phi instead of the psi - the tensor network contraction itself is completely analogous.

One further, slightly tricky thing is that we need to obtain dominant left/right eigenvectors of the MPSTransferMatrix to get initial LP/RP. It's probably best to do this in a class method of the MPSEnvironment, e.g. from_TM_eigenvectors.

Requested in https://tenpy.johannes-hauschild.de/viewtopic.php?t=276

@jhauschild jhauschild added enhancement New feature or request good first issue Good for newcomers labels Jul 19, 2022
@jhauschild
Copy link
Member Author

This was implemented in #267, up to the from_TM_eigenvectors which is still missing.

@Jakob-Unfried Jakob-Unfried added this to the some v1.x release milestone Mar 5, 2024
@jhauschild
Copy link
Member Author

Realizing now that the eigenvectors of the MPSEnvironment(psi, psi) are trivial identities, so this already works.
On the other hand, MPSEnvironment(psi, phi) for phi != psi has dominant TM eigenvalues < 1, so there's no point in calculating this (for infinite systems - for finite, on the hand, just MPSEnvironment(psi, phi) initialized the correct thing.
So overall we have everything we need (that makes sense).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants