The obtained ground state contains the following information:
Python: Select all
print(psi_groundstate)
##MPS, L=6, bc='infinite'.
##chi: [64, 46, 46, 64, 46, 46]
##sites: SpinHalfFermionSite('N', 'Sz', 0.000000) BosonSite(6, 'N', 0.000000) SpinHalfFermionSite('N', 'Sz', 0.000000) SpinHalfFermionSite('N', 'Sz', 0.000000) BosonSite(6, 'N', 0.000000) SpinHalfFermionSite('N', 'Sz', 0.000000)
##forms: (0.0, 1.0) (1.0, 0.0) (0.0, 1.0) (0.0, 1.0) (0.0, 1.0) (0.0, 1.0)
##Length of the iMPS = 6
Python: Select all
eta = 0.01
N_fera = psi_groundstate.sites[0].Ntot
E_nfera = npc.expm(1.j * eta * N_fera)
print(N_fera)
###<npc.Array shape=(4, 4) labels=['p', 'p*']
###charge=ChargeInfo([1], ['N_{fa} + 2N_{b} + N_{fb}'])
##+1 | -1
##0 [[0] |0 [[0]
##1 [1] |1 [1]
##3 [2]]|3 [2]]
##4 |4
##[[0. 0. 0. 0.]
## [0. 1. 0. 0.]
## [0. 0. 1. 0.]
## [0. 0. 0. 2.]]
##>
print(E_nfera)
##<npc.Array shape=(4, 4) labels=['p', 'p*']
##charge=ChargeInfo([1], ['N_{fa} + 2N_{b} + N_{fb}'])
##+1 | -1
##0 [[0] |0 [[0]
##1 [1] |1 [1]
##3 [2]]|3 [2]]
##4 |4
##[[ 1. +0.j 0. +0.j 0. +0.j
## 0. +0.j ]
## [ 0. +0.j 0.99995 +0.00999983j -0. +0.j
## 0. +0.j ]
## [ 0. +0.j -0. +0.j 0.99995 +0.00999983j
## 0. +0.j ]
##[ 0. +0.j 0. +0.j 0. +0.j
## 0.99980001+0.01999867j]]
##>
Python: Select all
## First I just checked by applying the operator on one of the sites, say a fermionic site
psi_transformed = psi_groundstate.apply_local_(0,E_nfera,unitary=True,renormalize=True,understood_infinite=True)
print(psi_transformed)
## None
psi_transformed2 = psi_groundstate.apply_local_term([('Ntot',0),('N',1),('Ntot',2),('Ntot',3),('N',4),('Ntot',5)],canonicalize=False)
print(psi_transformed2)
## None
I will be really grateful with any help.