Difference between revisions of "Crystal.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Arguments)
Line 1: Line 1:
{{DISPLAYTITLE:crystal.m}}
+
{{DISPLAYTITLE:crystal.m}} __NOTOC__
 
Static single crystal simulation context. This function positions the spin system at a particular angle in the laboratory frame of reference, generates Hamiltonian, relaxation superoperator, kinetics superoperator, applies the necessary offsets and rotating frame transformations, updates the parameter set, and passes all of that to the pulse sequence.
 
Static single crystal simulation context. This function positions the spin system at a particular angle in the laboratory frame of reference, generates Hamiltonian, relaxation superoperator, kinetics superoperator, applies the necessary offsets and rotating frame transformations, updates the parameter set, and passes all of that to the pulse sequence.
  
Line 12: Line 12:
 
==Arguments==
 
==Arguments==
  
   @pulse_sequence     - pulse sequence function handle
+
   pulse_sequence     - pulse sequence function handle
 
   
 
   
 
   parameters.spins    - a cell array giving the spins that  
 
   parameters.spins    - a cell array giving the spins that  
Line 37: Line 37:
 
                         laboratory frame.
 
                         laboratory frame.
 
   
 
   
   parameters.needs   - a cell array of strings specifying additional
+
   parameters.needs     - a cell array of strings specifying additional
                      information required by the sequence:
+
                        information required by the sequence:
 
   
 
   
                      'zeeman_op' - Zeeman part of the Hamiltonian
+
                          'zeeman_op' - Zeeman part of the Hamiltonian
                      in the laboratory frame, to be placed into
+
                          in the laboratory frame, to be placed into
                      parameters.hseeman and sent to pulse sequence
+
                          parameters.hzeeman and sent to pulse sequence
 
   
 
   
                      'aniso_eq' - thermal equilibrium is recomputed  
+
                          'aniso_eq' - thermal equilibrium is recomputed  
                      using the full anisotropic Hamiltonian at the
+
                          using the full anisotropic Hamiltonian at the
                      current orientation, and sent to the pulse  
+
                          current orientation, and sent to the pulse  
                      sequence in parameters.rho0 subfield
+
                          sequence in parameters.rho0 subfield
 
    
 
    
 
   parameters.*        - additional subfields may be required
 
   parameters.*        - additional subfields may be required
Line 66: Line 66:
 
                           dynamics subspace
 
                           dynamics subspace
  
==Examples==
+
==Notes==
The following example files in the Spinach example set make use of this context function:
+
Arbitrary order rotating frame transformation is supported, including infinite order. See [[rotframe.m]] for further information.
  
'''dnp_solids/cross_effect_freq_scan_1,2,3.m''' - cross effect DNP with microwave frequency scan in three different systems
+
==See also==
 
+
[[Kernel contexts]]
'''dnp_solids/solid_effect_freq_scan_1.m''' - solid effect DNP with microwave frequency scan
 
 
 
'''esr_solids/eseem_methyl_crystal.m''' - single crystal ESEEM, methyl radical
 
 
 
'''esr_solids/eseem_phenyl_crystal.m''' - single crystal ESEEM, phenyl radical
 
  
'''esr_solids/eseem_nitroxide_crystal.m''' - single crystal ESEEM, nitroxide radical
+
[[Built-in_experiments#Solid_state_NMR_experiments|Solid state NMR experiments]]
  
'''nmr_solids/cp_crystal_static_1,2,3.m''' - NMR cross-polarisation in three different systems
+
[[Built-in_experiments#ESR_experiments|ESR experiments]]
  
==Notes==
+
[[Built-in_experiments#DNP_experiments|DNP experiments]]
Arbitrary order rotating frame transformation is supported, including infinite order. See [[rotframe.m]] for further information.
 
 
 
==See also==
 
[[powder.m]], [[liquid.m]], [[roadmap.m]], [[singlerot.m]], [[doublerot.m]], [[imaging.m]], [[gridfree.m]], [[floquet.m]]
 
  
  
''Version 2.1, authors: [[Ilya Kuprov]]''
+
''Version 2.8, authors: [[Ilya Kuprov]]

Revision as of 14:29, 29 July 2023

Static single crystal simulation context. This function positions the spin system at a particular angle in the laboratory frame of reference, generates Hamiltonian, relaxation superoperator, kinetics superoperator, applies the necessary offsets and rotating frame transformations, updates the parameter set, and passes all of that to the pulse sequence.

Syntax

    answer=crystal(spin_system,@pulse_sequence,parameters,assumptions)

The pulse sequence should have the following input syntax:

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

Arguments

  pulse_sequence      - pulse sequence function handle

  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.

 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.hzeeman 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         - a character string setting the simulation 
                        assumptions, e.g. 'nmr' - see assume.m
                        for further details.

Outputs

This function returns whatever the pulse sequence returns. 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

Notes

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

See also

Kernel contexts

Solid state NMR experiments

ESR experiments

DNP experiments


Version 2.8, authors: Ilya Kuprov