Defining a spin system

General information

EasySpin uses mainly two data types that are available in MATLAB: arrays and structures. Details about arrays and structures can be found in the MATLAB documentation. In EasySpin, a spin system is represented by a structure (the spin system structure, SSS). A structure is a collection of fields. SSSs are structures containing certain fields.

The SSS contains all information about the spin system and its Hamiltonian. Its fields specify spin quantum numbers, interaction parameters, matrices and tensors, relative orientation angles for these matrices and tensors as well as details about broadenings.

The Spin Hamiltonian is set up in frequency units (MHz, not angular frequencies), so all the energy parameters of the Hamiltonian have to be given in MHz as well. Hence, for example, the field A represents in fact the diagonal of A/h and not of A. Remember that all angles are in radians, not in degrees.

SSSs are used by many EasySpin functions, among them pepper, salt, resfields, levels.

A few examples

Here are a couple of examples of spin system definitions. The input syntax is intuitive and self-explanatory. Details about the various fields can be found below.

Sys = struct('S',1/2,'g',[1.9 2.0 2.1]);
Sys.lw = 0.7;

Spin systems containing nuclei can be defined either directly or using the function nucspinadd:

Sys = struct('S',1/2,'g',[2 2 2.2],'Nucs','63Cu','A',[50 50 460]);
Sys = struct('S',1/2,'g',[2 2 2.2]);
Sys = nucspinadd(Sys,'63Cu',[50 50 460]);

For several nuclei, the latter form is more convenient. E.g.,

Sys = struct('S',1/2,'g',[2 2 2.2]);
Sys = nucspinadd(Sys,'63Cu',[50 50 460]);
Sys = nucspinadd(Sys,'14N',[10 20 30]);
Sys = nucspinadd(Sys,'14N',[10 20 30]);
Sys = nucspinadd(Sys,'14N',[10 20 30]);
Sys = nucspinadd(Sys,'14N',[10 20 30]);

A high-spin Mn2+ system with zero-field splitting is

Sys = struct('S',1/2,'g',[2 2 2],'Nucs','55Mn');
Sys.A = [1 1 1]*200;
Sys.D = [-1 -1 2]*80;
Spin Hamiltonian parameters

The two fields S and Nucs in the SSS are used to specify electron and nuclear spins constituting the spin system. Both are optional. If S is not given, S=1/2 is assumed. If Nucs is not specified, Nucs='' is used.

S 1xn vector of multiples of 1/2 (default 1/2)
Gives the electron spin quantum number(s). An arbitrary number of electron spins can be specified. Examples:
Sys.S = 1/2; % one electron spin with S=1/2
Sys.S = [1 1 1/2]; % two S=1 and one S=1/2 spin
If S is not given, it is automatically set to 1/2.
Nucs string (default '')
A comma-separated list of isotopes specifying the nuclear spins in the spin system. An arbitrary number of nuclei can be specified. See also the functions nucgval and nucspin.
Sys.Nucs = '1H'; % one hydrogen
Sys.Nucs = '59Co,14N,14N'; % a 59Co and two 14N nuclei

The following table lists all possible SSS fields containing spin Hamiltonian parameters. All interaction matrices and tensors can have arbitrary orientations with respect to a molecule-fixed frame of reference (the so-called molecular frame).

g nx3 array of real
Defines the g matrix or matrices for the Electron Zeeman interaction. Each row contains the three principal values of the associated electron spin, i.e. g(k,:) refers to electron spin k. Orientations of the g matrices are given in gpa.
Sys.g = [2 2 2.3]; % for one electron spin
Sys.g = [2 2 2.3; 1.9 1.95 2.01]; % for two electron spins
gpa nx3 array of real
Each row of this array contains the three Euler angles (in radians) for the passive rotation which transforms the g matrix of the associated electron spin from its eigenframe to the molecular frame (see also the function erot). If not specified, gpa is assumed to be all-zero.
Sys.gpa = [0 0 0]; % one electron spin
Sys.gpa = [0 0 0; 0 pi/4 0; 0 -pi/4 0]; % three electron spins
A mx3n array of real or 3mx3n array of real
Principal values of the hyperfine interaction matrices A/h in MHz. The first dimension specifies the nucleus, the principal values for the various electron spins are given along the rows. The orientations of the matrices are in Apa.
Sys.A = [10 10 -20; 30 40 50]; % for one electron and two nuclei
Sys.A = [10 10 -20, 30 40 50]; % for two electrons and one nucleus
Sys.A = [10 10 -20, 30 40 50; 1 1 -2, 3 4 5]; % 2 electrons and 2 nuclei
It is possible to specify full A matrices in A. The 3x3 matrices have to be combined like the 1x3 vectors used when only principal values are defined: For different electrons, put the 3x3 matrices on top of each other, for different nuclei, side by side. If full matrices are given in A, Apa is ignored.
% 1 electron and 1 nucleus
Sys.A = [5 0 0; 0 5 0; 0 0 5]
% 2 electrons and 2 nucleus
Sys.A = [5 0 0; 0 5 0; 0 0 5; 10 0 0; 0 10 0; 0 0 10]
% 1 electron and 2 nuclei
Sys.A = [5 0 0 10 0 0; 0 5 0 0 10 0; 0 0 5 0 0 10]
Apa mx3n array of real
Array of Euler angles giving the relative orientation of the various A matrices, as described above for gpa. If Apa is not specified, it is assumed to be all-zero. See also erot.
Q nx3 array of real
Principal values of the nuclear quadrupole interaction tensors Q/h for all nuclei, in MHz. If it is not specified, it is assumed to be zero.
Qpa nx3 array of real
Euler angles describing the orientation of the Q interaction tensors, analogous to gpa and Apa. Row n specifies the Euler angles for nucleus n.
Sys.Qpa = [0 pi/4 0]; % one nucleus
Sys.Qpa = pi*[0 1/4 0; 0 -1/4 0; .5 3/4 0]; % three nuclei
D nx3 array of real
Principal values, in MHz, of the D matrix describing the zero-field interaction of the electron spins, one row per electron. Each row of D should contain three values [Dxx Dyy Dzz]. They form the diagonal of the D/h matrix in its eigenframe.
Sys.D = [-1.2 -0.8 2]*1e3;  % direct specification
D = 1e3; E = 2e2; Sys.D = [-D/3+E,-D/3-E,2*D/3]; % with D and E
Sys.D = [-1.2 0.8 2; 0.6 0.4 -1]; % two electron spins
Dpa nx3 matrix of real
Euler angles describing the orientation of the D tensors, completely analogous to Qpa.
B20, B21, B22, B40, B41, ..., B44, B60, ..., B66 real or 1x2 array
The coefficients for the extended Stevens operators of the electron spin (see also the function stev). B20, B40 and B60 are scalars. The other fields specify two [eqn] parameters each. E.g. B43 represents [eqn]. If only one element is given, it is taken as [eqn].
ee Nx3 array of real
Principal value of the electron-electron interaction matrices. Each row corresponds to the diagonal of an interaction matrix (in its eigenframe). They are lexicographically ordered according to the indices of the electrons involved. If n is the number of electrons, there are N = n(n-1)/2 rows. E.g. for four electrons there have to be six rows with the principal values for the interaction of electrons 1-2, 1-3, 1-4, 2-3, 2-4, and 3-4, in this order. For two electrons, ee contains one row only.

E.g. for two S=1/2, the electron-electron interaction with isotropic and dipolar coupling is Sys.ee = Jiso + Jdip*[-1 -1 2].

eepa Nx3 array of real
Euler angles describing the orientation of the electron-electron interaction matrices specified in ee. Each row contains the Euler angles for the corresponding row in ee.
Line broadenings and strains

There is a number of fields by which line broadenings can be specified. lw and lwEndor are line widths (FWHM) which are used for convolution of the simulated spectrum. All others are so-called strains and describe Gaussian distributions in the associated spin Hamiltonian parameters.

For a full documentation of the line broadening fields in the spin system structure, see the page on line broadenings.