Page 1 of 1

The EE is different for different initial setup

Posted: 25 Jan 2024, 18:26
by yhang
Hi, all, I am trying to implement a heisenberg chain with alternating bond strength. I am implementing using XXZ model from tenpy. However, when I try to calculate the entanglement entropy(EE), the result is different for different initial setup. Any suggestions here? Thank you so much! Here is my code for setup, basically if I change the setup of my last line shown here, the entanglement entropy will change, which I don't think it should be like this

Del=2.0
L=200
f=open("ssh_interaction_odd_Jz_2_even_L_200_spin_2.txt","w")
for delta in deltas:
print(delta)
N=L*2
J=np.array([1+delta if i%2==0 else 1-delta for i in range(N-1)])
Jz=np.array([(1+delta)*Del if i%2==0 else (1-delta)*Del for i in range(N-1)])
model_params = {
'L': N,
'Jxx': J,
'Jz':Jz,
'hz':0, # just free fermions, but you can generalize...
'bc_MPS':'finite'
}
M = XXZChain(model_params)
product_state = ['up', 'down']*(L-1)+["up","up"]

Re: The EE is different for different initial setup

Posted: 10 Apr 2024, 17:04
by Johannes
This is equivalent to the Su-Schrieffer-Heger (SSH) chain, which has a topolgical phase with edge modes. Given that your filename starts with ssh_, I assume you're familiar with that.

the XXZChan has Sz conservation by default. That means if you fix the initial state to be in a particular Sz charge sector, you will find the ground state in that Sz sector. Depending on how you do that, you can force the edge modes into a wired super-position, which in turn can change the entanglement entropy. My guess is that's what you're seeing.
Try to play with a) different initial states which are in the same charge sector, and b) conserve=None in the model.