ITensorInfiniteMPS.jl
ITensorInfiniteMPS.jl copied to clipboard
Remove code duplication between serial and parallel VUMPS, n-site effective Hamiltonians
As a follow up to #31, we need to remove some code duplication between serial and parallel update VUMPS. For example, a lot of the code for computing the environments is shared between the two, and could be factored out into simple functions that are called by both versions.
Additionally, there is a lot of code duplication across the code for applying the zero-site and one-site effective Hamiltonians, as well as the code for performing the subspace expansion. In principle, we could have a single function that handles applying an n-site effective Hamiltonian, which could be shared by all of these different cases.
EDIT: Also, there is some code duplication involved in the subspace expansion code between the special case of a 1-site unit cell and a multi-site unit cell, introduced in #44 which fixed the 1-site unit cell case. That would also be good to clean up a bit.