[Ifeffit] Amplitude and the EXAFS equation

Bruce Ravel ravel at phys.washington.edu
Tue Oct 29 14:20:13 CST 2002

Hi folks,

Today I received one of the top-ten most asked questions.  I am going
to take a stab at answering it here in an archived forum.  I am sort
of hoping to get a discussion going and get several people's

An Artemis user observed in her email that, in the EXAFS literature,
people often publish values for coordination number.  She asked how
one obtains that using Artemis/Ifeffit.

If only there were an easy answer to this question!  It turns out
that, in the EXAFS equation, there are two terms that directly affect
the amplitude.  One is N, the coordination number (or one might say
"the path degeneracy"), and the other is S02, the so-called passive
electron reduction factor.

S02 is, according to popular wisdom, chemically transferable.  This
means that if you somehow have determined S02 for a given central atom
in one compound, you can use this value for some other compound.
While this may be true, particularly if a standard and a sample are
measured back-to-back under identical experimental conditions, it is
not a safe course of action.  The problem is that lots of empirical
effects can also change the measured amplitude.  These may include
things like detector response, sample inhomogeneity, and those
annoying gremlins that sneak into the hutch when you're not looking.

Assuming, though,that you know S02 and you are confident that
empirical problems are a small factor, then the "S02" path parameter
can often be interpreted simply as the coordination.  If, however,
you are not confident of S02 or of the smallness of the empirical
effects, the situation is somewhat more complicated.

A common assumption is that you should be able to determine S02 *and*
coordination simultaneously from data.  This is, at best, extremely
difficult to do with statistical significance and, at worst, flatly
impossible.  If you are fitting only one shell of data, then it is
certainly impossible.

Why do I say that?  Well, consider how coordination (N) and S02 enter
the EXAFS equation:

               N * S02 * F(k)
   chi(k) =  ------------------ sin( 2kR + delta(k) ) exp(-2ksigma^2)

This is the generic formula.  In Feff, Ifeffit, and Artemis, this is
the the expression for chi(k) for a particular path.  The data chi(k)
is fit by evaluating this equation for one or more paths then summing
them up.

In that equation, note that N and S02 are both multiplicative factors.
If your fit considers only one path, then N and S02 have *exactly the
same effect* on the equation.  They cannot be measured independently.
In the absence of knowledge about either N or S02, the only thing you
can do is measure the product (N*S02).  How does one then report on
coordination in a journal article?  You have to somehow interpret the
product (N*S02) and determine how much of that is N and how much is
S02.  There is no generic answer to how that is done -- it depends on
the details of the sample and the experiment.  To return to last
week's silly posts about training monkeys -- it is yet another reason
why data analysis requires a thinking human being.

If you are fitting many shells or many data sets (the latter is
something that Artemis does not yet allow you to do -- it's coming
soon!), then you may have enough information in your data to uncouple
the correlation between N and S02 and somehow fit them independently.
Again, there is no generic way of doing so -- each situation is

It is common to do as I suggested above and determine S02 from a well
known standard that was measured at the same time as your sample.  If
there are no significant empirical effects in the sample that do not
exist in the standard, then the value of S02 is probably useful for
your unknown sample.  Armed with that, it is much easier to then
determine coordination.

The discussion up to now has been conceptual.  How are the amplitude
terms handled in Artemis.  Well, start by taking a look at a
screenshot of the path page from a recent version of Artemis:


Note that there is an entry box labeled "N" and another labeled
"S02".  The one labeled "N is filled with the path degeneracy when the
feffNNNN.dat file is imported.  The one labeled S02 is intended to be
filled with a math expression used to describe all remaining terms
that may effect the amplitude.  In the example shown, I have left N
equal to the value from the feffNNNN.dat file and set S02 to a very
simple math expression.  The variable "amp" is being floated in this
fit to copper foil data and used to evaluate the S02 term in the EXAFS
equation for each path.  In this case I am using knowledge of the
system to uncouple N and S02.  This is a copper foil, thus I am
confident that the coordination is as expected from crystallography.
I am also confident that the empirical effects are negligible.
Whatever value amp ends up being, I will interpret that as S02.

Now suppose I want to measure a nano-particulate copper oxide.  In
such a system, I may expect coordination to be reduced relative to the
bulk oxide.  For that, I may do the following:
  1. Run feff using the crystal structure of bulk copper oxide.  This
     will give me a copper/oxygen path to use to fit the first shell
     of my nanoparticle.
  2. Read that feff path into Artemis along with my data
  3. Set amp to the value determine from the copper foil (this is done
     by selecting "set" rather than "guess" from the appropriate
     optionmenu on the "Guess, Def and Set" page in Artemis.
  4. For the first shell path, set N to 1 (rather than what ever value
     it was in the feffNNNN.dat file)
  5. Set S02 for the first path to this math expression:
          n_first * amp
  6. On the "Guess, Def and Set" page, define n_first as a guess
     parameter and choose a sensible starting value.

The N and S02 part of the screenshot above will then look something
like this:
      ___            ___________________________________
   N |_1_|  *   S02 |_ n_first * amp ___________________|

Here I have fixed amp to represent the known value of S02, I have set
the N term in the EXAFS equation to be 1, and I have made a math
expression, "n_first * amp", that will be evaluated and used for the
S02 term in the EXAFS equation.  n_first will be adjusted in the
course of the fit and can be directly interpreted as a coordination

Is this the only way of dealing with coordination?
   Certainly not.
Is this the "official" way of measuring coordination?
   No.  There isn't one.  Every situation is different.
Should you apply this example to every one of your analysis problems? 
   No way!
Did this example help you understand how N and S02 are used in Artemis
and Ifeffit?
   I hope so.
May this example be applicable to some analysis problem you run into
at some point in your career?
   Quite possibly.
Do you need to think hard about every analysis problem and figure out
the best way to deal with the problem of N and S02 being coupled

Hope that helps,

 Bruce Ravel  ----------------------------------- ravel at phys.washington.edu
 Code 6134, Building 3, Room 222
 Naval Research Laboratory                          phone: (1) 202 767 5947
 Washington DC 20375, USA                             fax: (1) 202 767 1697

 NRL Synchrotron Radiation Consortium (NRL-SRC)
 Beamlines X11a, X11b, X23b, X24c, U4b
 National Synchrotron Light Source
 Brookhaven National Laboratory, Upton, NY 11973

 My homepage:    http://feff.phys.washington.edu/~ravel 
 EXAFS software: http://feff.phys.washington.edu/~ravel/software/exafs/

More information about the Ifeffit mailing list