Page 1 of 1

Coupling two radical spins

Posted: Wed Oct 11, 2017 9:43 pm
by Abbey Philip
Hi,
I have an EPR spectrum where two individual radical spins (no coupling) exist with hyperfine coupling in a donor-acceptor system.

How can I convert the current spectrum to a situation where the two spins are coupled with each other?
Which parameters (exchange, dipolar coupling etc) are important while coupling the two spins?

I'm just a beginner in EPR acquisition and simulation, any help in this direction would be appreciated.

Code: Select all

clear

%Experimental spectrum
[B,spc] = eprload('Exp');

%Spin A(acceptor):
SysA.S = 1/2;
SysA.g = [2.00986];
SysA.Nucs = '14N,1H,1H,1H,1H';
SysA.A = [1.74,4.810,2.2,1.63,0.36];
SysA.weight = 2.50;
SysA.lwpp = [0.6];
VaryA.A = [0.1,0.1,0.1,0.1,0.1];
VaryA.g = [0.5];
VaryA.lwpp = 0.5;
VaryA.weight = 0.3;

%Spin D (donor):
SysD.S = 1/2;
SysD.g = [2.009967];
SysD.weight = 0.908;
SysD.lwpp = [0.15566];
SysD.Nucs = '1H,1H,1H,1H,1H';
SysD.A = [18.81675,9.0468,3.9166,8.46,4.16];
VaryD.A = [0.2,0.2,0.2,0.2,0.2];
VaryD.g = [0.5];
VaryD.lwpp = 0.5;
VaryD.weight = 0.3;

%Defining the two spins together:
Sys = {SysD SysA};
Vary = {VaryD VaryA};

%Experimental details:
Exp.mwFreq = 9.452387;
Exp.Range = [320.873 350.873];
Exp.nPoints = 65536;
Exp.ModAmp = mhz2mt(0.1); %in mT
Exp.Temperature = 298; %in Kelvin
Exp.Mode = 'perpendicular';
B = linspace(Exp.Range(1),Exp.Range(2),Exp.nPoints); 

% Calling the fitting function
%SimOpt.nKnots = 35;
SimOpt.Method = 'perturb';
FitOpt.Method = 'simplex fcn'; % simplex algorithm, 
%FitOpt.Scaling = 'maxabs';
[fitparams,spc] = esfit('pepper',spc,Sys,Vary,Exp,SimOpt,FitOpt);

hold on;

%Loading experimental spectrum.
data=textread('Exp_Spec.dat');
x=data(:,1);
y=data(:,2);
plot(x,y,'k');

%Saving in ascii format
data = [B(:) spc(:)];
save('Code_ES_Sim.dat','data','-ascii');
plot(B,spc,'r');

hold off;


Please help if possible.

Re: Coupling two radical spins

Posted: Wed Oct 11, 2017 11:04 pm
by katarkon
I suggest You have to define the spin system with two coupling electron spins Sys.S=[0.5,0.5], Sys.g=[2.00986,2.009967]. And define electron-electron spin-spin coupling either via Sys.J or Sys.ee http://easyspin.org/easyspin/documentat ... em.html#ee. The nuclei list should be concatenated (one 14N and nine 1H for Your case). Hyperfine constants for each spin should be partly zeroes for each spin Sys.A = [1.74,4.810,2.2,1.63,0.36,0,0,0,0,0; 0,0,0,0,0,18.81675,9.0468,3.9166,8.46,4.16].
Good luck.

Re: Coupling two radical spins

Posted: Thu Oct 12, 2017 4:19 pm
by Abbey Philip
Thank you very much for your kind reply and the suggestions to couple the two spins. I have had made the suggested modification in the code, but I'm having the following error

Code: Select all

Error using resfields_perturb (line 83)
Perturbation theory available only for systems with 1 electron. Yours has 2.

Error in pepper (line 647)

Error in pepper (line 159)

Error in esfit>assess (line 831)

Error in esfit_simplex (line 77)

Error in esfit>runFitting (line 677)

Error in esfit (line 552)

Error in Code_ES_3_coupled (line 31)
[fitparams,spc] = esfit('pepper',spc,Sys,Vary,Exp,SimOpt,FitOpt);
The following is the modified code:

Code: Select all

clear

%Experimental spectrum
[B,spc] = eprload('Exp');

%Coupled Spin: 
Sys.S = [0.5,0.5];
Sys.g = [2.00986,2.009967];
Sys.J = 200;
Sys.Nucs = ['14N,1H,1H,1H,1H,1H,1H,1H,1H,1H'];
Sys.A = [1.74,4.810,2.2,1.63,0.36,0,0,0,0,0;0,0,0,0,0,18.81675,9.0468,3.9166,8.46,4.16];
Sys.weight = 2.50;
Sys.lwpp = [0.6];
Vary.A = [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1];
Vary.g = [0.5];
Vary.lwpp = 0.5;
Vary.weight = 0.3;

%Experimental details:
Exp.mwFreq = 9.452387;
Exp.Range = [320.873 350.873];
Exp.nPoints = 65536;
Exp.ModAmp = mhz2mt(0.1); %in mT
Exp.Temperature = 298; %in Kelvin
Exp.Mode = 'perpendicular';
B = linspace(Exp.Range(1),Exp.Range(2),Exp.nPoints); 

% Calling the fitting function
SimOpt.Method = 'perturb';
FitOpt.Method = 'simplex fcn'; % simplex algorithm, 
[fitparams,spc] = esfit('pepper',spc,Sys,Vary,Exp,SimOpt,FitOpt);

hold on;

%Loading experimental spectrum.
data=textread('Exp_Spec.dat');
x=data(:,1);
y=data(:,2);
plot(x,y,'k');

%Saving in ascii format
data = [B(:) spc(:)];
save('Code_ES_3_Sim.dat','data','-ascii');
plot(B,spc,'r');

hold off;



Re: Coupling two radical spins

Posted: Thu Oct 12, 2017 10:26 pm
by katarkon
You have use matrix diagonalization method instead perturbation theory. Just use SimOpt.Method = 'matrix'.

Re: Coupling two radical spins

Posted: Fri Oct 13, 2017 11:40 am
by Abbey Philip
Thank you for the suggestion. I have tried running the code with your suggestion, however the simulation seems stuck (for more than 3 hours) at the initial stage itself and terminated with the following error.

Code: Select all

Code_ES_3a
-- esfit ------------------------------------------------
Simulation function:      pepper
Problem size:             1 spectra, 1 components, 8 parameters
Minimization method:      Nelder/Mead simplex
Residuals computed from:  data as is
Scaling mode:             lsq0
---------------------------------------------------------
initial simplex...
Error using eig
EIG did not converge.

Error in resfields (line 1041)

Error in pepper (line 644)

Error in pepper (line 159)

Error in esfit>assess (line 831)

Error in esfit_simplex (line 77)

Error in esfit>runFitting (line 677)

Error in esfit (line 552)

Error in Code_ES_3a (line 34)
[fitparams,spc] = esfit('pepper',spc,Sys,Vary,Exp,SimOpt,FitOpt);
 
Is it because, I have many interacting nuclei in Sys.A?

Re: Coupling two radical spins

Posted: Fri Oct 13, 2017 8:53 pm
by katarkon
The spin system is really large. It have 6144 states, so the diagonalization of 6144x6144 matrix is required at least several times. It is really time-cost. It even does not start on my 32bit system due to insuffitient memory. However, I threw out two 1H nuclei and pepper finished after ~15min without errors.
You may try to start pepper with SimOpt.Verbosity=2 to localize the error.

Re: Coupling two radical spins

Posted: Sun Oct 15, 2017 10:55 pm
by katarkon
You may try to use the hybrid method after updating to last EasySpin version. It seems to be much faster and enough for Your spin system.

Re: Coupling two radical spins

Posted: Mon Oct 16, 2017 2:00 pm
by Abbey Philip
Thanks for the help and update regarding the hybrid method. I have updated to easyspin 5.2.7, however I'm facing a new issue when having more than two nuclei in the Sys.A.

Code: Select all

Error using isotopologues (line 321)
Sys.A size (2x8) is inconsistent with number of spins (2 electrons, 8 nuclei).
Using Opt.HybridCoreNuclei=[], is not helping.

Re: Coupling two radical spins

Posted: Mon Oct 16, 2017 3:18 pm
by Stefan Stoll
For 2 electron spins, N nuclei and isotropic hyperfine coupling, Sys.A needs to be an Nx2 and not a 2xN matrix. Each row of Sys.A must contain the hyperfine couplings of a particular nucleus to all electrons, as explained in the documentation.