tenpy / tenpy

Tensor Network Python (TeNPy)
https://github.com/tenpy/tenpy
Apache License 2.0
378 stars 129 forks source link

Request for 2D examples #37

Open coolplay opened 5 years ago

coolplay commented 5 years ago

I think it quite necessary to add an example on infinite cylinder, to reproduce some results in literatures, like this paper. It would be nice to give some best practices to beginners: how to verify icylinder results? how to set various parameters? how to avoid slow convergence?

jhauschild commented 5 years ago

I've been working with Bart to reproduce these results myself and just added some example code for the flux pumping. There should follow more documentation about it, though, so we should keep this issue open.

bartandrews commented 5 years ago

I have added some more 2D examples on infinite cylinders via a pull request. Additional examples and documentation to follow...

coolplay commented 5 years ago

In adiabatic flux insertion eng.init_env(model=M) is called to reuse previous MPS environment, is it also the standard way to study general phase transition, like V1 induced phase diagram in Fig. 3(c) of the same paper? Thanks.

Lschoon commented 5 years ago

init_env() is used to re-initialize an engine with a new model. One typically reuses the environments and MPS from the previous run, hopefully ensuring an 'adiabatic' change in the model.

For phase transitions induced by some parameter, one could still use this method. However, there is a risk that because of the adiabaticity mentioned above, the phase transition might not show up as sharply as you would like. I would recommend not using init_env() to find a phase transition, unless there is good reason (like ground state [semi-]degeneracies, where you would want to make sure you stick to a particular ground state).