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(...);
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 (for excitation and detection) 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 2 Harmonic of the detection. 0 defines an absorption
spectrum. 1 and 2 specify
the first and the second derivative respectively. If all line widths
are zero, only the absorption spectrum is returned, no matter
what the value of Harmonic is.
|
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 |
3xM array Specifies single-crystal orientations for which the cw spectrum should be computed. Each column of Orientations
contains the three Euler rotation angles [phi;theta;chi] of the
magnetic field in a molecule fixed frame. If Orientations 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°.
|
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
|
0 (default), 1 or 2
Determines how much information pepper prints to the screen.
If Opt.Verbosity=0 , pepper
is completely silent. 1 logs relevant information,
2 gives even more details.
|
nKnots
|
integer > 3, default is 19
Determines the number of orientations (knots) for which spectra are explicitly calculated. nKnots gives the number of
orientations on
quarter of a meridian, i.e. in the interval .
A higher value than the default is only necessary if the orientational
dependence of the spectrum is very complicated. See also the option
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 pair of skeleton points one additional point is calculated
by interpolation. The default value is 4, higher values are seldom necessary.
If nSpline is smaller than 2, interpolation is skipped.
|
Symmetry |
'auto' (default), 'Dinfh' , 'D2h' ,
'C2h' or 'Ci'
Determines the symmetry of the Hamiltonian. auto is the default,
meaning that pepper determines the correct symmetry
automatically. With any other setting, pepper is forced into
using the specified symmetry, even if it is wrong for the spin system.
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). |
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.
|
LineShape |
'Gaussian' (default) or 'Lorentzian'
Specifies the line shape to use for convoluting with the linewidth given in Sys.lw .
For strain broadenings
(HStrain , gStrain , etc.), a Gaussian line
shape is used, independent of the setting of this parameter.
|
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.
|
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.
|
Perturb |
0 (default) or 1 or 1xm vector
Determines whether nuclei with small hyperfine couplings are treated perturbationally. If set to 1 , resfields automatically
determines the nuclei which can be treated using (degenerate) first-order
perturbation theory without too much error. For those nuclei, the quadrupole
and the Zeeman terms are neglected, and only the hyperfine term is retained.
Using this option, simulations for systems containing many nuclei (e.g. 63Cu and four 14N) can be speeded up by several orders of magnitude! In an extended syntax, Perturb can be used to exclude
some nuclei explicitly from perturbational treatment. E.g., Opt.Perturb
= [1 0 1 1] in a spin system with 4 nuclei means that nucleus 2
will be treated exactly and not perturbationally. This might be necessary,
if the quadrupole or nuclear Zeeman terms of a nucleus cannot be excluded,
because it affects the spectrum.
|
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 absorption 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',.5,'g',[1.9,2,2.3]); Exp = struct('Range',[285 365],'mwFreq',9.5,'Harmonic',0); Opt = struct('Verbosity',1);
Next we compute spectra for some combinations of the Intensity
option and
line width 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 width','H strain');
References which contain concepts, formulas and algorithms directly used in the function are listed below.
eigfields, garlic, resfields, salt, sham