How to use random MPS to acess all ground states
Posted: 24 Dec 2021, 06:25
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.
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()