Hi Paul,
I thought I would parrot back something I read in one of Bruce's tutorials (that seemed to work well for me), namely that the Debye factor, sigma has a k dependence while S02 does not. This means that if you can Fourier isolate the first shell (and you can assume a coordination number), you can determine a value for S02 by a fit using different k weights. You simply fit sigma for various fixed values of S02 (e.g. 0.6 - 1.0) and repeat the process for different k weights (e.g. k, k^2, k^3). The resulting plot of sigma vs. S02 will result in a straight line for a given k weighting. The three different k weights will intersect at a single point (or almost so) and the value of S02 at this point will be the value of S02 for the sample.
Yes, this trick of 'multiple k-weights' is so useful that the feffit() command should probably have as an easy-to-use option for this, say by supplying a list of kweights: path(1, feff=feff0001.dat, s02=my_amp, sigma2=my_ss2) feffit(data=my_data.chi, 1, ..., kweight='1,2,3') ^^^^^^^^^^^^^^^ That would probably be much easier on the user than using the multiple data set mechanism. This does not currently exist, but it would not be too difficult to implement. How to manage the automatically generated array outputs is not obvious. I'd probably have the array outputs use only the first k-weight in the list (which wouldn't need to be the lowest k-weight). Of course, other outputs can be made with ff2chi() and fftf() after the fit. I don't currently know how the use of restraints would impact a fit with multiple k-weights. This should go in the core so that a 'multiple k-weight' fit counts as only one data set in a multiple-data-set fit (and so that I can use it from the command line!). Bruce and I are almost ready to release 1.0075, so this may have to wait a few weeks. Are there any preferences on how this should work? Any requests for similar things?
S02, the passive electron reduction factor is a term that encompasses many body effects, in particular the effect of the core hole. It is also as such said to have a "weak energy and path dependence" [J.J. Rehr and R.C. Albers in Reviews of Modern Physics, v. 72, no. 3 (2000)]. The question is how fair is it to assume that S02 is a constant independent of shell, or in other words should S02 be allowed to vary with shell (e.g. with significant multiple scattering contributions?)
John may have a different view on this, but my view is that the errors in the calculated mean-free path may have a much stronger energy dependence than the errors in the calculated So2. From the analysis point-of-view, I prefer to think of So2 as k-independent, and put all k-dependent pieces go into lambda(k) or F(k). Feff tries to include all loss terms as well as it can.
I don't remember the paper offhand, but as I recall, in a paper by Bruce, the value of S02 was ascribed a value greater than unity. I didn't grok the explanation at the time, and was wondering if Bruce (or anyone else) in his ever-expanding knowledge of exafs has an explanation for when/if S02 can be greater than unity. Certainly if you consider Rehr's definition of the overlap integral of the N-1 electron wavefunction with and without a core hole, the value of S02 cannot be greater than unity[same reference, p. 636]. Any comments?
So2 _is_ calculated (if crudely in Feff6 and 7 -- I don't know if Luke Campbell's work on improved So2 is included in Feff8 yet). So one might even expect that So2 should be 1, and even find it a little strange that it's usually around 0.9. Clearly, there are loss terms that are not taken into account well enough in Feff. My view is that it's not well known whether this is dominated by an k-dependent term (ie, should be put into F or lambda) or a k-independent term (So2). --Matt