[Ifeffit] RESTRAINTS IN IFEFFIT

Matt Newville newville at cars.uchicago.edu
Wed Jan 25 11:00:29 CST 2006


Dear Renato,
On 1/24/06, Renato Canha Ambrosio <rcanha at ccet.ufrn.br> wrote:> 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.
Yes, sorry about this. The reference manual and tutorial (and the wikiand faq) have been neglected for awhile.
> 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



More information about the Ifeffit mailing list