Propagation step function optimised for one-off time evolution events, such as hard pulses or slices of shaped pulses. For large Liouvillians, this function computes the action by a matrix exponential on a vector without computing the matrix exponential.
L - Liouvillian or Hamiltonian to be used for propagation rho - state vector or density matrix to be propagated time_step - length of the time step to take
rho - state vector or density matrix
- The sequence is programmed with a rather peculiar order of algebraic operations. This was carefully optimised to ensure best possible performance under a variety of scenarios (parallelisation, GPUs, large sparse arrays) in Matlab.
- Long-term propagation under a static Liovillian should be handled with evolution.m or krylov.m functions instead.