salt
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 identical 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

Sys is a spin system structure. Fields available 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.
Field Magnetic field (in mT) at which the experiment is performed.
Range Two-element array with lower and upper limit of the rf frequency range [rfmin rfmax]. The values are in MHz. Example: Exp.Range = [1 30].

If omitted, EasySpin tries to determine the frequency range automatically.

CenterSweep Two-element array with center and sweep width of the rf frequency range [rfcenter rfwidth]. The values are in MHz. Example: Exp.CenterSweep = [51 10].

If omitted, EasySpin tries to determine the frequency range automatically.

nPoints Number of points on the rf frequency axis. If not given, EasySpin sets this to 1024.
mwFreq EPR spectrometer frequency in GHz. Only needed for orientation selection, i.e. when ExciteWidth is given.
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.
Exp.Orientations = [0;0;0];              % crystal with z axis aligned with B0
Exp.Orientations = [0;pi/2;0];           % crystal with z axis perpendicular to B0
Exp.Orientations = [0 0 0;0 pi/2 0].';   % two orientations
Exp.Orientations = [];                   % powder
CrystalSymmetry

Specifies the symmetry of the crystal, if single-crystal spectra to be simulated (that is, if Exp.Orientations is specified). The crystal symmetry can be either the number of the space group (between 1 and 230), the symbol of the space group or the symbol of the associated point group.

Exp.CrystalSymmetry = 11;      % space group number (between 1 and 230)
Exp.CrystalSymmetry = 'P21/m'; % space group symbol
Exp.CrystalSymmetry = 'C2h';   % point group, Schönflies notation
Exp.CrystalSymmetry = '2/m';   % point group, Hermann-Mauguin notation

When CrystalSymmetry is given, salt automatically computes the spectra of all symmetry-related sites in the crystal. If CrystalSymmetry is not given, salt assumes space group 1 (P1, point group C1), which has only one site per unit cell.

Ordering scalar (default: zero) or function handle

If a number is given in this field, it specifies the orientational distribution of the paramagnetic molecules in the sample.

If not given or set to zero, the distribution is isotropic, i.e. all orientations occur with the same probability. If it is given, the orientational distribution is non-isotropic and computed according to the formula P(θ) = exp(λ(3 cos2θ - 1)/2), where θ is the angle between the molecular z axis and the static magnetic field, and λ is the number specified in Exp.Ordering.

Typical values for λ are between about -20 and +20. For negative values, the orientational distribution function is maximum at θ = 90°, for positive values at θ = 0° and θ = 180°. The larger the magnitude of λ, the sharper the distributions.

To plot a distribution depending on λ, use

lambda = 5;
theta = linspace(0,pi,1001);
p = exp(lambda*plegendre(2,0,cos(theta)));
plot(theta*180/pi,p);

If Exp.Ordering is a function handle, pepper will use the user-supplied function to obtain the orientational distribution. It calls the function with two vector arguments, phi and theta (in radians). The function must return a vector P containing probabilities for each orientation, that is P(k) is the probability of finding the paramagnetic molecules with orientation specified by phi(k) and theta(k). Here is an example with an anonymous function:

Exp.Ordering = @(phi,theta) gaussian(theta,0,15/180*pi);

Of course, the function can also be written and stored in a separate file, e.g. myori.m. Then use Exp.Ordering = @myori.

When using a custom orientational distribution, make sure that the symmetry used in the simulation corresponds to the symmetry of the distribution. If the distribution is very narrow, increase the number of knots in the options structure.

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

The structure Opt collects a number of parameters allowing to tune speed and accuracy of the simulation. Opt is optional, if it is omitted, pre-set values for the parameters are used. The field names and their possible values are
Method 'matrix' (default) or 'perturb1' or 'perturb2'
Specifies the algorithm used for the ENDOR simulation. By default, matrix diagonalization is used. This is an exact algorithm, but becomes slow when many nuclei are present. In such cases, large speed-ups at the cost of small losses in accuracy are possible using 'perturb1', first-order perturbation theory, or 'perturb2', second-order perturbation theory. Perturbation theory does not work for electron spins with S>1/2.
Opt.Method = 'perturb1';    % first-order perturbation theory
Opt.Method = 'matrix';      % matrix diagonalization
Nuclei List of nuclei to include in the computation. Nuclei is a list of indices selecting those nuclei for which ENDOR peaks should be computed. 1 is the first nucleus, etc. E.g. the following specifies ENDOR of only the protons only in a copper complex.
Sys.Nucs = '63Cu,1H,1H';
Opt.Nuclei = [2 3];      % only protons
By default, all nuclei are included in the simulation.
Verbosity Determines how much information salt prints to the screen. If Opt.Verbosity=0, salt is completely silent. 1 logs relevant information, 2 gives more details.
nKnots [N1] or [N1 N2]
Determines the number of orientations (knots) in a powder simulation for which spectra are calculated.
  • N1 gives the number of orientations between θ=0° and θ=90° for which spectra are explicitely calculated using the physical theory. Common values for N1 are between 10 (10° increments) and 91 (1° increments). The larger the anisotropy of the spectrum and the narrower the linewidth, the higher N1 must be to yield smooth powder spectra.
  • N2 is the refinement factor for the interpolation of the orientational grid. E.g. if N2=4, then between each pair of computed orientations three additional orientations are calculated by spline interpolation. Values higher than 10 are rarely necessary. If N2 is not given, a default value is used.
Opt.nKnots = 91;       % 1° increments, no interpolation
Opt.nKnots = [46 0];   % 2° increments, no interpolation
Opt.nKnots = [31 6];   % 3° increments, 6-fold interpolation (giving 0.5° increments)
Symmetry 'auto' (default), 'Dinfh', 'D2h', 'C2h' or 'Ci'
Determines the symmetry used for the powder simulation. Based on this the set of orientations for which spectra are computed is chosen. 'Dinfh' corresponds to a line from θ=0° to &theta=90° (with φ=0°), 'D2h' to one octant, 'C2h' to two octants, and 'Ci' to one hemisphere (four octants). auto is the default, meaning that pepper determines the correct symmetry automatically from the given spin system. With any other setting, pepper is forced into using the specified symmetry, even if it is incorrect for the spin system. See also symm.
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.
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.
If Opt.Symmetry is not explicitely given, it is set to 'Ci'. Opt.ThetaRange cannot be used together with Exp.Ordering or Exp.Orientations.

The following options are only available for matrix diagonalization (Opt.Method='matrix'), but not for perturbation theory (Opt.Method='perturb1' or 'perturb2').
Transitions Determine 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.
Opt.Transitions = [1 2];      % transition between levels 1 and 2
Opt.Transitions = [1 2; 5 6]; % 2 transitions, 1<->2 and 5<->6
Enhancement 'off' (default) or 'on'
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.
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.
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.

Algorithms

salt computes line positions and intensities for a set of orientations using either matrix diagonalization or perturbation theory.

The matrix diagonalization approach used in salt is identical to that of pepper, with the obvious exception of the calculation of line intensities, which is similar to that used in MAGRES (Keijzers et al, J.Chem.Soc. Faraday Trans. 1 83, 3493-3503, 1984).

First- and second-order perturbation theory is based on expressions by Iwasaki (J.Magn.Reson. 16, 417-423, 1974). It includes pseudosecular contributions. No transition moments are computed, that is, the intensities of all resonances are equal. Currently, the perturbation-theory algorithm is limited to systems with one electron spin S=1/2 (but an arbitrary number of nuclei with arbitrary spins).

For powder simulations, salt uses the same methods as pepper, orientational interpolation and interpolative projection, to construct the powder spectrum.

Examples

A full simulation of the powder ENDOR spectrum of a radical with a proton is

Sys.g = 2;
Sys.Nucs = '1H';
Sys.A = [-2 1 4];
Sys.lwEndor = 0.1;
Exp.Range = [8 18];
Exp.Field = 308.46;
salt(Sys,Exp);
See also

eigfields, endorfrq, pepper, resfields