np conserved module

How do I use this algorithm? What does that parameter do?
Post Reply
pasa
Posts: 23
Joined: 09 Mar 2020, 12:45

np conserved module

Post by pasa »

Dear community,

I am at the moment working with a system which has a SU(2) invariance. Thus, when finding the ground state via DMRG, I fix the total \(Sz\) charge. So far everything is fine. Once I obtain the ground state, I would like to apply a \(Sx\) (or \(Sy\) ) operator to the ground state and here comes the problem. So, since 'Sx' is not compatible with the symmetry, calling

Code: Select all

 SpinSite(S=0.5, conserve='Sz' ) 

cannot provide this operator, so I instead use

Code: Select all

  SpinSite(S=0.5, conserve=None )
Y = site_op.get_op('Sy')

which looks to return a npc Array with no legcharge information. However, when I try to apply it to the ground state via

Code: Select all

 psi.apply_local_op(L//2, Y) 

or using different approaches, as for example setting the B tensor on that site explicitly doing the np.tensordot, I obtain the following error

Code: Select all

ValueError: incompatible LegCharge

which of course makes sense.

So my question is: what is the way to do this?

Also, I tried adding the 'Sy' operator to the conserving site via

Code: Select all

 site_op= SpinHalfSite( conserve='Sz')
site_op.add_op('Sy', [[0.,1j],[-1j,0.]])
Y = site_op.get_op('Sy')
print(Y) 

however the result "cuts" half of this operator

Code: Select all

  op = npc.Array.from_ndarray(op, [self.leg, self.leg.conj()])
<npc.Array shape=(2, 2) charge=ChargeInfo([1], ['2*Sz']) labels=['p', 'p*']
 +1     | -1     
0 [[ 1] |0 [[ 1] 1 [-1]]|1 [-1]] 2 |2
[[ 0.+0.j 0.+0.j] [-0.-1.j 0.+0.j]]

Thanks!

Last edited by pasa on 14 Feb 2021, 18:16, edited 2 times in total.
User avatar
Johannes
Site Admin
Posts: 413
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: np conserved module

Post by Johannes »

Why do you need the state Sx|psi> in the first place?

As you know, \(S^x=0.5* (S^+ + S^-)\) and thus applying Sx to a state \(S|\psi\rangle\)with fixed Sz will give you a superposition of \(|\phi^\pm\rangle := S^\pm |\psi\rangle\). In other words, \(S^x |\psi\rangle\) does not have a well defined Sz charge, and can hence not be represented as a plain np_conserved tensor (without tricks, at least).
pasa
Posts: 23
Joined: 09 Mar 2020, 12:45

Re: np conserved module

Post by pasa »

Hi Johannes! thanks for the quick answer!

I want to compute a correlation function of the form

\( \langle g.s. | \sigma_jx(t)\sigma_0x(0)|g.s. \rangle \)

for a system that conserves SU(2) (or a U(1) generated by Sz). I managed to obtain it for the Transverse Field Ising Model (TFIM). However, I am having now some incompatibility issues with LegCharges etc. if I try to keep using conservation laws in the simulation: I am first running DMRG to find the ground state (psi) and then, I would like to use

Code: Select all

psi.apply_local_op(L//2,'Sy')

as an initial state for TEBD. The only way I managed to run the code is by setting

Code: Select all

'conserve':None

for both DMRG and TEBD evolution. Is that the best/correct one can do or is there a way to keep using

Code: Select all

'conserve':'Sz'

in DMRG? For the problem I am studying that helps to speed up the simulations.

Thanks!

User avatar
Johannes
Site Admin
Posts: 413
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: np conserved module

Post by Johannes »

If your model is conserving Sz, you should also make sure you conserve Sz during the time evolution for speedup.
In this case, the expectation value splits up into
\[ \langle g.s. | \sigma_j^x(t)\sigma_0^x(0)|g.s. \rangle = \langle g.s. | \sigma_j^+(t)\sigma_0^-(0)|g.s. \rangle + \langle g.s. | \sigma_j^-(t)\sigma_0^+(0)|g.s. \rangle \]

In general, you should do two time evolutions then, one with \(\sigma^+_0 |g.s.\rangle\) and one with \(\sigma^-_0 |g.s.\rangle\). You might be able to argue with particle-hole symmetry, that they are the same, however, e.g. if you have a usual Heisenberg S.S interaction at "half filling" (total Sz=0) without external magnetic fields.
Post Reply