Evolution.m
Time evolution function. Performs all types of time propagation with automatic trajectory level state space restriction. Syntax:
answer=evolution(spin_system,L,coil,rho,timestep,...
nsteps,output,destination)
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.
destination - (optional) the state to be used for destination state
screening.
Arguments for Hilbert space calculations:
L - Hamiltonian matrix
coil - observable operator (if any)
rho - initial density matrix
timestep - duration of a single time step (seconds)
nsteps - number of steps to take
output - a string giving the type of evolution that is required
'final' - returns the final density matrix.
'trajectory' - returns a cell array of density matrices
giving the trajectory of the system star-
ting from rho with the user-specified num-
ber of steps and step length.
'refocus' - evolves the first matrix for zero steps,
second matrix for one step, third matrix 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.
destination - this argument is ignored.
Calculation of final states and observables in Hilbert space is parallel- ized and tested all the way to 128-core (16 nodes, 8 cores each) configu- rations. Parallelization of the trajectory calculation does not appear to yield any benefits due to large amount of inter-thread communication.
See http://dx.doi.org/10.1063/1.3679656 for further information.