Difference between revisions of "Floquet.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Update function See also links and function index membership)
 
(17 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. 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.rate    - spinning rate in Hz
+
  parameters.spins    - a cell array giving the spins that
 +
                        the pulse sequence involves, e.g.
 +
                        {'1H','13C'}
 
   
 
   
    parameters.axis    - spinning axis, given as a normalized
+
  parameters.offset  - a cell array giving transmitter off-
                          3-element vector
+
                        sets in Hz on each of the spins listed
 +
                        in parameters.spins array
 
   
 
   
    parameters.spins    - a cell array giving the spins that
+
  parameters.max_rank - maximum harmonic rank to retain in
                          the pulse sequence involves, e.g.
+
                        the solution (increase till conver-
                          {'1H','13C'}
+
                        gence is achieved, approximately
 +
                        equal to the number of spinning si-
 +
                        debands in the spectrum)
 
   
 
   
    parameters.offset  - a cell array giving transmitter off-
+
  parameters.grid    - [[Appendix I: powder grids|powder averaging grid]]
                          sets in Hz on each of the spins listed
 
                          in parameters.spins array
 
 
   
 
   
    parameters.max_rank - maximum harmonic rank to retain in
+
  parameters.sum_up  - when set to 1 (default), returns the
                          the solution (increase till conver-
+
                        powder average. When set to 0, returns
                          gence is achieved, approximately
+
                        individual answers for each point in  
                          equal to the number of spinning si-
+
                        the powder as a cell array.
                          debands in the spectrum)
 
 
   
 
   
    parameters.grid    - spherical grid file name. See grids
+
  parameters.*        - additional subfields may be required by your
                          directory in the kernel.
+
                        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
+
answer  - powder average, or a cell array, of whatever the pulse sequence returns
  
'''nmr_solids/mas_powder_gly_floquet.m''' - glycine 13C MAS NMR spectrum
+
sph_grid - spherical grid used in the calculation
 
 
'''nmr_solids/mas_powder_suc_floquet.m''' - large-scale simulation of sucrose 13C MAS NMR
 
 
 
'''nmr_solids/mas_powder_ala_floquet.m''' - alanine 13C MAS NMR spectrum
 
 
 
'''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 appro-
+
# 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.
ximately equal to the number of spinning sidebands.
+
# 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.
+
# Perturbative corrections to the rotating frame transformation are not supported - use [[singlerot.m]] instead.
#Terturbative 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