doublerot.m

From Spinach Documentation Wiki
Jump to: navigation, search

Fokker-Planck double angle spinning context. Generates a Liouvillian superoperator and passes it on to the pulse sequence function, which should be supplied as a handle.

Syntax

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

Parameters

    pulse_sequence  - function handle to a pulse sequence, which must have 
                      the following call syntax:

                      answer=pulse_sequence(spin_system,parameters,H,R,K)

                      where parameters is a structure described below, H is
                      the Hamiltonian, R is relaxation superoperator, and K
                      is the kinetics superoperator

    assumptions     - the string that will be passed to assume.m when 
                      the Hamiltonian is built

    parameters.rate_outer - outer rotor spinning rate in Hz

    parameters.rate_inner - inner rotor spinning rate in Hz

    parameters.axis_outer - spinning axis of the outer rotor,
                            given as a normalized 3-element
                            vector

    parameters.axis_inner - spinning axis of the inner rotor,
                            given as a normalized 3-element
                            vector

    parameters.rank_outer - 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) for the
                            outer rotor

    parameters.rank_inner - 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) for the
                            inner rotor

    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

    parameters.grid       - powder averaging grid

    parameters.needs      - a cell array of character strings spe-
                            cifying additional requirements that
                            the sequence has:

                             'iso_eq' - thermal equilibrium state
                             of the isotropic Hamiltonian will be
                             placed into parameters.rho0

    parameters.serial     - if set to true, disables automatic pa-
                            rallelisation

    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. Arbitrary order rotating frame transformation is supported, including infinite order. See rotframe.m for further information.
  2. The state projector assumes a powder - single crystal DOR is not currently supported.
  3. The function supports parallel processing via Matlab's Distributed Computing Toolbox - different system orientations are evaluated on different labs.

See also

assume.m, rotframe.m, crystal.m, floquet.m, gridfree.m, imaging.m, liquid.m, meshflow.m, powder.m, singlerot.m, Kernel contexts, Built-in_experiments

Version 2.8, authors: Ilya Kuprov