salt
Introduced in 0.99
Synopsis

Calculation of powder and single-crystal ENDOR spectra.

salt(Sys,Exp)
salt(Sys,Exp,Opt)
spec = salt(...)
[rf,spec] = salt(...)
[rf,spec,trans] = salt(...)
Description

This function calculates powder and single-crystal ENDOR spectra. Its calling syntax is equal to that of pepper, many of its options are equal to those of endorfrq, which is used by salt to compute line positions and amplitudes.

There are up to three output arguments

The three input arguments to the function are
SysSpin system specification structure
ExpExperimental parameters structure
OptSimulation options structure

Sys is a spin system specification structure, as described in a separate chapter. Fields expected in Sys include all needed for the construction of a Hamiltonian and the ENDOR line width parameter lwEndor. If lwEndor is not given, it is assumed to be zero, and stick spectra are returned. The field HStrain is included in excitation window computations (see Exp.ExciteWidth).

Exp contains experimental parameters such as the microwave frequency, the magnetic field range and temperature. Here is a full list of its fields.
Range 1x2 vector
Lower and upper limit of the rf frequency sweeping range [rfmin rfmax]. The values are in MHz.
mwFreq EPR excitation (and detection) frequency in GHz.
Field Magnetic field (in mT) at which the experiment is performed.
nPoints Number of points on the rf frequency axis between Range(1) and Range(2). The default is 1024.
ExciteWidth The excitation width of the microwave in MHz (responsible for orientation selection). The excitation profile is assumed to be Gaussian, and ExciteWidth is its FWHM. The default is infinity. To obtain the full excitation with for a given orientation, ExciteWidth is combined with HStrain from the spin system structure.
Temperature Temperature at which the experiment is performed, in K. If omitted, no temperature effects are computed.
Orientations 3xN array of real
Specifies single-crystal orientations for which the ENDOR spectrum should be computed. Each column of Orientation contains the three Euler rotation angles [phi;theta;chi] of the magnetic field in a molecule fixed frame. If Orientation is empty or not specified, the full powder spectrum is computed.
Nematic scalar (default: not given)
If this field is specified, pepper computes the spectrum of the paramagnetic species aligned in the nematic phase of a liquid crystal. The centres are assumed to be aligned in a way that that the external magnetic field forms an angle θ of about 90° with the z axis of the molecular reference frame, i.e., lies in the xy plane, or very close to it.
The orientational distribution of the centres is described by a simple Gaussian centered at θ = 90°, and Nematic gives the FWHM line width of this distribution, in radians. E.g., Nematic = 30*pi/180 specifies that θ lies in the range 90°+-15° (FWHM). In the xy plane, the orientation of the external magnetic field vector is completely random. Typical values for Nematic are between 10° and 70°.

There are defaults for all fields except Range, mwFreq and Field, which have to be specified when invoking salt.

The structure Opt collects a number of parameters allowing to fully tune speed and accuracy of the simulation to one's needs. Opt need not be specified, in which case default values for the fields are used. The field names and their possible values are
Verbosity Determines how much information salt prints to the screen. If 0, salt is completely silent. 1 logs relevant information, 2 gives more details. Values higher than 2 are only used for development and debugging.
Nuclei vector of integer
List of nuclei to include in the computation. Nuclei is an index vector into the spin system's I selecting those nuclei for which transitions are selected. 1 is the first nucleus, etc.
Transitions mx2 vector of integer
Determines manually the level pairs (transitions) which are used in the spectrum calculation. If given, salt uses them and skips its automatic transition selection scheme. Level pairs are specified in Transitions(k,:) by the level numbers which start with 1 for the lowest-energy level.
Threshold Specifies the threshold for salt's transition selection scheme. Any transition with a relative average amplitude less that Threshold is not included in the calculation. The relative average amplitude of the strongest transition is 1.
nKnots This parameter determines the number of orientations for which spectra are explicitly calculated. nKnots gives the number of knots on quarter of a meridian, i.e. in the interval 0 <= θ <= π/2. The default is 31, a higher value is only necessary if the orientational dependence of the spectrum is very complicated. See also Symmetry.
nSpline Refinement factor for the spline interpolation of the orientational grid. If nSpline = 2, then the data points are doubled, i.e. between each skeleton point one point calculated by interpolation is inserted. The default value is 5, higher values are seldom necessary. If nSpline is smaller than 2, interpolation is skipped, but not the projective interpolation which yields the final spectrum.
Symmetry 'auto' | 'Dinfh' | 'D6h' | 'D4h' | 'Oh' | 'D3d' | 'Th' | 'D2h' | 'C4h' | 'C6h' | 'S6' | 'C2h' | 'Ci'
Determines the symmetry of the Hamiltonian. 'auto' is the default, meaning that salt determines the correct symmetry automatically. With any other setting, salt is forced into using the specified symmetry, even if it is wrong for the spin system. Avoid the auto setting for very large multi-spin systems, since the symmetry determination then takes quite some time. See also symm.

The most important symmetry point groups needed for explicit specification are 'Ci' (fully asymmetric system), 'D2h' (orthorhombic system) and 'Dinfh' (axial system).

LineShape 'Gaussian' (default) or 'Lorentzian'
Specifies the line shape to use for convoluting the ENDOR spectrum.
Output 'summed' (default) or 'separate'
Determines in what form the spectrum is returned. For powder spectra, 'separate' causes salt to return the spectra for different transitions separately in spec(k,:). For single-crystal spectra, 'separate' causes salt to return the spectra for different orientations (see Exp.Orientations) separately. 'summed' means that only one total spectrum is returned.
Enhancement 'on' (default) or 'off'
Switches hyperfine enhancement in the intensity computation on or off. See the same option in endorfrq.
Intensity 'on' (default) or 'off'
Switches all intensity computations on or off. Intensity computations include the quantum-mechanical transition probability, the orientation selectivity and the Boltzmann factor.
ThetaRange 2-element vector (default: not given)
This option allows salt to be used similar to older powder ENDOR spectrum computation programs. There it was possible to include effects of orientation selection and limited excitation bandwidths by manually specifying the range of orientations to be included in the "powder" spectrum. ThetaRange specifies the lower and upper limit of θ (angle between the z axis of the molecular frame and the external static magnetic field) for the orientations in the powder simulation. So if ThetaRange = [10 20]*180/pi, only orientations in the segment with θ between 10° and 20° are included in the spectrum.
This option cannot be used together with Exp.Nematic or Exp.Orientations.
OriPreSelect 0 or 1 (default)
Specifies whether salt uses automatic orientational pre-selection to speed-up simulations. This speed-up is most noticeable for large spin systems and field/frequency settings that lead to single-crystal like spectra.

Algorithm

The approach used in salt is identical to that of pepper, with the obvious exception of the calculation of line intensities and positions, which is done by endorfrq.

Examples

A full simulation of the powder ENDOR spectrum of an S=1/2, I=1 system would be coded as

System = struct('S',1/2,'Nucs','14N','g',[2.25 2.25 2],...
  'A',[44 44 54],'Q',0.84*[1 1 -2],...
  'HStrain',[1 1 1],'lwEndor',.1);
Experiment = struct('Range',[16 33],'Field',308.46,...
  'mwFreq',9.681);
Options = struct('Threshold',1e-4,'nKnots',10,...
  'Verbosity',1);
salt(System,Experiment,Options);
See also

eigfields, endorfrq, pepper, resfields