Difference between revisions of "Step.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Created page with "Propagation step function. Uses Krylov propagation and sparse exponenti- ation where appropriate. Syntax: rho=step(spin_system,L,rho,time_step) Arguments:...")
 
Line 1: Line 1:
Propagation step function. Uses Krylov propagation and sparse exponenti-
+
{{DISPLAYTITLE:step.m}}
ation where appropriate. Syntax:
+
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.
  
                  rho=step(spin_system,L,rho,time_step)
+
==Syntax==
  
Arguments:
+
    rho=step(spin_system,L,rho,time_step)
 +
 
 +
==Arguments==
  
 
       L          -  Liouvillian or Hamiltonian to be used for propagation
 
       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
 +
 +
==Outputs==
 +
 +
    rho        -  state vector or density matrix
 +
 +
==Examples==
 +
See the source code of [[shaped_pulse_xy.m]] and most NMR pulse sequences ([[cosy.m]], [[hsqc.m]], and others) for examples of this function being used.
 +
 +
==Notes==
 +
#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 statis Liovillian should be handled with [[evolution.m]] or [[krylov.m]] functions instead.
 +
 +
==See also==
 +
[[evolution.m]], [[krylov.m]], [[shaped_pulse_xy.m]], [[shaped_pulse_af.m]]
  
      rho        -  state vector or density matrix to be propagated
 
  
      time_step  -  length of the time step to take
+
''Version 2.2, authors: [[Ilya Kuprov]], [[Luke Edwards]]''

Revision as of 14:56, 4 July 2018

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.

Syntax

    rho=step(spin_system,L,rho,time_step)

Arguments

     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

Outputs

    rho        -  state vector or density matrix

Examples

See the source code of shaped_pulse_xy.m and most NMR pulse sequences (cosy.m, hsqc.m, and others) for examples of this function being used.

Notes

  1. 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.
  2. Long-term propagation under a statis Liovillian should be handled with evolution.m or krylov.m functions instead.

See also

evolution.m, krylov.m, shaped_pulse_xy.m, shaped_pulse_af.m


Version 2.2, authors: Ilya Kuprov, Luke Edwards