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())
The best,