RESTRAINTS IN IFEFFIT
Hi Folks, this is my first message on the list. Perhaps someone could help me. The subject is how to include restraints on exafs refinement. There is just scanty information about this on the ifeffit reference manual. I'm trying to refine the exafs data of a rhombohedral perovskite. The main MS contributions to the signal at about 3.5 A (non phase correct) arise from M O M interactions being M the absorber . We have a significant SS path, a two-legged and a three-legged path. The structural parameters of these three terms are correlated since all refers to the same A-B-C triangle and the A-B and B-C distances must be that found for M-O1 nearest-neighbor configurations. For these reasons we constrained the photo electron path length for three-legged to the M-O nearest-neighbor distance:R(three-leg = 2*RM-O). I'm trying to intoroduce the quantity defined as delta = R(three-legged)-R(two-legged) and thus define the SS half path length as a function of delta R(SS) = R (three-legged) - 2*delta. I think it is a restraint not a constraint. So I defined (def) the delta function on the line above the command FEFFIT also delr for the SS path. I introduced the restraint in the line FEFFIT as restraint = delrSS). The fit produce the same results as obtainde without the definition of delta and delrSS (function of delta). So I need to know how to introduce this restraint in the fit in order to calculate de M - O - M bond angle (this angle should be calculated using simple geometric relationships) - perhaps introduce the bond angle as a restraint. Someone can say me where I introduce the definitions of restraint parameters? Thank you very much for your kind attention Renato Canha Universidade Federal do Rio Grande doNorte Departamento de Quimica Natal - RN - BRAZIL Open WebMail Project (http://openwebmail.org) ---------- Original Message ----------- From: ifeffit-request@millenia.cars.aps.anl.gov To: ifeffit@millenia.cars.aps.anl.gov Sent: Mon, 23 Jan 2006 12:00:13 -0600 Subject: Ifeffit Digest, Vol 35, Issue 14
Send Ifeffit mailing list submissions to ifeffit@millenia.cars.aps.anl.gov
To subscribe or unsubscribe via the World Wide Web, visit http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit or, via email, send a message with subject or body 'help' to ifeffit-request@millenia.cars.aps.anl.gov
You can reach the person managing the list at ifeffit-owner@millenia.cars.aps.anl.gov
When replying, please edit your Subject line so it is more specific than "Re: Contents of Ifeffit digest..."
Today's Topics:
1. Re: Re: I should be able to find this somewhere... (Bruce Ravel)
----------------------------------------------------------------------
Message: 1 Date: Sun, 22 Jan 2006 16:58:07 -0600 From: Bruce Ravel
Subject: Re: [Ifeffit] Re: I should be able to find this somewhere... To: XAFS Analysis using Ifeffit Message-ID: <200601221658.07513.bravel@anl.gov> Content-Type: text/plain; charset="iso-8859-1" Hi,
In fact, Artemis and Athena both attempt to deal correctly with input chi(k) data that is not on the expected grid. Both codes perform a test to see if the data is on the standard grid and, if not, front-loads the data with zeros and uses Ifeffit's boxcar rebinning function to put the data on the expected grid.
Alas, there was a bug in the rebinning macro used by A&A which caused it to fail in a particular situation met by the data in Matthew's example. This bug will be fixed in the next release.
If you import mu(E) data into Athena and then import data from the Athena project file into Artemis, you will never see the problem that Matthew reported.
B
On Tuesday 17 January 2006 16:09, Matt Newville wrote:
Hi Matthew, Bruce,
OK, I think it's a bug. Well, maybe it's just a consequence of a "known but not well advertised" problem.
The chi(k) data you have doesn't start at k=0. By itself, this should be OK, and the fit seems to be mostly fine. There seems to be a bug in Ifeffit that the output fit chi(k) has the same number of data points as the input chi(k) data. In this case is incorrect -- it should go to the last data point in k. From looking at the code, I'm pretty sure this has no effect on the fit and is only an error in the output array. But the shortened chi_fit(k) will have an impact on the way Bruce is calculating the residual. Even if that were fixed, the residual would still be wrong, as the residual in Artemis is calculated as set(data0_res.k = data0.k) set(data0_res.chi = data0.chi - data0_fit.chi)
and then Fourier transforming to R-space. Since the data and fit aren't aligned in k-space, the residual is incorrect. It should be
set(data0_res.chi = data0.chi - interp(data0_fit.k, data0_fit.chi, data0.k))
or some variation on that.
Sorry for the trouble. It's definitely a result of narrow-mindedly expecting that all chi(k) data comes from Ifeffit/Athena and will always start at k=0. We should get this fixed (it's mostly there!) so that data from other sources can be used. Right now, the easiest work-around is to pre-pack the chi(k) data with zeros (starting from k=0.00)
--Matt
_______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
-- Bruce Ravel ---------------------------------------------- bravel@anl.gov
Molecular Environmental Science Group, Building 203, Room E-165 MRCAT, Sector 10, Advance Photon Source, Building 433, Room B007
Argonne National Laboratory phone and voice mail: (1) 630 252 5033 Argonne IL 60439, USA fax: (1) 630 252 9793
My homepage: http://cars9.uchicago.edu/~ravel EXAFS software: http://cars9.uchicago.edu/~ravel/software/
------------------------------
_______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
End of Ifeffit Digest, Vol 35, Issue 14 *************************************** ------- End of Original Message -------
Dear Renato,
On 1/24/06, Renato Canha Ambrosio
I'm trying to refine the exafs data of a rhombohedral perovskite.>> The main MS contributions to the signal at about 3.5 A (non phase correct)> arise from M – O – M interactions being M the absorber . We have a> significant SS path, a two-legged and a three-legged path. The structural> parameters of these three terms are correlated since all refers to the same> A-B-C triangle and the A-B and B-C distances must be that found for> M-O1 nearest-neighbor configurations. For these reasons> we constrained the photo electron path length for three-legged to the> M-O nearest-neighbor distance:R(three-leg = 2*RM-O). I'm trying to> intoroduce the quantity defined as delta = R(three-legged)-R(two-legged)> and thus define the SS half path length as a function of delta R(SS) = R> (three-legged) - 2*delta. I think it is a restraint not a constraint. OK, though I'm not entirely sure. You're trying to say for linearpaths the 3-leg path should be slightly longer than the 2-leg pathbecause of the thermal motion of the atom normal to the line? That isa reasonable concern (I think you want to include 4-leg paths too), but I think the effects will be difficult to detect. Shelly gave avery clear answer about handling the path geometry. So I defined (def) the delta function on the line above the command FEFFIT> also delr for the SS path. I introduced the restraint in the line FEFFIT as> restraint = delrSS). The fit produce the same results as obtainde without> the definition of delta and delrSS (function of delta). Hmm, I think I don't understand what you did. This was with Artemis,right? Could you send a project file? So I need to know how to introduce this restraint in the fit in order to> calculate de M - O - M bond angle (this angle should be calculated using> simple geometric relationships) - perhaps introduce the bond angle as a> restraint. It sounds like you probably understand that the idea of a restraint isto have an additional term to the residual vector (residual = data -fit) that is minimized in the chi-square way of "least sum ofsquares". In effect you're adding another piece of data and it'sexpected value to the fit of the EXAFS data. For more info, youmight also look at this older post: http://millenia.cars.aps.anl.gov/pipermail/ifeffit/2003-July/000394.html OK, on to trying to set up a restraint on the bond angle. I'll assumehere that you have a linear M-O-M path and want to restrain the bondangle to be close to linear. (I'm not sure this is what you're areasking for, but it seems close). To do that, you could define theoff-normal-line displacement of the oxygen (middle atom) and bondangle: guess del_offnormal = 0.0 def bond_angle = atan(del_offnormal / R_MO) where R_MO was the nominal M-O distance (or distance between latticepoints), then define a restraint penalty if bond_angle is far from 0: set scale_factor = 1 def angle_restraint = ( (bond_angle - 0.0) / SCALE_FACTOR ) You can use this restraint in the feffit() command: feffit(chi = data.chi, 1,2,3, ........, restraint = angle_restraint, .... ) The important bit is the scale_factor, indicating how tightly you wantthe restraint to be (that is, how big of a penalty a bond angle of0.01 radians should give the fit). At this point, you'll have toplay with this value somewhat empirically: we don't have a veryconvenient way to put real units on this value. Hope that helps, --Matt
participants (2)
-
Matt Newville
-
Renato Canha Ambrosio