Dstrain relation to D

General forum for EasySpin: questions, how to's, etc.
Post Reply
thanasis
Local Expert
Posts: 241
Joined: Thu Jan 21, 2016 6:28 am
Location: Strasbourg

Dstrain relation to D

Post by thanasis »

I am studying a series of similar S = 3/2 systems with varying D parameters. The |D| values can vary from ~0 to 0.11 cm-1, so X-band is very good to measure them. The signals are very clear throughout the entire temperature range from 4 to 300 K in the solid state.

My problem is choosing a model for line broadenings. Simple Gaussian or Lorentzian broadenings do not give very good results and I found that Dstrain can give very good agreements with the data. However, I can get quite large broadenings. They can vary from 30-40% of D for larger D's, up to ~100% of D for the more isotropic systems.

Based on the definition of Dstrain, does it have constrains based on the value of D? Or since D can vary from -|D| to |D| we can have a significant Dstrain even when |D| ~ 0?

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

Re: Dstrain relation to D

Post by Stefan Stoll »

If your values for DStrain are this large compared to D, I suggest to use an explicit loop over your own distribution of D value, simulate the spectrum for each of them, and sum the results using the weights from your distribution. The problem with DStrain is that it is only a first-order approximation that breaks down if the broadening is on the order of D.
thanasis
Local Expert
Posts: 241
Joined: Thu Jan 21, 2016 6:28 am
Location: Strasbourg

Re: Dstrain relation to D

Post by thanasis »

Dear Stefan,

Thanks for the pointer. In the past, I had used such an approach to fit a non-normal g-strain. However, I don't know whether my approach was optimal. First, I defined a series of systems with differing g(i) and initialised them at a Gaussian weight distribution:

Code: Select all

for i=1:n
    gxy(i)= gxymin+(i-1)*((gxymax-gxymin)/(n-1));
    Sys(i).S=1/2;
    Sys(i).g=[gxy(i) gz];
    p1(i) = -0.5*(gxy(i)-gxyav)/s;
    p2 = (s*sqrt(2*pi));
    Sys(i).weight = exp(-p1(i)^2)/p2; % This will start the weight from a Gaussian-like distribution to help the minimization function
    Sys(i).lwpp=[w1 w2];
end
Then, I varied the weights during the fits (in this example within 20% of their absolute value):

Code: Select all

for i=1:n
Vary(i).weight = Sys(i).weight/5;
end
Is this along the lines you had in mind, or is there a better way?

Additional questions/comments:
-Apart from the numeric aspect, do you find it objectionable from a physical perspective to have D distribitions with FWHM of the order of D?
-This approach implies that I am confined to n = 30 steps in my distribution, which is ES's fitting variable limit. Should I worry about that, or are 30 steps more than enough?
-To invoke esfit, I need to use an extremely ugly long-hand command like:

Code: Select all

esfit('pepper',spc,{Sys(1),Sys(2),Sys(3),Sys(4),Sys(5),Sys(6),Sys(7),Sys(8),Sys(9),Sys(10),Sys(11),Sys(12),Sys(13),Sys(14),Sys(15),Sys(16),Sys(17),Sys(18),Sys(19),Sys(20),Sys(21),Sys(22),Sys(23),Sys(24),Sys(25),Sys(26),Sys(27),Sys(28),Sys(29),Sys(30)},{Vary(1),Vary(2),Vary(3),Vary(4),Vary(5),Vary(6),Vary(7),Vary(8),Vary(9),Vary(10),Vary(11),Vary(12),Vary(13),Vary(14),Vary(15),Vary(16),Vary(17),Vary(18),Vary(19),Vary(20),Vary(21),Vary(22),Vary(23),Vary(24),Vary(25),Vary(26),Vary(27),Vary(28),Vary(29),Vary(30)},Exp,[],FitOpt);
which needs to be manually rewritten each time I need to change n.
I tried to use code such as this to automatically create the required strings:

Code: Select all

for i=1:n
Vary(i).weight = Sys(i).weight/5;
VaryNames{i} = ['Vary(',num2str(i),')'];
end
VarySum = strjoin(VaryNames,',');
but could never correctly invoke the VarySum string during esfit. Do you see a way around this?

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

Re: Dstrain relation to D

Post by Stefan Stoll »

For averaging over a D distribution, search this forum (for "strain" for example). The same question has come up several time already.

It is totally plausible to have very wide D distributions. In some cases, D is very sensitive to the molecular geometry, so that a distribution in geometries will lead to wide D distributions.

Regarding esfit, it's best to write your own custom simulation function that contains the distribution loop. See the documentation on least-squares fitting for that.
thanasis
Local Expert
Posts: 241
Joined: Thu Jan 21, 2016 6:28 am
Location: Strasbourg

Re: Dstrain relation to D

Post by thanasis »

OK, I realised that there was an example (http://easyspin.org/easyspin/examples/s ... ogeneous.m) that treats this exact issue.

I have modified it to run simulations on D distributions and seems to be working fine.

I just have one question. In the declaration:

Code: Select all

gx = gx0 + linspace(-1,1,N)*gxlw*2.5;
what is the 2.5 multiplicative factor?

I will now attempt to make a fitting function.
Stefan Stoll
EasySpin Creator
Posts: 1047
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: Dstrain relation to D

Post by Stefan Stoll »

It sets up a domain from -2.5 to +2.5 times the width (gxlw) around the center (gx0).
thanasis
Local Expert
Posts: 241
Joined: Thu Jan 21, 2016 6:28 am
Location: Strasbourg

Re: Dstrain relation to D

Post by thanasis »

In your experience, is this value property-specific? Should I play around with smaller or larger values to model D distributions?
Stefan Stoll
EasySpin Creator
Posts: 1047
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: Dstrain relation to D

Post by Stefan Stoll »

No, it is not. It assures that the wings of the distribution are not truncated.
thanasis
Local Expert
Posts: 241
Joined: Thu Jan 21, 2016 6:28 am
Location: Strasbourg

Re: Dstrain relation to D

Post by thanasis »

OK, got it, thanks.

In the post viewtopic.php?f=3&t=234 you mention that we should start considering hand-made distributions for Dstrains above 10% of D. Is there a similar rule of thumb for g? Up till which values is gStrain safe to use?

Also, I found that using the lorentzian or voigtian Matlab functions we can define distributions like with the use of gaussian that you propose in the example above. For powders or frozen solutions, are there theoretical/experimental principles that can justify/guide our selection of distribution function, or is it strongly system-dependent and each model should be explicitly tested?

Thanks again.
Stefan Stoll
EasySpin Creator
Posts: 1047
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: Dstrain relation to D

Post by Stefan Stoll »

10% is not a hard limit and will depend on the situation. You can always check whether the built-in DStrain/gStrain approach works for a given distribution width by comparing it to an explicit weighted summation over the distribution.

Regarding the shape of the distribution, your experimental spectrum is the best guide. The shapes of the distributions will vary depending on molecule, its environment, and the spin Hamiltonian parameter under investigation.
Post Reply