This tutorial explains how to simulate solid-state ENDOR spectra of powders, frozen solutions or single crystals using EasySpin's ENDOR simulation function salt. You should be familiar with the simulation solid-state cw EPR spectra using pepper (see the corresponding tutorial).
This tutorial contains the following sections:
saltSolid-state ENDOR spectra are computed by the EasySpin function salt. It can be called with two or three parameters. For example,
salt(Sys,Exp); % plots the spectrum [frq,spec] = salt(Sys,Exp); % returns the frequency axis and the spectrum [frq,spec] = salt(Sys,Exp,Opt); % provide additional simulation options in Opt
The first argument Sys tells salt all about the
spin system, and the second argument Exp
gives the experimental parameters. The third, optional, argument Opt
contains settings for the simulation algorithm.
The outputs frq and spec are arrays containing the frequency values (in MHz)
and the spectrum, respectively. If no output is requested, salt plots the spectrum.
Setting up a simulation and running it takes only a few lines of code. A simple example is
Sys.g = 2; Sys.Nucs = '1H'; Sys.A = [-1 2]*3+1; Sys.lwEndor = 0.1; Exp.Field = 350.1; Exp.Range = [0 30]; salt(Sys,Exp);
This simulates and plots the powder 1H ENDOR spectrum of a system with an unpaired electron and a proton. Copy and paste the code above to your MATLAB command window to see the graph.
The first input argument to salt is a structure specifying
the spin system.
It contains fields for the electron spin(s), the nuclear spins,
and the various interaction matrices like g and hyperfine tensors.
The fields in this structure are the same as used for cw EPR simulations with
pepper. See the tutorial
for pepper for an introduction. Details about all the spin Hamiltonian
parameters can be found on the spin Hamiltonian reference page.
It is also possible to include several electron spins. Refer to the
page about spin system structures for details.
The broadening for the ENDOR spectrum should be given in Sys.lwEndor. It contains
the convolutional Gaussian and Lorentzian broadenings (FWHM, full width at half maximum) for the ENDOR spectrum.
Sys.lwEndor = 0.1; % Gaussian broadening with FWHM of 0.1 MHz Sys.lwEndor = [0 0.2]; % Lorentzian broadening with FWHM of 0.2 MHz Sys.lwEndor = [0.1 0.2]; % both broadenings simultaneously
EasySpin supports are series of different EPR line broadening models.
The only one supported in an ENDOR simulation is HStrain: it co-determines
the effective excitation width, together with Exp.ExciteWidth.
Strain broadenings (gStrain, AStrain and DStrain) as well as
convolutional broadenings of the EPR spectrum (lw and lwpp) are ignored.
All experimental settings are given in the second input argument Exp,
a structure with several fields very similar to those for pepper.
The most important parameter for an ENDOR simulation is the magnetic field. It is
given in Exp.Field, in the usual units of mT (millitesla):
Exp.Field = 350; % ENDOR at a field of 350 mT
The spectrometer frequency is given in the field mwFreq in units of GHz (gigahertz). It
is only necessary to supply it when the excitation bandwidth is limited, that is, when
Exp.ExciteWidth is set.
Exp.mwFreq = 9.612; % in GHz
The radiofrequency range, in MHz, is taken from either Range or
CenterSweep (which are used by pepper for the magnetic field range).
Of course, only one of the two can be used in a given simulation. If you omit both of them,
EasySpin automatically determines a suitable frequency range.
Exp.Range = [40 60]; % rf sweep range [start end], in MHz Exp.CenterSweep = [50 10]; % the same range, given as [center sweep], in MHz
By default, salt computes a 1024-point spectrum. However, the number of
points can be changed manually to a different value, e.g.,
Exp.nPoints = 5001;
If not told otherwise, salt computes the absorption spectrum. By changing Exp.Harmonic, the first-harmonic
(first-derivative) or the second-harmonic (second derivative) of it can be requested.
Exp.Harmonic = 0; % absorption spectrum (default) Exp.Harmonic = 1; % first harmonic Exp.Harmonic = 2; % second harmonic
The polarizing effects of low sample temperatures can also be included in the simulation by specifying the temperature:
Exp.Temperature = 4.2; % temperature in Kelvin
With this setting, salt will include the relevant polarization
factors resulting from a thermal equilibrium population of the energy levels.
However, there are only very few situations where temperature effects are
visible in ENDOR spectra.
There is one more experimental parameter for an ENDOR simulation: the excitation
width, given in Exp.ExciteWidth. It determines the orientational
selectivity of the ENDOR experiment. It is so important that we dedicate the
next section to it.
In an ENDOR experiment of a disordered system, not all paramagnetic centers are excited. Only those that resonate at the given magnetic field and microwave frequency can give an ENDOR signal. Spins that are slightly off-resonant contribute less, and spins far off-resonant cannot give an ENDOR signal at all. If the EPR resonance frequency is orientation dependent, this means that only electron spins with certain orientations are excited - hence the term "orientation selection". The range of frequencies over which electron spins are excited is called the "excitation window". It is centered around the microwave frequency.
The bandwidth of excitation, i.e. the width of the excitation window, is determined by the
Q factor of the resonator (cw ENDOR) or the length of the first pulse (pulse ENDOR). The window
is assumed to be Gaussian and its width (FWHM) is given in Exp.ExciteWidth, in units
of MHz.
Values between 50 and 250 MHz are common. The smaller this value, the stronger the orientation
selection, and the sharper the resulting ENDOR spectrum. For pulse ENDOR, the excitation
bandwidth can be estimated from the length of the first pulse, tp, by 2/tp.
Exp.ExciteWidth = 100; % MHz
If Exp.ExciteWidth is not given, it is assumed infinite, that is, all the spins are excited.
This is rather unrealistic, but often useful when exploring ENDOR spectra resulting from different
sets of hyperfine and quadrupole parameters. In this case, no micrwave frequency needs to be given.
To compute the total effective excitation width for the ENDOR experiment, EasySpin combines the
width given in Exp.ExciteWidth with the width given in Sys.HStrain,
which represents the EPR broadening. The larger HStrain, the larger the
total excitation bandwidth.
Sys.HStrain = [1 1 1]*200; Exp.ExciteWidth = 50; % total excitation width in MHz: sqrt(200^2+50^2) = 206 Exp.ExciteWidth = 100; % total excitation width in MHz: sqrt(200^2+100^2) = 224
As you can see, the total excitation width is rather insensitive to ExciteWidth,
if ExciteWidth is much smaller than HStrain.
If not specified otherwise, salt computes a powder spectrum. But
it is as well straightforward to simulate spectra for a single crystal. The
orientation (or orientations if more than one) of the single crystal can be provided in the
experiment structure field Exp.Orientations. This field should
contain the tilt angles between molecular and laboratory frame
(right-handed coordinate system with z along the static
field and x along the microwave magnetic field), one set of three angles per
column.
For a crystal with its molecular frame aligned with the laboratory frame, the setting is
Exp.Orientations = [0;0;0];
If you need more than one crystal at the same time, then just specify more than one orientation.
Exp.Orientations = [0 0 0;0 pi/4 0].';
In many crystals, there are several symmetry-related sites with identical paramagnetic centers
differing only in their orientation in the crystal. You can tell salt
about this by providing the crystal symmetry in the field Exp.CrystalSymmetry, e.g.
Exp.CrystalSymmetry = 'P21/m'; % space group symbol Exp.CrystalSymmetry = 11; % space group number (between 1 and 230) Exp.CrystalSymmetry = 'C2h'; % point group, Schönflies notation Exp.CrystalSymmetry = '2/m'; % point group, Hermann-Mauguin notation
With the crystal symmetry given, salt not only computes the spectrum for the orientation
given in Exp.Orientations, but also for all symmetry-related sites.
The third input argument to salt contains simulation options.
All of them have reasonable default values, but occasionally it might be necessary
to change one of them.
If you want salt to print information about the simulation to
the command window during the computation, use
Options.Verbosity = 1;
'Verbosity' specifies the amount of information displayed. 0 (the default)
suppresses all output, 1 is normal, and 2 prints very detailed information.
Another useful option is nKnots, which determines how many
orientations salt will include in the simulation of a powder
spectrum. If this value is too low, the spectral line shape contains artifacts
in the form of ripples.
nKnots is the number of orientations between the z axis and
the x axis (between θ = 0 and θ = 90 degrees). It determines the
resolution of the orientational grid used in the simulation.
Options.nKnots = 31; % corresponds to 3-degree increments
The higher nKnots, the finer the orientational grid.
The default value of 19 (5-degree increments) is appropriate for most systems.
A value larger than 181 (0.5-degree increments) is rarely needed.
After having computed the spectrum for a number of orientations specified
by nKnots, the simulation function interpolates these spectra for
additional orientations before summing up all spectra. This interpolative
refinement can be configured with a second number in nKnots.
nKnots = [19 4] means that pepper interpolates
additional 4 spectra between two adjacent orientations evaluated.
Options.nKnots = [19 10]; % massive interpolation Options.nKnots = [19 0]; % no interpolation
The option Output can be used to determine the form in which
salt returns the spectral data.
% single crystal: orientations separately % powders: transitions separately Options.Output = 'separate'; % sum over all orientations and transitions Options.Output = 'summed';
There are more option fields available. For details, see the reference page on salt.
By default, EasySpin uses matrix diagonalization for computing ENDOR spectra. Even though this is by far the most accurate way, it is also the slowest. This can be felt painfully when simulating ENDOR spectra of spin systems with a lot of nuclei. EasySpin offers several speed-up options to trade a little accuracy for a lot in performance gain.
One way to speed up an ENDOR simulation is to switch to first- or second-order perturbation theory.
Options.Method = 'perturb1'; % first-order perturbation theory Options.Method = 'perturb2'; % second-order perturbation theory Options.Method = 'matrix'; % matrix diagonalization
If you have a couple of protons in an 1H ENDOR spectrum, first-order perturbation theory is orders of magnitude faster than matrix diagonalization. Under most circumstances, the errors introduced are minimal. Second-order perturbation theory should be used if the hyperfine couplings are larger than about 2% of the microwave frequency (about 200 MHz for a microwave frequency of 10 GHz). Perturbation theory does not work for all spin systems: it is limited to S=1/2.
If you want to stick with matrix diagonalization, there is another way to speed up simulations that
is useful when there is strong orientation selection, and only nuclei with small hyperfine couplings
are observed in the ENDOR spectrum. salt can be told to pre-compute the orientation selection
instead of computing it on the fly, using
Options.OriPreSelect = 1; % use orientation pre-selection
This tells EasySpin to classify nuclei into whether they contribute to orientation selection (N1)
or not (N2), then pre-compute orientation selection data only for those in group N1. Any orientation
that is not noticeably excited is then skipped in the subsequent ENDOR simulation. This pre-selection
is only available with matrix diagonalization and advantageous only if there are several nuclei that
do not contribute to orientational selectivity. Use it only if perturbation theory is
really not an option.