Five nucleus spin system

General forum for EasySpin: questions, how to's, etc.
Post Reply
kkngo
Newbie
Posts: 2
Joined: Thu Dec 24, 2020 10:00 pm

Five nucleus spin system

Post by kkngo »

Hi Everyone,
I have a 5 nucleus spin system which is centered around Cobalt. When I try to run cwEPR (pepper) the run crashes because the matrix is too large. I defined my electronic properties in Orca and imported them through the intrinsic in Matlab. Orca generated the A and D matricies. Attached below is my source code for my easy spin run:

Code: Select all


Sys = orca2easyspin('Input.prop')
Sys = nucspinkeep(Sys,[1,2,3,4,5])
%Nuclei are Sb, I, I, Sb, Co in that order

disp(Sys.Nucs)
Sys.S = 3/2;
Sys.lwpp = [0 0.65];    % mT


Exp.mwFreq = 9.353;      % GHz

Exp.Range = [150 500];  % mT

Exp.CrystalOrientation = [0 0 0];

Opt.Method = 'hybrid';
Opt.HybridCoreNuclei = [5];

Opt.nKnots = [51 0];
Opt.Sparse = true;


pepper(Sys,Exp, Opt);

I have tried reducing both number for nKnots and turned on sparse matrices. I am a little stuck on how to run this system because of the large matrices.

I am running Matlab on a 28 core socket with 192GB/s of ram on a linux system.
Easyspin version: 6.0.0-dev.27

I am receiving the following error:

Code: Select all

Error using full
Requested 41472x41472 (12.8GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long
time and cause MATLAB to become unresponsive.

The system I am using allows for the use of distributed computing toolbox, but not parallel computing.

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

Re: Five nucleus spin system

Post by Stefan Stoll »

Please post a self-contained example script that we can reproduce this.

kkngo
Newbie
Posts: 2
Joined: Thu Dec 24, 2020 10:00 pm

Re: Five nucleus spin system

Post by kkngo »

Hi Dr. Stoll,
Sorry it took so long, but I had to make sure I had all the permissions set before sharing this code.

Code: Select all

clear;
%Sys = orca2easyspin('Input.prop');
%Sys = nucspinkeep(Sys,[1,2,3,4,5])
Sys.Nucs = 'I,Sb,Sb,I,Co';
Sys.D = [-4.897778336925471e+04,5.766235547677643e+03,6.827539994337564e+04];
Sys.DFrame = [-2.792456420739788,1.740248025194408,-2.609481327513327];
Sys.A = [-0.364997432727752,-1.10701735662493,1.46189811729952;-0.654759772474870,-0.679309783869525,2.50913416847102;-0.698874349503253,-0.719472460370598,2.44576996966903;-0.441451302490090,-0.981277312118734,1.40563979971354;30.7435981184228,98.4571117336887,119.803800917054]
Sys.AFrame = [-1.97233397373891,0.119450489648948,0.00234999405190207;1.19613637162092,1.47249933217764,-0.900702887819311;1.01775412704994,1.17608107170947,-3.02010789001976;0.179723575422524,1.06005264995437,1.09298799017839;-1.29162763251515,0.573905407762491,0.977169203807762];
Sys.g =[2.078216296016597,2.085474940362497,2.092198713033703];
Sys.gFrame = [-0.806093806693224,2.499919918323644,0.423957574457957];
Sys.xyz = [0.0966660804754963,-0.997724894907766,2.63521553296251;1.92960119949163,1.07585669529209,-0.244640841203378;-1.90000820934606,-0.494761232433709,-0.895784804406327;1.40772247692453,-2.88737942420290,-1.11895216550408;0.368416971812227,-0.818883064028050,0.0478363602353050];

disp(Sys.Nucs)
Sys.S = 3/2;
Sys.lwpp = [0 0.65];    % mT

Exp.mwFreq = 9.353;      % GHz
Exp.Range = [0 500];  % mT
%Exp.Range = [50 40000];  % mT
%Exp.CrystalOrientation = [0 0 0];
%Exp.Temperature = 10; % temperature in kelvin

%Opt.Method = 'perturb2';
Opt.Method = 'hybrid';
Opt.HybridCoreNuclei = [5];
%Opt.nKnots = [61 0];
Opt.nKnots = [11 0];
Opt.Sparse = true;
Opt.Verbosity=1;

pepper(Sys,Exp,Opt);

%pepper(Sys,Exp, Opt);

I keep running into memory issues due to large matrices. Are there further steps I can take to reduce run times?

Matt Krzyaniak
EasySpin Guru
Posts: 154
Joined: Tue Jul 22, 2014 11:01 am
Location: Northwestern University

Re: Five nucleus spin system

Post by Matt Krzyaniak »

Stefan might have a better fix however just a couple things to note:
Your Hilbert space is rather large so it isn't surprising you're running into memory issues.
hsdim(Sys)

ans =

41472

However, looking at your spin system, you could probably trim the down quite a bit. Your antimony and Iodine have rather small hyperfine interactions and I would be surprised if you could actually resolve them in a CW-EPR spectrum, unless you're looking at a single crystal. The HFI is ~ 2 MHz which would correspond to a splitting of ~ 0.07 mT and something that is likely to be swallowed up in the spectral linewidth. So by removing those your Hilbert space drops to size 32, and no more memory problems.

A good practice is to specify the nuclear isotopes rather than just the nucleus. The only good time to leave them general is in cases like antimony where the stable isotopes are relatively evenly split.

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

Re: Five nucleus spin system

Post by Stefan Stoll »

I agree with Matt that from your spin system definition it looks the I and Sb splittings might not be resolved, particularly since you are using Sys.lwpp = [0 0.65], which is about 20 MHz and quite a bit larger than the 1-2 MHz hyperfine couplings. Then leaving Sb and I out is the best option.

If you do see these splittings experimentally, consider using hybrid mode with Opt.Method = 'hybrid'. This will simulate the electron spin using matrix diagonalization, and all the nuclei using perturbation theory.

YanQing
User
Posts: 14
Joined: Tue Dec 22, 2020 7:17 pm

Re: Five nucleus spin system

Post by YanQing »

From the perspective of A, the first four magnetic core splittings can be completely ignored. (Even if you work hard to figure it out, the X-band will be completely buried by the splittings of Co) .It is a simple mononuclear Co compound. So I deleted the calculation parameter items other than -Co and got the approximate EPR spectrum of this compound.

code:

clear;

Sys.Nucs = 'Co';
Sys.D = [-4.89+04,5.766+03,6.827+04];
Sys.DFrame = [-2.792,1.74,-2.609];
Sys.A = [30.74,98.45,119.8];
Sys.AFrame = [-1.29,0.5739,0.977];
Sys.g =[2.078,2.085,2.092];
Sys.gFrame = [-0.80,2.49,0.42];
Sys.xyz = [0.368,-0.8188,0.0478];

disp(Sys.Nucs)
Sys.S = 3/2;
Sys.lwpp = 1;

Exp.mwFreq = 9.353;
Exp.Range = [250 360];

%Opt.Method = 'perturb2';
% Opt.Method = 'hybrid';
Opt.HybridCoreNuclei = [5];
%Opt.nKnots = [61 0];
Opt.nKnots = [11 0];
Opt.Sparse = true;
Opt.Verbosity=1;

pepper(Sys,Exp,Opt);

Attachments
SharedScreenshot.jpg
SharedScreenshot.jpg (72.37 KiB) Viewed 3577 times
Post Reply