Left eigenvectors for neon hermitian dmrg

Obtaining the correct left eigenvector of a non-Hermitian Hamiltonian with DMRG

Hi everyone,

I am trying to compute the biorthogonal entanglement entropy of a non-Hermitian transverse Ising chain using ITensors.jl.

The Hamiltonian is

H = -4J \sum_j S_j^x S_{j+1}^x +2h \sum_j S_j^z + 2 i h \gamma \sum_j S_j^y

with periodic boundary conditions.

My goal is to obtain the right and left ground states satisfying

H |R\rangle = E |R\rangle,

and

H^\dagger |L\rangle = E^* |L\rangle.

I would then like to construct the biorthogonal reduced density matrix

\rho_A^{RL} =========== \frac{\mathrm{Tr}_B\left(|R\rangle\langle L|\right)} {\langle L|R\rangle}.

Exact diagonalization benchmark

For a small system (L=4), I constructed the full Hamiltonian matrix and diagonalized both H and H^\dagger.

I matched eigenstates by pairing an eigenvalue E of H with the eigenvalue E^* of H^\dagger.

For the ground state I obtain

ER = -4.89897948556634
EL = -4.898979485566344

EL ≈ conj(ER)

The corresponding left and right eigenvectors are clearly different:

|<L|R>| = 0.2650367826050708

and

||L-R|| = 1.2124052271373045

which is the expected non-Hermitian behavior.

DMRG calculation

I then performed

ER, psiR = dmrg(
    H,
    psi0R;
    ishermitian=false
)

EL, psiL = dmrg(
    dag(H),
    psi0L;
    ishermitian=false
)

The right DMRG state matches the ED right ground state with overlap 1.

However, the left DMRG state appears to collapse onto the right state:

<R|R> = 1
<L|L> = 1

|<L|R>| = 1

and local observables agree to machine precision:

max |<Sz>R - <Sz>L| ≈ 10^-15

To investigate further, I projected the DMRG states onto the ED eigenbasis.

The DMRG right state has overlap 1 with the ED right ground state.

The DMRG left state also has overlap 1 with the ED right ground state rather than with the ED left ground state.

Therefore, dmrg(dag(H), ...) does not appear to be producing the left eigenvector corresponding to the right ground state.

Questions

  1. Is there a recommended way in ITensors to obtain the eigenvector of H^\dagger corresponding to a specific eigenvalue E^* rather than simply the lowest-energy state of H^\dagger?

  2. Is there a supported excited-state, shift-invert, or penalty-state approach for non-Hermitian MPOs?

  3. Is there an existing biorthogonal or two-sided MPS algorithm available in ITensors for obtaining matching left and right eigenvectors?

  4. If not, what would be the recommended approach for computing the left eigenvector needed for biorthogonal entanglement entropy?

Any suggestions would be greatly appreciated.

dag(H) is not producing H^\dagger, it more or less just applies the complex conjugate. If your Hamiltonian only has real coefficients then of course DMRG is going to find the same state. I believe to get H^\dagger would require swapprime(dag(H), 0 => 1), where the swapprime is essentially the transpose.

However, for sanity I prefer to just separately construct the MPO for H^\dagger, I’ve had no trouble computing the left and right eigenvectors with this approach. Note that for certain Hamiltonians (I have no idea if this is one of them), the right (or left) eigenvector can be much easier to represent as an MPS than the other.

Thank you for your reply, calculating the MPO for H^\dagger separately and \psi_L did work.
I now want to compute the biorthogonal entanglement entropy

S_{RL} = -\mathrm{Tr} \left( \rho_A^{RL} \log \rho_A^{RL} \right)

where

\rho_A^{RL} = \frac{\mathrm{Tr}_B(|R\rangle\langle L|)} {\langle L|R\rangle}

For small systems (L=4), I explicitly construct \rho_A^{RL}, diagonalize it, and obtain results that agree with ED. However, this requires reconstructing the full density matrix and therefore scales exponentially with system size.

I tried constructing a bond-space object by independently canonicalizing \psi_R and \psi_L and contracting physical indices up to the bipartition, but its spectrum does not match the spectrum of \rho_A^{RL}.

Is there a standard ITensor workflow to efficiently compute the spectrum of \rho_A^{RL} (or equivalently S_{RL}) from a pair of MPS (\psi_R,\psi_L) without reconstructing the full Hilbert-space density matrix?

In particular, is a biorthogonal canonical form of the two MPS required?
My eventual goal is to reach system sizes of order L ≈ 32–48.

Forgive me for posting a ChatGPT link, but on first glance I don’t see anything wrong with this approach

Note that the matrices G_A and G_B are just the partial inner products and can be calculated efficiently by copying and modifying the code for inner(R, L).