Additional line broadening for exchange() function
Posted: Mon Sep 19, 2016 4:16 am
I have found that exchange() function is quite useless when exchange process is accompanied by "thumbling effect" (or correlation time of the fastmotion regime is comparable with the sites lifetimes), especially when esfit() function is used. I proposed that including of additional broadening should solve the problem.
The code of exchange() function contains folow fragments responsible for linewidths:
So, the main diagonal of M0 matrix contains linewidths in MHz multiplied by -pi. Also I found that Sys.lw may be a vector with separate linewidths for each site, but code for M0 calculation should be changed:
So, additional broadening should be incorporated at [U,Lambda] calculation step:
where lb(iLine) should be a vector with line broadening for each site (in the same units as Gamma variable, of course).
It is a problem to define the reasonable lb values. I suggest that fhe function fastmotion() may be used (for each site, of course):
But it there is a problem occurs: will the output of fastmotion() function the same as line order in exchange() function or not? And will the idea be working in generally?
The code of exchange() function contains folow fragments responsible for linewidths:
Code: Select all
...
if ~isempty(Sys.lw) && isempty(Sys.lwpp), Sys.lwpp = Sys.lw/sqrt(3); end
...
lwpp = mt2mhz(Sys.lwpp,mean(Sys.g)); % field to frequency conversion
Gamma = lwpp*pi*sqrt(3); % peak-to-peak lw -> Gamma (= 1/T2) conversion
...
M0 = -Gamma*eye(nSites) + X;
...
for iLine = 1:nLines
[U,Lambda] = eig(M0 - diag(1i*nu(iLine,:)));
Lvalues(:,iLine) = diag(Lambda);
Svalues(:,iLine) = (Det*U).'.*(U\Pop);
end
Code: Select all
if numel(Gamma)==1
M0 = -Gamma*eye(nSites) + X;
else
M0 = diag(-Gamma) + X;
end
Code: Select all
[U,Lambda] = eig(M0 - diag(lb(iLine)) - diag(1i*nu(iLine,:)));
It is a problem to define the reasonable lb values. I suggest that fhe function fastmotion() may be used (for each site, of course):
Code: Select all
lb=fastmotion(Sys,mean(Exp.Range),tcorr);
lb=lb-min(lb);
lb=mt2mhz(lb,mean(Sys.g))*pi;