Page 1 of 1

How to convert iMPS to finite MPS?

Posted: 08 Feb 2022, 11:50
by aeberharter
I have an iMPS as the result of an iDMRG run. By calling

Code: Select all

psi.enlarge_mps_unit_cell(m)
I can easily increase the number of sites in the unit cell, however it is still in iMPS form.
Would it work if one calculates the canonical_form with setting the bond dimension to chi = 1 at the boundary?

Re: How to convert iMPS to finite MPS?

Posted: 09 Feb 2022, 06:48
by Johannes
Why? What do you want to do with the state afterwards?

Yes, of course, you can just insert a projector onto the index with maximal singualar value at the boundary, i.e. bond dimension 1, and formally declare it a finite MPS. But this truncation is likely not the "optimal" state of maximal overlap with the infinite one; you might need to do a few sweeps (with the VariationalCompression) to get the best approximation of the original state.

Maybe, you're more looking for the "segment" boundary conditions, where we consider a finite subsystem embedded into the background of an infinite system?

Re: How to convert iMPS to finite MPS?

Posted: 26 Aug 2023, 00:31
by W10104
For future readers turned to this question from Google, here is a how-to for modifying boundary conditions using the projector Johannes mentioned: https://tenpy.readthedocs.io/en/latest/ ... te-left-bc