# Krylov.m

From Spinach Documentation Wiki

Krylov propagation function. Avoids matrix exponentiation, but can be slow. Should be used when the Liouvillian exponential does not fit in- to the system memory, but the Liouvillian itself does. Syntax:

answer=krylov(spin_system,L,coil,rho,time_step,nsteps,output)

Arguments for Liouville space calculations:

L - the Liouvillian to be used during evolution

rho - the initial state vector or a horizontal stack thereof

output - a string giving the type of evolution that is required

'final' - returns the final state vector or a horizontal stack thereof.

'trajectory' - returns the stack of state vectors giving the trajectory of the system starting from rho with the user-specified number of steps and step length.

'total' - returns the integral of the observable trace from the simulation start to infinity. This option requires the presence of relaxation.

'refocus' - evolves the first vector for zero steps, second vector for one step, third vector for two steps, etc., consistent with the second stage of evolution in the indirect dimension after a refocusing pulse.

'observable' - returns the time dynamics of an observable as a vector (if starting from a single ini- tial state) or a matrix (if starting from a stack of initial states).

'multichannel' - returns the time dynamics of several observables as rows of a matrix. Note that destination state screening may be less efficient when there are multiple destinations to screen against.

coil - the detection state, used when 'observable' is specified as the output option. If 'multichannel' is selected, the coil should contain multiple columns corresponding to individual observable vectors.

This function does not support Hilber space formalisms.