Spin-polarized systems and photoselection

EasySpin can simulate EPR spectra of spin-polarized systems, for example photoexcited triplet states or spin-correlated radical pairs.

EasySpin can also simulate the effects of photoselection resulting from excitation with plane-polarised laser light often observed in the spectra of photoexcited spin-polarized systems.

This user guide covers the basics of how to simulate EPR spectra of spin-polarized systems. There are the following topics:

Although the following sections focus on triplets and radical pairs, the methods can easily be extended to spin-polarized states of spins with higher multiplicity. For related examples see the section on 'EPR simulations for photoexcited systems'.

Specifying non-equilibrium populations

The non-equilibrium state of the spin system depends on the mechanism of spin polarization and is specified using the field Sys.initState:

Sys.initState = {state, basis};

The first element, state, should contain a list of populations, one entry for each state. Alternatively, it can contain a full non-equilibrium density matrix.

The second element, basis, should contain a keyword specifying the corresponding basis. Many options are available: 'eigen' for the eigenbasis, 'zerofield' for the zero-field basis, 'uncoupled' for the uncoupled Zeeman basis, 'coupled' for the coupled basis (in the case of two coupled spins), and 'xyz' for the (Tx,Ty,Tz) basis for triplets.

In addition, there are shorthands for two specific initial states:

Sys.initState = 'singlet';   % pure singlet state (for spin pairs)
Sys.initState = 'T0';        % T0 state (for recombination triplets)

In the next few sections, we demonstrate some basic usage of Sys.initState for common spin-polarized systems. For more details see the section on non-equilibrium populations in the spin system documentation.

Inter-system crossing (ISC) triplets

To simulate the EPR spectrum of a triplet generated by inter-system crossing from a singlet state, EasySpin needs information about how ISC populated the triplet states Tx, Ty, and Tz. The most straightforward way of providing this information in the field Sys.initState is by giving a 3-element array with the populations of the Tx, Ty and Tz sublevels and specifying 'xyz' as the basis. The populations do not have to add up to 1.

Sys.initState = {[0.2 0.5 0.3],'xyz'};  % Tx, Ty, Tz

Here is a full example of a triplet generated by ISC from an excited singlet state

Triplet.S = 1;
Triplet.D = [500 -100];  % MHz
Triplet.lwpp = 1;  % mT
Triplet.initState = {[0.2 0.5 0.3],'xyz'};  % Tx, Ty, Tz

Exp.mwFreq = 9.5;  % GHz
Exp.Range = [310 370];  % mT
Exp.Harmonic = 0;  % no field modulation

pepper(Triplet,Exp);

Alternatively, you can use the fact that Tx, Ty and Tz are equal to the zero-field states. Provide populations for the zero-field states in order of ascending energy and specify 'zerofield' as the basis. For example

Sys.initState = {[0.1 1 0.2],'zerofield'}  % increasing energy

indicates a population of 0.1 of the lowest-energy zero-field state, a population of 1 of the middle-energy zero-field state, and a population of 0.2 of the highest-energy zero-field state.

The energy order of the zero-field triplet states depends on the signs of the zero-field splitting parameters D and E.

[eqn]

By convention, for organic triplets D and E are defined such that -1 ≤ 3 E/D ≤ 1, so |D| > 3|E| and |Dz| > |Dx| > |Dy|, as described by Poole, C. P. J., Farach, H. A. and Jackson, W. K. in Standardization of convention for zero field splitting parameters, J. Chem. Phys. 61, 2220–2221 (1974), DOI: 10.1063/1.1682294.

Be careful in determining the energy order of the zero-field triplet states correctly when using Sys.initState with the 'zerofield' basis to simulate spectra from the literature, or when interpreting results from least-squares fitting.

The shape of the EPR spectrum only depends on the polarizations of the transitions, i.e. only on the differences of the populations in Sys.initState. Therefore, adding any constant to all three numbers will not affect the shape of the spectrum. It will, however, affect the overall intensity of the simulated spectrum, since EasySpin does not normalize the populations nor the spectrum.

EasySpin can handle ISC-polarized states of higher spin multiplicity as well. For example, to simulate spectra from an ISC-generated quartet state, provide 4 numbers in the population vector for Sys.initState and use basis 'zerofield'.

Recombination triplets

To simulate the spin-polarized EPR spectrum of a triplet generated by recombination of two radicals or by singlet fission, which typically results in exclusive population of the T0 state, the simplest approach is to use

Sys.initState = 'T0';

This is a shorthand for

Sys.initState = {[0 1 0],'eigen'};  % increasing energy (i.e. T-, T0, T+)

This is a more general way of providing information on the populations of the high-field levels. When using the 'eigen' basis, the populations need to be given in order of increasing energy, i.e. following the usual notation for the high-field states in a triplet, in the order T-, T0, T+.

Here is an example for a triplet state generated by recombination of a radical pair.

Triplet.S = 1;
Triplet.D = [500 -100];  % MHz
Triplet.lwpp = 1;  % mT

Triplet.initState = {[0 1 0],'eigen'};
%Triplet.initState = 'T0';  % shorthand

Exp.mwFreq = 9.5;  % GHz
Exp.Range = [310 370];  % mT
Exp.Harmonic = 0;  % no field modulation

pepper(Triplet,Exp);

Small populations of the T- and T+ states can be added easily:

Sys.initState = {[0.2 1 0.1],'eigen'};   % increasing energy (T-, T0, T+)
Spin-correlated radical pairs

For the simulation of EPR spectra of spin-correlated radical pairs, the initial density matrix of the system in the uncoupled or coupled basis can be specified in Sys.initState. For the uncoupled basis, the ordering is (αα, αβ, βα, ββ), and for the coupled basis, it is (T+, T0, T-, S). The ordering of the states in the uncoupled and coupled bases is described in more detail in the documentation for spin operators and for the transformation matrix between uncoupled and coupled representations.

For a singlet-born radical pair, the simplest input is to use the shorthand

Sys.initState = 'singlet';   % singlet (for a radical pair)

The following is an example for a simulation of a singlet-born spin-correlated radical pair with exchange and dipolar coupling.

% Spin system
Sys.S = [1/2 1/2];
Sys.g = [2.0020; 1.9999];

Sys.J = -2;  % MHz
Sys.dip = 10;  % MHz

Sys.lwpp = 0.05;  % mT

% Singlet precursor
Sys.initState = 'singlet';

% Experimental parameters
Exp.Range = [346.5 349.5];  % mT
Exp.mwFreq = 9.75;  % GHz
Exp.Harmonic = 0;  % no field modulation

pepper(Sys,Exp);

There is a more general way to specify initial states for radical pairs. For a singlet-born radical pair, the populations for the eigenstates i are <i|PS|i>, where PS is the projection operator onto the electron singlet subspace, i.e. the populations are given by the sum of single-state projection operators |i><i| over all states that contain an electron spin singlet contribution (<j|S2|j> = 0). You can provide the electron spin singlet projection operator PS as initial density matrix in Sys.initState in the uncoupled basis. It is easily obtained as follows:

Singlet = 1/sqrt(2)*[0; 1; -1; 0];  % singlet state in uncoupled basis, (|αβ>-|βα>)/sqrt(2)
PSinglet = Singlet*Singlet'  % singlet projection operator
Sys.initState = {PSinglet,'uncoupled'};
%Sys.initState = PSinglet;  % equivalent - EasySpin assumes 'uncoupled' by default

With this input, EasySpin calculates the population of an eigenstate V of the Hamiltonian based on the provided density matrix Sigma0 as PopulationV = V'*Sigma0*V.

A spin-correlated radical pair formed from a thermalized triplet precursor can be simulated by providing the populations of the states in the coupled basis as

Sys.initState = {[1/3 1/3 1/3 0],'coupled'}

or by explicitly providing the corresponding density matrix in the uncoupled or coupled basis.

% Get state vectors (in uncoupled basis)
V = cgmatrix(1/2,1/2);
Tp = V(1,:)';
T0 = V(2,:)';
Tm = V(3,:)';
S = V(4,:)';

% Set up the initial density matrix (in uncoupled basis)
Sys.initState = 1/3*(Tp*Tp' + T0*T0' + Tm*Tm');

For detailed information on how to specify electron-electron spin-spin couplings see the documentation for the spin system definition. Note that different conventions regarding the signs and magnitudes of exchange and dipolar coupling parameters exist in the literature. Therefore, make sure to convert J and D values correctly when using literature values in EasySpin.

EasySpin can also handle spin-polarized systems of higher multiplicity, such as triplet pairs. The dimension of the provided population vector or density matrix must match the number of electron states (or the total number of states in a spin system also containing nuclei). For a triplet pair, there are 9 states, so the population vector needs 9 elements, and the density matrix is 9-by-9.

Photoselection

Spin-polarized systems are typically generated using photoexcitation with a laser. Excited triplet states are a common example. The triplet yield upon photoexcitation depends on the relative orientation between the E-field vector of the incident laser beam and the electric transition dipole moment vector associated with the optical transition that is being excited at the wavelength of the incident laser beam. If the E-field is parallel to the transition dipole moment, the excitation is maximal, and if the E-field is perpendicular to the transition dipole moment, the excitation is zero. As a consequence, in a powder or frozen-solution sample, not all orientations contribute equally to the EPR spectrum. This phenomenon is called photoselection or magnetophotoselection.

To take photoselection into account when simulating an EPR spectrum with pepper, you need to provide information about the transition dipole moment orientation and about the laser excitation geometry.

Use Sys.tdm to provide the orientation of the transition dipole moment in the molecule. For example, for the transition dipole moment along the molecular y axis, use one of the following three equivalent ways:

Sys.tdm = 'y';          % letter code
Sys.tdm = [0;1;0];      % unit vector (lab frame)
Sys.tdm = [pi/2 pi/2];  % polar angles phi and theta (in radians)

Use Exp.lightBeam to specify the laser excitation geometry, i.e. the laser propagation direction and the polarization angle (if the laser light is polarized). Several common geometries can be provided via keywords. They all assume a laser beam, polarized or unpolarized, propagating along the laboratory y axis, which is perpendicular to the magnetic field (lab z axis).

Exp.lightBeam = 'unpolarized';     % unpolarized beam along lab y
Exp.lightBeam = 'perpendicular';   % polarized beam along lab y with E-field along lab x, perpendicular to B0
Exp.lightBeam = 'parallel';        % polarized beam along lab y with E-field along lab z, parallel to B0

For other geometries, the propagation direction k and the polarization angle alpha can be provided explicitly as Exp.lightBeam = {k alpha}. Refer to the documentation of pepper for details about this.

The photoexcitation probabilities are calculated via the function photoselect. This function returns values between 0 (no excitation) and 1 (maximal excitation), and you can use it directly for exploring the orientation dependence of the photoexcitation yield.

Occasionally, when fitting experimental spectra of photo-excited species, it is necessary to include a small contribution with isotropic excitation (i.e. with E-field uniformly distributed in all directions) to account for effects like scattering or energy transfer. The fraction of this contribution, between 0 and 1, is provided in Exp.lightScatter.

Exp.lightScatter = 0.2;  % 20% isotropic contribution

Alternatively, you might want to mix 'perpendicular' and 'parallel', or 'perpendicular' and 'unpolarized'. For this, just simulate two separate spectra and add them as desired:

Exp.lightBeam = 'perpendicular';
[~,spc_perp] = pepper(Sys,Exp);
Exp.lightBeam = 'parallel';
[B,spc_para] = pepper(Sys,Exp);
w_perp = 0.8;   % weight for perpendicular contribution
spc = w_perp*spc_perp + (1-w_perp)*spc_para;  % weighted sum

If you don't specify Exp.lightBeam, full isotropic excitation is assumed and Sys.tdm is ignored.