roadmap.m

From Spinach Documentation Wiki
Jump to: navigation, search

Runs a simulation of a user-specified pulse sequence for each orientation found in the user-specified grid and returns the corresponding angles, integration weights, tessellation triangles and sequence results (as a cell array of whatever it is that the pulse sequence returns).

Syntax

    [alphas,betas,gammas,weights,triangles,fid]=...
       roadmap(spin_system,pulse_sequence,parameters,assumptions)

Arguments

 pulse_sequence       -  pulse sequence function handle. See the
                         experiments directory for the list of
                         pulse sequences that ship with Spinach.
 
 parameters.spins     -  a cell array giving the spins that the
                         pulse sequence works on, in the order
                         of channels, e.g. {'1H','13C'}

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

 parameters.grid      - powder averaging grid

 parameters.rframes   - rotating frame specification, e.g.
                        {{'13C',2},{'14N,3}} requests second
                        order rotating frame transformation
                        with respect to carbon-13 and third
                        order rotating frame transformation
                        with respect to nitrogen-14. When
                        this option is used, the assumptions
                        on the respective spins should be
                        laboratory frame.

 parameters.needs   - a cell array of strings specifying additional
                      information required by the sequence:

                      'zeeman_op' - Zeeman part of the Hamiltonian
                      in the laboratory frame, to be placed into
                      parameters.hseeman and sent to pulse sequence

                      'aniso_eq' - thermal equilibrium is recomputed 
                      using the full anisotropic Hamiltonian at the
                      current orientation, and sent to the pulse 
                      sequence in parameters.rho0 subfield

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

   assumptions     -  context-specific assumptions ('nmr', 'epr',
                      'labframe', etc.) - see the pulse sequence
                      header for information on this setting.

Outputs

           alphas  -  an array of alpha Euler angles from the 
                      spherical grid

            betas  -  an array of beta Euler angles from the 
                      spherical grid

           gammas  -  an array of gamma Euler angles from the 
                      spherical grid

          weights  -  an array of summation weights appropri-
                      ate for the corresponding points of the
                      spherical grid

           answer  -  a cell array of whatever it is that the
                      pulse sequence function returns at each
                      point in the spherical grid

Examples

This context is useful whenever the orientational ditribution of some property needs to be computed. A good example is:

spin_chemistry/singlet_yield_anisotropy_2.m - singlet yield anisotropy calculation for a model radical pair.

Notes

  1. Arbitrary order rotating frame transformation is supported, including infinite order. See the header of rotframe.m for further information.
  2. The function supports parallel processing via Matlab's Distributed Computing Toolbox - different system orientations are evaluated on different labs.

See also

crystal.m, liquid.m, powder.m, singlerot.m, doublerot.m, imaging.m, gridfree.m, floquet.m


Version 2.2, authors: Ilya Kuprov