Crystal.m

From Spinach Documentation Wiki
Jump to: navigation, search

Single-crystal interface to pulse sequences. Generates a Liouvillian superoperator and passes it on to the pulse sequence function, which should be supplied as a handle. Syntax:

    answer=crystal(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.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.orientation - a row vector of the three Euler angles
                            (in radians) giving the orientation of
                             the system relative to the input orien-
                             tation.
    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.

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 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.