Difference between revisions of "Floquet.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Notes)
(Update function See also links and function index membership)
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:floquet.m}}
+
{{DISPLAYTITLE:floquet.m}} __NOTOC__
 
Floquet magic angle spinning context. This function generates Floquet Hamiltonian at a particular orientation, relaxation superoperator, kinetics superoperator, applies the necessary offsets, updates the parameter set, and passes all of that to the pulse sequence, which should be supplied as a handle. Parallel powder averaging is applied.
 
Floquet magic angle spinning context. This function generates Floquet Hamiltonian at a particular orientation, relaxation superoperator, kinetics superoperator, applies the necessary offsets, updates the parameter set, and passes all of that to the pulse sequence, which should be supplied as a handle. Parallel powder averaging is applied.
  
 
==Syntax==
 
==Syntax==
  
    answer=floquet(spin_system,@pulse_sequence,parameters,assumptions)
 
  
==Arguments==
+
    [answer,sph_grid]=floquet(spin_system,pulse_sequence,...
 +
                                parameters,assumptions)
  
     @pulse_sequence    - pulse sequence function handle
+
==Parameters==
 +
 
 +
  pulse_sequence     - pulse sequence function handle
 
   
 
   
    parameters.rate    - spinning rate in Hz
+
  parameters.rate    - spinning rate in Hz. Positive numbers
 +
                        for JEOL, negative for Varian and Bruker
 +
                        due to different rotation directions.
 
   
 
   
    parameters.axis    - spinning axis, given as a normalized
+
  parameters.axis    - spinning axis, given as a normalized
                          3-element vector
+
                        3-element vector
 
   
 
   
    parameters.spins    - a cell array giving the spins that  
+
  parameters.spins    - a cell array giving the spins that  
                          the pulse sequence involves, e.g.  
+
                        the pulse sequence involves, e.g.  
                          {'1H','13C'}
+
                        {'1H','13C'}
 
   
 
   
    parameters.offset  - a cell array giving transmitter off-
+
  parameters.offset  - a cell array giving transmitter off-
                          sets in Hz on each of the spins listed
+
                        sets in Hz on each of the spins listed
                          in parameters.spins array
+
                        in parameters.spins array
 
   
 
   
    parameters.max_rank - maximum harmonic rank to retain in
+
  parameters.max_rank - maximum harmonic rank to retain in
                          the solution (increase till conver-
+
                        the solution (increase till conver-
                          gence is achieved, approximately
+
                        gence is achieved, approximately
                          equal to the number of spinning si-
+
                        equal to the number of spinning si-
                          debands in the spectrum)
+
                        debands in the spectrum)
 
   
 
   
    parameters.grid    - spherical grid file name. See grids
+
  parameters.grid    - [[Appendix I: powder grids|powder averaging grid]]
                          directory in the kernel.
+
 +
  parameters.sum_up  - when set to 1 (default), returns the
 +
                        powder average. When set to 0, returns
 +
                        individual answers for each point in  
 +
                        the powder as a cell array.
 +
 +
  parameters.*        - additional subfields may be required by your
 +
                        pulse sequence - check its documentation page
  
Additional subfields may be required by the pulse sequence. The parameters structure is passed to the pulse sequence with the following additional parameters set:
+
The parameters structure is passed to the pulse sequence with the following additional parameters set:
  
    parameters.spc_dim  - matrix dimension for the spatial
+
  parameters.spc_dim  - matrix dimension for the spatial
                          dynamics subspace
+
                        dynamics subspace
 
   
 
   
    parameters.spn_dim  - matrix dimension for the spin  
+
  parameters.spn_dim  - matrix dimension for the spin  
                          dynamics subspace
+
                        dynamics subspace
  
 
==Outputs==
 
==Outputs==
This function returns the powder average of whatever it is that the pulse sequence returns.
 
 
==Examples==
 
The following example files in the Spinach example set make use of this context function:
 
 
'''nmr_solids/mas_powder_trp_floquet.m''' - large-scale simulation of tryptophan 13C MAS NMR
 
 
'''nmr_solids/mas_powder_gly_floquet.m''' - glycine 13C MAS NMR spectrum
 
  
'''nmr_solids/mas_powder_suc_floquet.m''' - large-scale simulation of sucrose 13C MAS NMR
+
answer  - powder average, or a cell array, of whatever the pulse sequence returns
  
'''nmr_solids/mas_powder_ala_floquet.m''' - alanine 13C MAS NMR spectrum
+
sph_grid - spherical grid used in the calculation
 
 
'''nmr_solids/mas_powder_nqi_floquet.m''' - deuterium NQI MAS NMR, no second-order rotating frame corrections
 
 
 
'''nmr_solids/mas_powder_dip_floquet.m''' - MAS NMR on a pair of dipole coupled spins
 
 
 
'''nmr_solids/mas_powder_csa_floquet.m''' - MAS NMR on a simple system with a CSA
 
  
 
==Notes==
 
==Notes==
#The choice of the rank depends on the spinning rate (the slower the spinning, the greater ranks are required). The rank is approximately equal to the number of spinning sidebands.
+
# The choice of the rank depends on the spinning rate (the slower the spinning, the greater ranks are required). The rank should be set approximately equal to the expected number of spinning sidebands. Increase till the answer stops changing.
#The state projector assumes a powder - single crystal MAS is not supported, use [[singlerot.m]] instead.
+
# The state projector assumes a powder - single crystal MAS is not supported, use [[singlerot.m]] instead.
#Terturbative corrections to the rotating frame transformation are not supported - use [[singlerot.m]] instead.
+
# Perturbative corrections to the rotating frame transformation are not supported - use [[singlerot.m]] instead.
 +
# The function supports parallel processing via Matlab's Distributed Computing Toolbox - different system orientations are evaluated on different labs.
  
 
==See also==
 
==See also==
[[powder.m]], [[liquid.m]], [[roadmap.m]], [[singlerot.m]], [[doublerot.m]], [[imaging.m]], [[gridfree.m]], [[crystal.m]]
+
[[singlerot.m]], [[crystal.m]], [[doublerot.m]], [[gridfree.m]], [[imaging.m]], [[liquid.m]], [[meshflow.m]], [[powder.m]], [[Kernel contexts]], [[Built-in_experiments]]
 
 
  
''Version 2.2, authors: [[Ilya Kuprov]], [[Luke Edwards]]''
+
''Version 2.8, authors: [[Ilya Kuprov]], [[Luke Edwards]]''

Latest revision as of 19:36, 6 June 2026

Floquet magic angle spinning context. This function generates Floquet Hamiltonian at a particular orientation, relaxation superoperator, kinetics superoperator, applies the necessary offsets, updates the parameter set, and passes all of that to the pulse sequence, which should be supplied as a handle. Parallel powder averaging is applied.

Syntax

    [answer,sph_grid]=floquet(spin_system,pulse_sequence,...
                                parameters,assumptions)

Parameters

  pulse_sequence      - pulse sequence function handle

  parameters.rate     - spinning rate in Hz. Positive numbers
                        for JEOL, negative for Varian and Bruker
                        due to different rotation directions.

  parameters.axis     - spinning axis, given as a normalized
                        3-element vector

  parameters.spins    - a cell array giving the spins that 
                        the pulse sequence involves, e.g. 
                        {'1H','13C'}

  parameters.offset   - a cell array giving transmitter off-
                        sets in Hz on each of the spins listed
                        in parameters.spins array

  parameters.max_rank - maximum harmonic rank to retain in
                        the solution (increase till conver-
                        gence is achieved, approximately
                        equal to the number of spinning si-
                        debands in the spectrum)

  parameters.grid     - powder averaging grid

  parameters.sum_up   - when set to 1 (default), returns the
                        powder average. When set to 0, returns
                        individual answers for each point in 
                        the powder as a cell array.

  parameters.*        - additional subfields may be required by your
                        pulse sequence - check its documentation page 

The parameters structure is passed to the pulse sequence with the following additional parameters set:

  parameters.spc_dim  - matrix dimension for the spatial
                        dynamics subspace

  parameters.spn_dim  - matrix dimension for the spin 
                        dynamics subspace

Outputs

answer - powder average, or a cell array, of whatever the pulse sequence returns

sph_grid - spherical grid used in the calculation

Notes

  1. The choice of the rank depends on the spinning rate (the slower the spinning, the greater ranks are required). The rank should be set approximately equal to the expected number of spinning sidebands. Increase till the answer stops changing.
  2. The state projector assumes a powder - single crystal MAS is not supported, use singlerot.m instead.
  3. Perturbative corrections to the rotating frame transformation are not supported - use singlerot.m instead.
  4. The function supports parallel processing via Matlab's Distributed Computing Toolbox - different system orientations are evaluated on different labs.

See also

singlerot.m, crystal.m, doublerot.m, gridfree.m, imaging.m, liquid.m, meshflow.m, powder.m, Kernel contexts, Built-in_experiments

Version 2.8, authors: Ilya Kuprov, Luke Edwards