# Singlerot.m

Fokker-Planck magic 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=singlerot(spin_system,pulse_sequence,parameters,assumptions)


where pulse sequence is a function handle to one of the pulse sequences located in the experiments directory, assumptions is a string that would be passed to assume.m when the Hamiltonian is built and parameters is a structure with the following subfields:

    parameters.rate     - spinning rate in Hz
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.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.grid     - spherical grid file name. See grids
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.


Additional subfields may be required by the pulse sequence. 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


This function returns the powder average of whatever it is that the pulse sequence returns.

Note: arbitrary order rotating frame transformation is supported, including infinite order. See rotframe.m for further information.