I was wondering if it is possible to use a site dependent cutoff for maximum boson number, that changes over time. I am time evolving an MPS where one section has a very large boson number and requires a high cutoff, and another section has very low boson number.
I understand I can create indices with a site dependent boson cutoff using something like [siteind(“Boson”; dim=d) for d in boson_cutoffs], however is it possible to change the boson_cutoff array at each timestep, and somehow update the indices in the MPS to reflect this?
I agree with Ben (corbett5). This is a pretty “custom” idea to want to do. The best way would be to stop the evolution at a certain time step, take the MPS and then “load” it into a new one with a larger maximum boson occupation. Mathematically it should be straightforward, because the old tensors will be just a “slice” of the new ones and the rest of the new ones would be padded with zeros.
Thanks for the replies from both of you. I managed to successfully implement this fairly easily with iTensors. I can now adapt the bosonic cutoff as needed throughout the time evolution.
Thanks again.
We’re working on a new tensor network solver code that will make it easier to customize the DMRG/TDVP update step, this would be a good use case for that (though it will be some time before that is ready for public use).