Calculation of single-crystal and powder cw EPR spectra (solid-state).
pepper(Sys,Exp); pepper(Sys,Exp,Opt); spec = pepper(...); [B,spec] = pepper(...); [B,spec,trans] = pepper(...);
See also the tutorial on
how to use pepper.
pepper calculates cw EPR spectra for powders, frozen solutions
and single crystals.
There are up to three possible output arguments
pepper plots
the simulated spectrum.
spec contains the calculated spectrum or spectra.
B is a vector of magnetic field abscissa
values over which the spectrum was calculated in units of mT.
trans
is a list of
level number pairs indicating the transitions which where included in
the spectrum calculations. Level numbers refer to the energy levels of
the Hamiltonian in ascending order, so level 1 is that which lowest
energy and so on. If spec is a matrix, spec(k,:)
is the spectrum of the transition trans(k,:).
There are three arguments to the function, the last one optional. They are similar to those of the function resfields.
Sys is a spin system structure
containing spin Hamiltonian parameters and line broadening parameters
Exp contains experimental parameters such as the microwave
frequency, the magnetic field range and temperature. Here is a full
list of its fields:
mwFreq | Spectrometer frequency in GHz. |
CenterSweep |
2-element vector [center sweep]Contains center field and sweep width of the external magnetic field sweep range. Values should be in mT, e.g. Exp.CenterSweep=[310 100].
The magnetic field sweep range can be specified either in |
Range |
2-element vector [loField hiField]Contains lower and upper limit of the external magnetic field sweep range. Values should be in mT, e.g. Exp.Range=[260 360].
The magnetic field sweep range can be specified either in |
nPoints | Number of points on the magnetic field abscissa axis. If not given, the default is 1024. |
Temperature |
scalar (default inf) or vector
This field specifies populations for the states of the spin system, either directly or via a temperature.
Thermal equilibium:
Non-equilibrium populations: |
Harmonic |
0, 1 (default) or 2Harmonic of the detection. 1 and 2 specify
the first and the second derivative of the absorption spectrum,
respectively. 0 returns the absorption spectrum without
differentiation. To explicitly include
the effect of field modulation amplitude, use fieldmod.
|
Detection |
'perpendicular' (default) or 'parallel'Relative orientation of the microwave excitation and detection field B1 with respect to the static magnetic field B0. 'perpendicular'
means .
'parallel' means that .
|
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.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
When |
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 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 = @(phi,theta) gaussian(theta,0,15/180*pi);
Of course, the function can also be written and stored in a separate file, e.g. 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. |
mwFreq and Range have to be provided by the user,
all other fields are optional and have default values.
The structure Opt collects computational parameters.
Opt need not be specified, in which case default values
for all fields are used. The field names and their possible values are
listed below.
Verbosity |
Determines how much information pepper prints to the screen.
If Opt.Verbosity=0, pepper is completely silent.
1 logs relevant information, 2 gives more details.
|
Output |
'summed' (default) or 'separate'Determines in what form the spectrum is returned. If set to 'separate',
pepper returns one spectrum for each transition in a matrix
spec. The transition spectra are along the rows. spec(k,:)
is the spectrum of transition k.
If 'summed' is specified, the total spectrum is
returned in spec as a vector.
|
nKnots |
[N1] or [N1 N2]
Determines the number of orientations (knots) in a powder simulation for which spectra are calculated.
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.
|
Transitions |
mx2 vector of integers
Determines manually the level pairs which are used in the spectrum calculation. If given, pepper 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 pepper's automatic transition
selection. Any transition with a relative average amplitude less than this number
is not included in the calculation. The relative average amplitude of
the strongest transition is 1. The default value for this field is 1e-4.
|
Intensity |
'on' (default) or 'off'
With 'on', transition rates, i.e. line intensities, are computed
correctly. Allowed transitions will be more intense then quasi-forbidden ones.
'off' simply sets all transition rates of all transitions to 1.
Allowed and forbidden transitions will have the same intensity.
Be very careful when switching this option to 'off'!
The resulting spectra are not correct.
|
Method
|
'matrix' (default), 'perturb', 'perturb1', 'perturb2'
Determines how
'matrix' is the method of choice for systems with only a few nuclei (and any number
of electron spins). For spin systems with many nuclei and small hyperfine couplings, simulations using
perturbation theory are orders of magnitude faster.
If there are large couplings in the spin system that require matrix diagonalization,
but also some nuclei with hyperfine couplings that could be treated perturbationally,
use the option |
Perturb |
Activates a mixed algorithm where matrix diagonalization and perturbation theory are
combined. It is off (set to 0) by default. When set to 1, nuclei with small hyperfine
couplings are treated using first-order perturbation theory. For those nuclei, the
quadrupole and the nuclear Zeeman interactions are neglected, only the hyperfine
interaction is retained. EasySpin automatically determines which nuclei are amendable
to the perturbational treatment.
Opt.Perturb = 0; % no perturbational treatment (default) Opt.Perturb = 1; % perturbational treatment for all nuclei
Using this option, simulations for systems containing many nuclei can be
several orders of magnitude faster than without. If all nuclei can be treated
perturbationally, though, it is more efficient to use perturbation theory
with
In an extended syntax, Sys.Nucs = '63Cu,14N,1H,1H'; Opt.Perturb = [0 0 1 1]; % exclude 63Cu and 14N from perturbational treatment |
Spectra are calculated over a triangular orientational grid using resfields to obtain the resonance field positions and amplitudes. For each orientation line positions, and possibly widths and intensities, are evaluated.
This gridded data is then interpolated with cubic splines in a combined 1D/2D approach. Resampling of the spline surface gives much quicker many more position/intensity/width data than quantum-mechanical calculation.
Finally, the refined data are projected onto the magnetic field axis using a Delaunay triangulation of the resampled spline surfaces. Linear interpolative projection of these triangles yields an extremely smooth spectrum with very low powder simulation noise. In the case of full anisotropic width treatment, a simple sum-up of Gaussian line shapes is used instead of the projection.
Apart from the main steps above, there is an automatic transition selection, which works along the same line as the overall algorithm, except that its results are only used for determining which level pairs possibly contribute to the spectrum.
For line width calculations, Gaussian distributions are assumed both in the magnetic field and the frequency dimension. The overall line width for a given orientation is
where
is the residual line width
specified in Sys.HStrain,
is
the line width due to correlated g-A strain (Sys.gStrain and Sys.AStrain),
and
the width arising from D-E strain
(Sys.DStrain).
Although quite robust and general, pepper still has some
limitations.
Opt.nKnots.
Opt.nKnots.
As an illustration, we explore the influence of various pepper
options on the zeroth-harmonic (DC) spectrum of a simple orthorhombic system.
First the spin system, the experiment at X-band and some options are
defined. An anisotropic line width is included in the spin system.
Sys = struct('S',1/2,'g',[1.9 2 2.3]);
Exp = struct('CenterSweep',[325 80],'mwFreq',9.5,'Harmonic',0);
Opt = struct('Verbosity',1);
Next we compute spectra for some combinations of broadening parameters.
[x,y1] = pepper(Sys,Exp,Opt); Sys.lw = 2; y2 = pepper(Sys,Exp,Opt); Sys.lw = 0; Sys.HStrain = [170 40 50]; y3 = pepper(Sys,Exp,Opt);
The final plot reveals the differences between the spectra.
plot(x,y1/sum(y1),x,y2/sum(y2),x,y3/sum(y3));
legend('no broadening','convolution broadening','H strain');
References which contain concepts, formulas and algorithms directly used in the function are listed below.
eigfields, esfit, garlic, resfields, salt, sham