Defining operator_t and operator_t0 in SpectralSimulation

How do I use this algorithm? What does that parameter do?
Post Reply
RasmusMadsen
Posts: 1
Joined: 14 Aug 2025, 11:24

Defining operator_t and operator_t0 in SpectralSimulation

Post by RasmusMadsen »

Hi!

I am trying to calculate the spectral functions \(S^{xx}(k,\omega)\),\( S^{yy}(k,\omega)\) and \(S^{zz}(k,\omega)\) for a spin 1 AFM chain with anisotropy. I am having trouble with how to use operator_t and operator_t0 together. I have tried to give a list of operators to both, but it doesnt seem quite right the result. Is this the correct way if i want the aforementioned spectral functions? Does TenPy interpret that the Sx in both lists belong together?

Python: Select all

#!/usr/bin/env -S python -m tenpy
# This can only run if there is an output `results/a_minimal_DMRG.h5`

simulation_class: SpectralSimulation

ground_state_filename: dmrg_chi_0100_L_32.0_D_0.0.h5

directory: results
output_filename_params:
    prefix: spectral_L_32
    parts:
        algorithm_params.trunc_params.chi_max: 'chi_{0:04d}'

operator_t0:
    opname: [Sx,Sy,Sz] # can also be a list
    #lat_idx: [1]  #(or a 2d list for multi operators)
    # # mps_idx:
    key_name: S
operator_t: [Sx,Sy,Sz]



final_time: 5

algorithm_class: TEBDEngine
algorithm_params:
    trunc_params:
        chi_max: 120
    dt : 0.1
    N_steps : 2  # measurements every dt*N_steps

spectral_function_params:
    linear_predict: True
    # rel_prediction_time: 1
    # rel_num_points: 0.3
    # truncation_mode: renormalize
    # rel_split: 0.1
    gaussian_window: True
    #sigma: 0.4
Post Reply