Hi, I had done calculations as:
----------------------------------------------------------------------------------------------------------------------
step1: calculating E0 and psi0 using dmrg
int N=10;
auto ampo = AutoMPO(sites);
for(int b = 1; b < N; ++b)
{
auto ampo = 0.5,"S+",b,"S-",b+1;
ampo += 0.5,"S-",b,"S+",b+1;
ampo += 3*op(sites,"S-",b)*op(sites,"S+",b+1);
}
auto H = toMPO(ampo);
auto psi_i=randomMPS(sites);
auto [E0,psi0] = dmrg(H,psi_i,sweeps);
-------------------------------------------
output:E0=-7.676342569
-----------------------------------------------------------------------------------------------------------
Step2: forming gates
auto gates = vector<BondGate>();
auto hterm = AutoMPO(sites);
for(int b = 1; b <= N-1; ++b)
{
auto hterm = 3*op(sites,"Sz",b)*op(sites,"Sz",b+1);
hterm += 0.5*op(sites,"S+",b)*op(sites,"S-",b+1);
hterm += 0.5*op(sites,"S-",b)*op(sites,"S+",b+1);
auto g = BondGate(sites,b,b+1,BondGate::tReal,tstep/2.,hterm);
gates.push_back(g);
}
for(int b = N-1; b >= 1; --b)
{
auto hterm = 3*op(sites,"Sz",b)*op(sites,"Sz",b+1);
hterm += 0.5*op(sites,"S+",b)*op(sites,"S-",b+1);
hterm += 0.5*op(sites,"S-",b)*op(sites,"S+",b+1);
auto g = BondGate(sites,b,b+1,BondGate::tReal,tstep/2.,hterm);
gates.push_back(g);
}
----------------------------------------------------------------------------------------------------------------------
step3: following the steps as follows
i. compute the ground state |0>
ii. act on the ground state with Sz1 before doing any time evolution
iii. take the resulting state and time evolve it for a time t
iv. act on that state with Sz4
v. take the overlap with the ground state ket <0| and multiply by exp(i E0 t) where E0 is the ground state energy
calculated <Sz1(t) Sz4(0)> for different time. and get an output as follows
time <Sz1(t) Sz4(0)>
0 (-0.176449,0)
0.02 (-0.336417,0.106671)
0.04 (-0.288506,0.203405)
0.06 (-0.213619,0.28119)
whereas, when did calculations for equal time correlations as
i. compute the ground state |0>
ii.time evolution of |0>=exp(iHt)|0>=|t>
ii. act Sz1 on |t>i.e Sz1|t>.
iii.act Sz4 on Sz1|t> i.e. Sz4Sz1|t>
iv. take the overlap with <t|.
calculated <Sz1(t) Sz4(t)>=<0|exp(-iHt)Sz1exp(iHt)exp(-iHt)Sz4exp(iHt)|0>=<0|exp(-iHt)Sz1Sz4exp(iHt)|0> for an equal time. and get output as,
time <Sz1(t) Sz4(t)>
0 (-0.176449,0)
0.02 (-0.176449,0)
0.04 (-0.176449,0)
0.06 (-0.176449,3.20924e-17)
------------------------------------------------------------------------------------------------------------
So here I am getting equal time correlations same.that is okay and since here spin half chain is considered so correlation is not crossing 0.25 value. But for different time correlations, correlations crossing 0.25 i.e here for time=0.02 result is (-0.336417,0.106671). Whether I am doing right?