Computes ENDOR frequencies and transition amplitudes.
Pos = endorfrq(Sys,Par) Pos = endorfrq(Sys,Par,Opt) [Pos,Int] = endorfrq(...) [Pos,Int,Tra] = endorfrq(...)
endorfrq
computes ENDOR
frequencies and intensities, which can be used to build single-crystal
spectra or crystal rotation patterns. endorfrq
is used by
salt, the solid-state ENDOR spectrum simulation function, to obtain
ENDOR positions and intensities. The calling syntax of endorfrq
is very similar to that of resfields, its EPR analogue.
The two mandatory input parameters characterize the spin system
(Sys
), and the experiment parameters (Par
) containing the spin system's
orientations in the external field. A third parameter
Opt
can be used to modify and tune endorfrq
's computations.
Sys
is a spin system structure. In addition to
all the fields necessary to construct a spin Hamiltonian, endorfrq
only
uses the EPR line width field HStrain
.
Par
is a structure containing information related to the ENDOR experiment.
mwFreq
Field
SampleFrame
An Nx3 array that specifies the sample orientations for which the EPR spectrum should be computed. Each row of SampleFrame
contains the three Euler rotation angles that transform the lab frame to the sample/crystal frame.
Exp.SampleFrame = [0 0 0]; % sample/crystal frame aligned with lab frame Exp.SampleFrame = [0 pi/2 0]; % sample/crystal frame tilted relative to lab frame Exp.SampleFrame = [0 pi/2 pi/4]; % sample/crystal frame tilted relative to lab frame Exp.SampleFrame = [0 0 0; 0 pi/2 pi/4]; % two samples/crystals
Temperature
ExciteWidth
ExciteWidth
is its FWHM. The default is Inf
.
CrystalSymmetry
Exp.CrystalSymmetry = 'P21/c'; % 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 CrystalSymmetry
is given, all symmetry-related sites in the crystal are included in the calculation. If CrystalSymmetry
is not given, space group 1 (P1, point group C1, one site per unit cell) is assumed.
Opt
contains a set of optional parameters used to adjust the computation to one's needs. If a field or the entire structure is omitted, default values are used. One part of the fields concerns the automatic or manual selection of transitions to include in the ENDOR computation, the other one allows to modify the ENDOR intensity calculation.
Verbosity
Opt.Verbosity=0
(default) means that endorfrq
does not print to the command window. Opt.Verbosity=1
prints some
log messages, higher values are given ever more details.
Transitions
endorfrq
uses them and skips its automatic transition selection scheme. Level pairs are specified in Transitions(k,:)
by the level numbers, starting with 1 for the lowest-energy state.
Threshold
1e-4
. The pre-selection is an approximate procedure, and it might miss transitions for complicated spin systems. In these cases, setting it to zero will include all transitions in the simulation. After the intensities of all included transitions are computed, the transition are screened again against this threshold in a post-selection step. If transitions are specified manually in Opt.Transitions
, Opt.Threshold
is ignored.
Nuclei
endorfrq
to select only transitions belonging to a certain type of nuclei. 1 is the first nucleus in the spin system, 2 the second, and so on. If this field is absent, all nuclei are included by default. E.g. Opt.Nuclei=2
for a spin system with Sys.Nucs='63Cu,1H'
will only include 1H ENDOR transitions.
Intensity
'on'
(default) or 'off'
Intensity
is set to off
, no intensities are computed. If the
endorfrq
output parameter Int
is given, it is set to empty.
You can also switch off intensity computations by not giving the
corresponding output parameter.
Enhancement
'off'
(default) or 'on'
on
, endorfrq
includes the hyperfine enhancement effect in
the computation of the transition matrix elements by using the full Zeeman part of the
spin Hamiltonian (electron plus nuclear part). Otherwise only the nuclear Zeeman
terms are used. The hyperfine enhancement effect causes intensity asymmetries of ENDOR
lines at low fields, but it is often compensated by the characteristics of the RF coils
used in ENDOR experiments.
There are three output parameters to endorfrq
, only the first one is mandatory.
Pos
contains the positions of the ENDOR lines (in Megahertz). One column in the output corresponds to one orientation.
Int
returns the ENDOR intensities, in an array the same size as Pos
. If intensity computations have been switched off, this array is empty. If Int
is omitted, intensities are not computed at all.
Tra
is a list of the transitions included in the computation. It is a nx2 array containing pairs of level numbers along rows. Levels numbers relate to their energy: the lowest state in energy has number 1, the second lowest is 2, etc. See also the Transitions
field in Opt
.
endorfrq
uses full matrix diagonalization to compute frequencies and amplitudes.
The following code produces a plot of ENDOR frequencies and amplitudes
as a function of the Q tensor axial parameter eeQq. First we define the
three input structures to endorfrq
and the range of eeQq values.
Sys = struct('S',1/2,'g',2,'Nucs','14N','A',[8 9 10]); Exp.Field = 350; Exp.SampleFrame = [10 40 0]*pi/180; Opt.Threshold = 0; Opt.Enhancement = 'on'; eeQq = 0.0:.1:4;
Next we loop over all eeQq
values and compute the associated ENDOR
positions and amplitudes for an arbitrary orientation. The results are
stored along columns in the array p
and w
.
for i = 1:numel(eeQq) Sys.Q = eeQq(i); [p(:,i), w(:,i)] = endorfrq(Sys,Exp,Opt); end
At the end, we plot the results. The ENDOR frequencies are scaled with the Larmor frequency of the nucleus.
NZ = larmorfrq('14N',Exp.Field); subplot(1,2,1); plot(eeQq/NZ,sort(p/NZ).','k'); axis tight, xlabel('eeQq/wnuc'); ylabel('frequency/wnuc'); subplot(1,2,2); plot(eeQq/NZ,sort(w).','k'); axis tight, ylabel('amplitude'); xlabel('eeQq/wnuc');
garlic, levels, pepper, resfields, resfields_perturb, salt