-
Notifications
You must be signed in to change notification settings - Fork 31
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
push! for MPOHamiltonian #49
Comments
indeed, but the way sparsempo's are implemented at the moment makes this rather difficult (a single element from a sparsempo - sparsemposlice - should really be a proper object, while at the moment it is a lazy view into its parent). So I'm not entirely sure what the interface of push! should be, what kind of object would you want to push onto the sparsempo? The good news is that we have been working on a bunch of changes to tensorkit/tensoroperations/strided, amongst which is a new "blocktensormap" type, which will replace the current sparsemposlice. A blocktensormap will act like a regular tensormap (you can permute/contract/multiply with it), and sparsempo will simply be a vector of blocktensormaps, making the implementation of push! trivial. However this will take a bit more time, so in the meantime I'm more then willing to add a temporary push! interface to mpohamiltonian. Did you have some kind of interface in mind? |
So what I have in mind is that we start from a window of some size, and non uniform Hamiltonian of the same size
Then, as we time-evolve the state, we also dynamically expand the window
|
My solution currently is to redefine the Hamiltonian every time step, i.e calling |
I have whipped up a hacky version, but I'm not convinced that this should be included in MPSKit in its curent form:
Your version of updating the environments is indeed correct! However, we do have some code that supports time dependent hamiltonians of the form sum_i f_i(t) H_i, where the idea is that I can simply calculate the environments of H_i instead of recalculating it every timestep (we're using it at the moment in a project where even the left and right states of the window change under time evolution). Is your hamiltonian of such a form, with not that many different f_i's ? |
for time dependent hamiltonians, see something like #52 |
It will be nice to have a push! method for SparseMPO and MPOHamiltonian so as to be able to extend the Hamiltonian when working with nonuniform Hamiltonians and a growing mps window.
The text was updated successfully, but these errors were encountered: