Pepper simulation depends on field range

A place to report and discuss potential bugs
Post Reply
howardjou
Newbie
Posts: 2
Joined: Thu Oct 07, 2021 2:28 pm

Pepper simulation depends on field range

Post by howardjou »

Hi everyone,
I try to simulate an 1 electron and 2 nuclei system by pepper.
However, I notice that the simulation depends on the exp.range I use.
I have set exp.npoint = 100000, so I don't think number of points is the reason.

Here is my code. The result of Exp.range = [0 18000] and Exp.range = [10000 18000] are different.
I don't know how to post pictures in this topic. You can run this code in different Exp.range and notice that the simulation depends on field range.

Code: Select all

Sys.g = [1.99 1.999];
Sys.S = 1/2;
Sys.lwpp = 20;

Sys.A = [500 10; 100 10]; 
Sys.Nucs = 'Mn, Mn';
Exp.nPoints = 100000;
Exp.mwFreq =397.3; %in GHz
Exp.Temperature = 10; %in K
Exp.Range = [0 18000]; %in mT
Exp.Harmonic = 1;

Exp.Mode = 'perpendicular';
[B, spec] = pepper(Sys,Exp);
spec = (spec - min(spec)) ./ (max(spec) - min(spec));

plot( B/1000, (spec - mean(spec)), 'r')
xlim([14 14.5]);
Stefan Stoll
EasySpin Creator
Posts: 1050
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: Pepper simulation depends on field range

Post by Stefan Stoll »

What's happening here is that the automatic transition selection is not identifying all EPR transitions. This happens for two reasons: (a) the field range is much wider than the spectral range, (b) there are several nuclei with hyperfine couplings that give (almost) degenerate energy levels.

There are several ways around this:

  • Turn automatic transition selection off with Opt.Threshold = 0.
  • Use perturbation theory instead of matrix diagonalization, with Opt.Method = 'perturb2'.

Here is a script were the simulated spectrum is now independent of the field range:

Code: Select all

clear

Sys.S = 1/2;
Sys.g = [1.99 1.999];
Sys.A = [500 10; 100 10]; 
Sys.Nucs = 'Mn, Mn';
Sys.lwpp = 20;

Exp.nPoints = 100000;
Exp.mwFreq = 397.3; %in GHz
Exp.Temperature = 10; %in K

Exp.Range = [0 18000]; %in mT
%Exp.Range = [10000 18000]; %in mT
%Exp.Range = [14000 14500]; %in mT

Opt.Method = 'perturb2';
[B,spec1] = pepper(Sys,Exp,Opt);

Opt.Method = 'matrix';
Opt.Threshold = 0;
[B,spec2] = pepper(Sys,Exp,Opt);

plot(B/1e3,spec1,B/1e3,spec2)
xlim([14 14.5]);

Another comment: It looks like you don't have any resolved hyperfine splittings. In this case, it might be more efficient to exclude the nuclei and instead use an anisotropic line broadening with Sys.HStrain.

howardjou
Newbie
Posts: 2
Joined: Thu Oct 07, 2021 2:28 pm

Re: Pepper simulation depends on field range

Post by howardjou »

Thank you so much

Post Reply