I had a query regarding the initial MPS that we take for DMRG sweeps. I was thinking of gradually changing my parameter values start from a non critical area and make my way to the critical point. Say I start somewhere and do the DMRG sweeps and find the ground state MPS. Now I move a little closer to the critical point and this time I use the previous ground state MPS that I found, again repeat the DMRG sweeps and find the ground state at that phase space point. I keep doing this (i.e. using the ground state MPS from previous phase space point as the initial MPS for the neighbouring phase space point) and slowly make my way to the critical point and find the ground state MPS there.
Will this be more efficient and converge to the ground state faster for the various ground state points rather than starting from a random initial MPS ?
I basically want to find the central charge at the critical point and I was looking for clever ways to identify the critical point and also to find the central charge there.
If someone could list some other clever strategies it would be great.
Also my local Hilbert space is 12 dimensional and i am trying to get to 512 - 1024 sites.
I tried PBC but it’s taking a long time since as far as I know it scales as \chi^2 .
i plan to implement VUMPS and as the last resort I was thinking of using MERA.
Hi Sunny,
I think the simplest strategy to converge difficult or expensive DMRG calculations is to do lots of initial sweeps at a low maximum bond dimension (maxdim) of, say, \chi=20. Your idea about gradually changing the state could be good, but I believe even simpler ideas like the one about doing many sweeps might work as well or even better. You’ll just have to try out different ideas on smaller-sized systems to see.
About getting central charge and implementing VUMPS, there is an experimental VUMPS code based on ITensors.jl that you can find in this package: https://github.com/ITensor/ITensorInfiniteMPS.jl
While I say it’s experimental, it’s actually very robust and well written. The experimental part is more the interface and design and things like that. But it should both work well in terms of giving a good quality ground state and also it should be easy to obtain the Schmidt values and thereby obtain the entanglement entropy.
Hi Miles! I got similar question. What If I want to pass some specific wave function as a starting point in DMRG. I could take random_mps or some “pre-defined” configuration for Fermi-Hubbard model (say, checkerboard Up/Dn) . Are there any examples of taking Gutzwiller projected states as an initial point for DMRG?