Dynamical Structure Factor of 1D Spin-1 chain

Hi!
I am trying to calculate the dynamical structure factor of 1D spin-1 chain using the following relation:

S^{zz}(k,\omega) = \int dt e^{-i\omega t} \sum_{j} e^{-ikr_j} \langle\psi_0| S^z_j(t)S^z_0|\psi_0\rangle

Here is the way I am approaching to calculate the correlation;

  1. Getting the ground state \psi_0 using DMRG.
  2. Evolving this ground state to some time t.
  3. Applying S^z_j to the ground state \psi_0 to get some \phi_j.
  4. Evolving this \phi to time t.
  5. Applying S^z_j to the time-evolved ground state.
  6. Then taking the inner product: \langle\psi^{\prime}_0(t)\phi_j(t)\rangle.

code snippet;

  for c in 1:1:N
    psi_new = apply_op(psi, "Sz", sites, c)

    for t in 0.0:tau:t_f

      psiv = apply_op(psi, "Sz", sites, 1)
      val = inner(psiv,psi_new)
      push!(corr_val,val)
      println("<Sz_($c)($(t)T) * Sz_($c)(0)> = $val")
      t≈t_f && break

      psi = apply(gates, psi; cutoff)
      psi_new = apply(gates, psi_new; cutoff)
    end
  end

I have verified the ground state obtained from DMRG, it’s correct. But still after Fourier trnasform, I am unable to get the correct DSF spectra(
arXiv:2501.13059
). Am I doing anything wrong in this?

Any suggestion would be really helpful.

Thank you in advance.

Perhaps you are missing the conjugate? One of those times should be “backward”. You also can make it so you don’t have to apply S^z_j twice, but instead measure \langle A|S^z_j|B\rangle so you can obtain all values quickly

There are number of tricks one has to do as well I believe, like linear prediction in [0901.2342] Spectral functions in one-dimensional quantum systems at T>0

See also Artifacts in Dynamical structure factor plots - #2 by miles