ITensor / ITensorNetworks.jl

A package with general tools for working with higher-dimensional tensor networks based on ITensor.
MIT License
51 stars 12 forks source link

Subspace expansion #160

Open wladiKrin opened 2 months ago

wladiKrin commented 2 months ago

This PR introduces a general and flexible subspace expansion interface.

This allows users to perform a 2-site expansion alongside other (typically 1-site) routines, which has better scaling both in the bond dimension and the local Hilbertspace dimension than their 2-site analogs.

The expansion works on general tree structures and can be seamlessly incorporated into existing algorithms by composing and chaining different local updaters via the compose_updaters function. Keyword arguments like maxdim and cutoff inside of expander_kwargs can be used to modify parameters specific to the expansion. Furthermore, a general, randomized svd-routine has been implemented, which can be used for the expansion and allows for the favorable, aforementioned scaling.

An example script can be found in the test folder.