frequency dependence of resonance fields (Florida plot)

General forum for EasySpin: questions, how to's, etc.
Post Reply
angerhofer
Newbie
Posts: 1
Joined: Sat Nov 07, 2015 7:29 pm

frequency dependence of resonance fields (Florida plot)

Post by angerhofer »

I am struggling to try to generate a frequency dependence plot of the resonance fields for a S=2 spin system with easyspin, similar to the 'field/frequency maps' the magnetlab people often publish. Is there an example or a script where this has already been implemented? I know I can do it in principle with a for loop and calculating the resonance fields for a given frequency but the problem is how to keep track of transitions that belong together and how to deal with the fact that depending on frequency you end up with variable numbers of transitions. In the end, the resonance fields for a given transition should be plotable, i.e., there should be a data table that has frequency as its first column followed by the resonance fields for the various transitions in the following columns.
Thanks, Alex.
Stefan Stoll
EasySpin Creator
Posts: 1120
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: frequency dependence of resonance fields (Florida plot)

Post by Stefan Stoll »

Due to the potential occurrence of looping transitions (several resonance fields for a given pair of levels and a given spectrometer frequency), it is nontrivial to construct a simple list of resonance fields as a function of frequency. However, the inverse - resonance frequencies as a function of magnetic field - is much easier.

Here is a script that does it. It uses a for loop and calls resfreqs_matrix for each magnetic field value. The key is to ask it to calculate frequencies and intensities for all transitions using Opt.Transitions='all'. Otherwise, EasySpin will automatically select only transitions with non-negligible intensities - and this subset might depend on the magnetic field.

In the second step, the script eliminates transitions that are too weak to be of relevance.

Code: Select all

% Generate a field-frequency plot, i.e. a 2D plot of resonance frequencies as
% a magnetic field.
%
% This plot is sometimes called a "Florida plot" in reference to the high-magnetic
% field laboratory in Florida, where this type of data is very often measured.

clear, clc, clf

%=======================================================================
% Spin system parameters and crystal orientation
Sys.S = 3/2;
Sys.g = 2;
Sys.D = 30e3*[1 0.1]; % MHz
Exp.CrystalOrientation = [30 40 0]*pi/180;

% Field range parameters
Bmax = 14; % maximum field, T
nPoints = 301; % number of points along field axis

% Plotting parameters
numax = 700;  % maximum frequency, GHz
Threshold = 0.01; % lower transition intensity threshold (max. intensity is 1)

%=======================================================================

B = linspace(0,Bmax,nPoints); % field range vector, T

Opt.Transitions = 'all'; % calculate all orientations

% Calculate frequencies for all transitions for all fields
for iB = numel(B):-1:1
  Exp.Field = B(iB)*1e3;
  [nu(:,iB),Int(:,iB),~,Trans] = resfreqs_matrix(Sys,Exp,Opt);
end
nu = nu/1e3; % MHz -> GHz

% Remove transitions with intensities below threshold
if (Threshold>0)
  rmv = max(Int,[],2)<Threshold*max(Int(:));
  nu(rmv,:) = [];
  Int(rmv,:) = [];
  Trans(rmv,:) = [];
end

% Plot resonances
plot(B,nu);
xlabel('magnetic field (T)');
ylabel('frequency (GHz)');
ylim([0 numax]);

% Annotate transitions with level pairs
for t = 1:size(nu,1)
  txt = sprintf(' %d-%d',Trans(t,1),Trans(t,2));
  if nu(t,end)<numax
    text(max(B),nu(t,end),txt);
  else
    [~,idx] = min(abs(nu(t,:)-numax));
    h = text(B(idx),numax,txt);
    set(h,'VerticalAl','bottom','HorizontalAl','center');
  end
end
Post Reply