Hermitian conjugate for coupled system

How do I use this algorithm? What does that parameter do?
Post Reply
svv
Posts: 1
Joined: 09 Jul 2022, 10:41

Hermitian conjugate for coupled system

Post by svv »

hi,

Code: Select all

self.add_multi_coupling(-tc, [( "Bd", 0, 0), ("B", 0, 1), ("N", 1, 1)])
self.add_multi_coupling(-tc, [( "Bd", 0, 1), ("B", 0, 0), ("N", 1, 0)])
these are the terms that I wish to use, but this is giving the error of "poorly conditioned Lanczos!"
Is this a significant error?
When I use the term given below everything works fine, but the Hermitian conjugate coming is not something that I want.

Code: Select all

self.add_multi_coupling(-tc, [("Bd", 0, 0), ("B",0, 1), ("N", 1, 1)],plus_hc=True)
Is there some other way out?
User avatar
Johannes
Site Admin
Posts: 413
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Hermitian conjugate for coupled system

Post by Johannes »

The first example adds terms \(b^\dagger_{x,0} b_{x,1} n_{x+1,1} + b^\dagger_{x,1} b_{x,0} n_{x+1,0}\), which is not hermitian due to the switch in the n index.

DMRG (or more precisely the Lanczos called by DMRG) always assumes a hermitian Hamiltonian!
The "poorly conditioned Lanczos" is likely an indicator of the non-hermitian H in this case, so yes, this is definitely a serious warning and indicates wrong results!

The second example is by construction hermitian, as it adds
\(b^\dagger_{x,0} b_{x,1} n_{x+1,1} + h.c. = b^\dagger_{x,0} b_{x,1} n_{x+1,1} +n_{x+1,1} b_{x,1} b^\dagger_{x,0} \) using the u=1 on both n operators, hence you can run DMRG without the warning.

It's not quite clear to me: are you aware that the H was not hermitian, but still want to run DMRG?
Post Reply