How to add Jordan-Wigner strings on the left sites of an operator?

How do I use this algorithm? What does that parameter do?
Post Reply
Ned
Posts: 2
Joined: 31 Aug 2022, 13:29

How to add Jordan-Wigner strings on the left sites of an operator?

Post by Ned »

Dear Johannes,

I have got a question about constructing wave packets in Tenpy.
I want to study the time evolution of the Fermi Hubbard model in the paper :"https://journals.aps.org/prl/supplement ... er4_sm.pdf"

and construct the following operator:
\[h_{\sigma}^{\dagger} = \sum_{j} \alpha_{j} \exp({-ik_0 j}) c_{j} \]

you can see the formula in the paper (Equation S1)
I want to make the MPO form of this operator and then apply it to the ground state which is an MPS.
I used the "add_onsite" function but it didn't work and I get the following Error:
"ValueError: can't add onsite operator which needs a Jordan-Wigner string!

I tried to use op_string='JW' but it didn't work too.

This is part of the code I am trying to build the Wave packet

Code: Select all

sigmaX= 0.05 ; Kf = 0.0 ;  J0= 5  ;  K0 =0.0 
Coe_list= [np.exp((-(i -J0)**2)/(2.*sigmaX**2))* np.exp(1j*K0*i)  for i in range(L)]

class WavePacket(CouplingMPOModel):
	
    def __init__(self, WavePacket_params, model_params):
        
        site = SpinHalfFermionSite(cons_N="N", cons_Sz="Sz")
        lat = Chain(L, site, bc=bc, bc_MPS=bc_MPS)
        
        #  initialize CouplingModel
        CouplingModel.__init__(self, lat)
                
        #  add terms of the h operator:
            
            self.add_onsite(Coe_list, u, 'Cu')
          
        MPOModel.__init__(self, lat, self.calc_H_MPO())
How can I add the Jordan Wigner string on the left sites of the Cu operator?

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

Re: How to add Jordan-Wigner strings on the left sites of an operator?

Post by Johannes »

Post Reply