Page 1 of 1

How to use random MPS to acess all ground states

Posted: 24 Dec 2021, 06:25
by lww
Hi, I was trying to obtain the two topologically degenerate ground states (easily distinguished by the symmetry of entanglement spectrum) of the lattice model detailed in arXiv:1208.2623. According to the paper (also the published version), we have roughly equal chance to obtain each of these two states if a random initial MPS is provided to the iDMRG simulation.

I created the random initial state by follwing code, each time ran the simulation with different seeds, but it always converged to the ground state in vacuum sector. I tried this method many times but never converged to the semion sector. In contrast, I can readily obtain the semion sector using 2pi flux insertion. So my question is how to adjust the tenpy code to access semion sector using random MPS.

Code: Select all

def randomize_MPS(psi, steps=6, chi=100, seed=None):
    "Create a charge conserved random MPS from a product state by random unitary evolution"
    np.random.seed(seed)
    options = dict(N_steps=steps, trunc_params={'chi_max':chi})
    RandomUnitaryEvolution(psi, options).run()
    psi.canonical_form() 

Re: How to use random MPS to acess all ground states

Posted: 11 Jan 2022, 10:45
by Johannes
Since you apply 6 steps of randomizing, it might still have some "memory" of the initial state.
This function takes an initlal MPS, I guess you take an initial product state. Did you try using another one?

It's not completely clear to me what initial states the authors of arXiv:1208.2623 took, just saying "random MPS" does not fully specify what ensemble you consider...

By the way, I'm not sure if you saw it, but TeNPy has a tenpy.models.haldane.BosonicHaldaneModel as well, although with slightly different terms, and an example using it. That probably doesn't answer your question, though.

Re: How to use random MPS to acess all ground states

Posted: 18 Jan 2022, 07:48
by lww
Thanks, Johannes. By the way, what are your common practices to obtain the complete set of topologically degenerate ground states in tenpy? I know some states can be obtained by adiabatic flux insertion, but other states with non-Abelian statistics (e.g. arXiv:1412.8115) cannot be obtained in this way. Can you share some experiences?