Calculating Transition Energies

General forum for EasySpin: questions, how to's, etc.
Post Reply
f_hwc
Newbie
Posts: 1
Joined: Wed Aug 09, 2023 9:21 am

Calculating Transition Energies

Post by f_hwc »

Hello,

I am working on a S=1/2 system with a I=7/2 nuclear spin.
For plotting the energy levels I use the function resfields with parallel and perpendicular driving.
This works really fine and I get some nice plots for both driving directions showing me the energy levels and the possible transitions for a given microwave frequency.

A very useful thing for me would be to calculate the transition energies as a function of the magnetic field for all possible transitions.
This is easily done by making use of the function resfreqs_matrix and iterating over a vector containing the magnetic field values.
As a result I get a matrix which contains the position in frequency space for all transitions as function of my input field B.

Of course the eigenvalues change in ther absolute value, so for low fields they are all messed up and I can't just take one column of my matrix and plot this line because the eigenvalue changes in its value.
To better illustrate it, I include my plot here, where you can see that the color changes within the line, because of the jump in eigenvalues.

So my question is: Is there a possibility to isolate one such transition and get a vector that follows one transition from B=0mT --> B=100mT. This would come in rather handy.
Maybe the answer is simple and I am missing something obvious here.

I'd appreciate some hints how to tackle this.
Cheers,
f_hwc

Attachments
Transition Energies, S=1/2, I=7/2
Transition Energies, S=1/2, I=7/2
transition_energies.png (29.22 KiB) Viewed 8193 times
katarkon
Local Expert
Posts: 186
Joined: Mon Jan 12, 2015 4:01 am

Re: Calculating Transition Energies

Post by katarkon »

The output of resfreq_matrix() is always sorted according to increasing of the energy. You may try to calculate the energy of single selected transition using Opt.Transitions parameter. Also, resfreq_matrix() may show a pair of energy levels for each transition (third output of the function) which probably may be used for sorting. However, I don't shure that theese pairs are kept the same with the changing of the field.

thanasis
Local Expert
Posts: 242
Joined: Thu Jan 21, 2016 6:28 am
Location: Strasbourg

Re: Calculating Transition Energies

Post by thanasis »

In equivalent terms, the problem at hand is the labeling of the spin states. As far as I understand, there is no consistent way to describe those, which is why Easyspin numbers them by increasing energy at each magnetic field.

katarkon
Local Expert
Posts: 186
Joined: Mon Jan 12, 2015 4:01 am

Re: Calculating Transition Energies

Post by katarkon »

Thanks, thanasis. You absolutely right. The problem of the definition of the levels is occur at crossing/anticrossing points. It seems, there are no any convenient way to solve the problem.

Stefan Stoll
EasySpin Creator
Posts: 1050
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: Calculating Transition Energies

Post by Stefan Stoll »

Correct. Level crossings can be regarded as avoided crossings with the gap energy going towards zero. Therefore, there is no way to consistently label energy levels other than just by increasing (or decreasing) energy.

katarkon
Local Expert
Posts: 186
Joined: Mon Jan 12, 2015 4:01 am

Re: Calculating Transition Energies

Post by katarkon »

Here the example demonstrating the problem.
clear;
Op.Threshold=0.001;
Exp.mwFreq=9.65;

Sys.g=gfree;
Sys.A=mt2mhz([200 120]/10);
Sys.Nucs='1H,1H';
Exp.Range=[0 20];
Exp.nPoints=256;
B=linspace(Exp.Range(1),Exp.Range(2),Exp.nPoints);
for i=1:numel(B)
B0=[0 0 B(i)];
H = sham(Sys,B0);
E(i,:)=eig(H,eye(size(H)),'qz');
end
plot(B,E);
Sys.g=gfree;
Sys.A=mt2mhz([120 200]/10);
Sys.Nucs='1H,1H';


for i=1:numel(B)
B0=[0 0 B(i)];
H = sham(Sys,B0);
E(i,:)=eig(H,eye(size(H)),'qz');
end
figure(2);
plot(B,E);

The spin hamiltonian is artificially diagonalized by 'qz' method, which keeps the order of the rows.

Attachments
fig2.png
fig2.png (13.33 KiB) Viewed 8044 times
fig1.png
fig1.png (14.21 KiB) Viewed 8044 times
katarkon
Local Expert
Posts: 186
Joined: Mon Jan 12, 2015 4:01 am

Re: Calculating Transition Energies

Post by katarkon »

Here the plots of default diagonalization routhine.

fig1_.png
fig1_.png (13.21 KiB) Viewed 8044 times
fig2_.png
fig2_.png (13.21 KiB) Viewed 8044 times
Post Reply