Then how we can calculate their overlap of two ground states: \(\frac{\langle \textrm{psi_1} \mid \textrm{psi_2} \rangle}{\sqrt{\langle \textrm{psi_1} \mid \textrm{psi_1} \rangle} \sqrt{\langle \textrm{psi_2} \mid \textrm{psi_2} \rangle} }\) ?
It's simply psi_1.overlap(psi_2), or for the normalization as in your formula, psi_1.overlap(psi_2)/psi_1.norm / psi_2.norm .
See overlap for more details.
For infinite MPS, it's the largest eigenvalue of the transfermatrix, which is not just the overlap <psi_1|psi_2> - the latter is zero for any two states which are not exactly the same up to a prefactor, and hence not a usefull measure.
I don't think this works, even for finite MPS or with exact diagonalization.
The issue is that you need to pin the phase of the ground state, which is not well defined from the perspective of a variational algorithm: if \(|\Psi\rangle\) is a ground state, so is \(e^{i \phi} |\Psi\rangle\), so any variational, numerical algorithm like DMRG or ED returns the state with an arbitrary phase.
For that reason, \(\langle \phi_{gs}(\theta) |\phi_{gs}(\theta + \delta \theta) \rangle\) has an arbitrary phase, the only thing you can extract is the absolute value.
(Apart from that, as I said before, the overlap is not really well defined in the thermodynamic limit.)
The wilson loop \(\prod_{\theta \in \{0, 2\pi\}} \langle \phi_{gs}(\theta) \mid \phi_{gs}(\theta+\delta \theta) \rangle\) should be gauge free, although \( \langle \phi_{gs}(\theta) \mid \phi_{gs}(\theta+\delta \theta) \rangle\) is gauge dependent. Therefore, this formula can be used to numerically evaluate the berry phase. By the way, do you have any good idea to calculate the berry phase using DMRG ? Thanks.
You're right of course. Okay, let me just say that I never tried it...
You should probably still make sure that you follow the evolution with \(\theta\) adiabatically.
In other words, use the result from the DMRG run with \(\theta\) as an initial guess for the \(\theta + \delta \theta\) DMRG, similarly as is done e.g. in examples/chern_insulateors/chiral_pi_flux.py.
I think there are two good paper to do correct overlap(fidelity), first one is MPS fidelity(sec 2.1): https://arxiv.org/abs/cond-mat/0701428v3, the other one is traditional DMRG(In the appendex of this paper, I think it is correct, not only inifinite DMRG but finite DMRG) https://arxiv.org/abs/0804.0537v1.
Actually, I implement the tradinational DMRG fidelity on 1D TFI model code in jupyter-notebook(I add the onsite term \delta \sigma x for each site and setting $\delta$ = 1e^-9 to make ground state be same direction rather than superposition state),the fidelity result shows one foot(minimal value) at g=1 which is critical point and satisfying theoretical result. But when I try to use tfi_phase_transition.py file to calculate the fidelity and changing the bc_MPS=finite and L=200 of model_params (also I add \delta \sigma x for each site in the file of tenpy/model/tf_ising.py). the fidelity shows many foots(minimal values). I think the algorithm for the overlap function should be modified.
Last edited by Jerry Chen on 20 Jun 2023, 08:05, edited 1 time in total.