Difference between revisions of "Shaped pulse af.m"

From Spinach Documentation Wiki
Jump to: navigation, search
Line 1: Line 1:
−
Shaped pulse in amplitude-frequency coordinates using Fokker-Planck
+
{{DISPLAYTITLE:shaped_pulse_af.m}}
−
formalism. Syntax:
+
Shaped pulse in amplitude-frequency coordinates using Fokker-Planck formalism (Eqn. 33 in http://dx.doi.org/10.1016/j.jmr.2016.07.005). The pulse is assumed to be piecewise-constant and should be supplied with sufficiently fine time discretization to properly reproduce the waveform.
  
−
  rho=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,...
+
==Syntax==
−
                  rf_amp_list,rf_dur_list,rf_phi,max_rank,method)
 
  
−
Parameters:
+
    rho=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,...
 +
                        rf_amp_list,rf_dur_list,rf_phi,max_rank,method)
 +
 
 +
==Arguments==
  
 
         L0          - drift Liouvillian that continues
 
         L0          - drift Liouvillian that continues
 
                       running in the background
 
                       running in the background
−
 
+
 
         Lx          - X projection of the RF operator
 
         Lx          - X projection of the RF operator
−
 
+
 
         Ly          - Y projection of the RF operator
 
         Ly          - Y projection of the RF operator
−
 
+
−
         rho        - initial condition
+
         rho        - initial state vector or a stack
−
 
+
                      thereof
 +
 
         rf_frq_list - a vector of RF frequencies at each
 
         rf_frq_list - a vector of RF frequencies at each
 
                       time slice, Hz
 
                       time slice, Hz
−
 
+
 
         rf_amp_list - a vector of RF amplitudes at each
 
         rf_amp_list - a vector of RF amplitudes at each
 
                       time slice, rad/s
 
                       time slice, rad/s
−
 
+
 
         rf_dur_list - a vector of time slice durations,
 
         rf_dur_list - a vector of time slice durations,
 
                       in seconds
 
                       in seconds
−
 
+
−
         rf_phi      - RF phase at time zero
+
         rf_phi      - RF phase of the first pulse slice
−
 
+
 
         max_rank    - maximum rank of the Fokker-Planck
 
         max_rank    - maximum rank of the Fokker-Planck
−
                       theory
+
                       theory, increase until the answer
−
 
+
                      stops changing, 2 is a good start
 +
 
         method      - propagation method, 'expv' for Krylov
 
         method      - propagation method, 'expv' for Krylov
 
                       propagation, 'expm' for exponential
 
                       propagation, 'expm' for exponential
Line 35: Line 39:
 
                       evolution function
 
                       evolution function
  
−
'''Warning:''' the pulse frequency is specified relative to the origin of the current rotating frame. If you have specified any offsets (e.g. via parameters.offset during a call to a context), make sure to modify your pulse frequency accordingly.
+
==Outputs==
 +
 
 +
        rho        - final state vector
 +
 +
        P          - effective pulse propagator, only
 +
                      available for the 'expm' method
 +
 
 +
==Examples==
 +
An example of a chirped inversion pulse pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):
 +
 
 +
[[File:chirp_inversion.png]]
 +
 
 +
Note that only 100 time slices are required in the frequency-amplitude representation: considerably fewer than would be needed in the Cartesian representation used by [[shaped_pulse_xy.m]] function.
 +
 
 +
==Notes==
 +
Of the three propagation methods, 'expv' is recommended because it runs Krylov propagation that avoids explicit matrix exponentiation. The 'expm' option forces the rather inefficient sparse matrix exponentiation path and should only be used whenthe effective propagator is required. In very anomalous cases (long pulses, large state vector stacks, very large state spaces), the 'evolution' option might become necessary.
 +
 
 +
==See also==
 +
[[shaped_pulse_xy.m]], [[read_wave.m]], [[vg_pulse.m]], [[pulse_shape.m]], [[chirp_pulse_af.m]], [[chirp_pulse_xy.m]]
 +
 
 +
 
 +
''Version 2.2, authors: [[Ilya Kuprov]]''

Revision as of 15:23, 15 August 2018

Shaped pulse in amplitude-frequency coordinates using Fokker-Planck formalism (Eqn. 33 in http://dx.doi.org/10.1016/j.jmr.2016.07.005). The pulse is assumed to be piecewise-constant and should be supplied with sufficiently fine time discretization to properly reproduce the waveform.

Syntax

    rho=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,...
                        rf_amp_list,rf_dur_list,rf_phi,max_rank,method)

Arguments

       L0          - drift Liouvillian that continues
                     running in the background

       Lx          - X projection of the RF operator

       Ly          - Y projection of the RF operator

       rho         - initial state vector or a stack 
                     thereof

       rf_frq_list - a vector of RF frequencies at each
                     time slice, Hz

       rf_amp_list - a vector of RF amplitudes at each
                     time slice, rad/s

       rf_dur_list - a vector of time slice durations,
                     in seconds

       rf_phi      - RF phase of the first pulse slice

       max_rank    - maximum rank of the Fokker-Planck
                     theory, increase until the answer 
                     stops changing, 2 is a good start

       method      - propagation method, 'expv' for Krylov
                     propagation, 'expm' for exponential
                     propagation, 'evolution' for Spinach
                     evolution function

Outputs

       rho         - final state vector

       P           - effective pulse propagator, only 
                     available for the 'expm' method

Examples

An example of a chirped inversion pulse pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):

Chirp inversion.png

Note that only 100 time slices are required in the frequency-amplitude representation: considerably fewer than would be needed in the Cartesian representation used by shaped_pulse_xy.m function.

Notes

Of the three propagation methods, 'expv' is recommended because it runs Krylov propagation that avoids explicit matrix exponentiation. The 'expm' option forces the rather inefficient sparse matrix exponentiation path and should only be used whenthe effective propagator is required. In very anomalous cases (long pulses, large state vector stacks, very large state spaces), the 'evolution' option might become necessary.

See also

shaped_pulse_xy.m, read_wave.m, vg_pulse.m, pulse_shape.m, chirp_pulse_af.m, chirp_pulse_xy.m


Version 2.2, authors: Ilya Kuprov