Hi Matthew,
Including only bare-bones ASCII in/out is, IMHO, the only way to obtain true portability, and it has worked. I vaguely recall that they use some sort of verifier on their code to screen out system dependencies.
I don't understand this.
If it uses a g(r) approach, then I imagine that it doesn't handle multiple scattering. On the other hand, it could be argued that *in the EXAFS range* a system which needs a g(r) approach won't have detectable MS. That still leaves XANES, though.
Actually, GNXAS does handle MS. It's not clear to me how well it handles small crystallographic distortions, mixed shells, and so on, but it does include MS. I agree with you that requiring one of g(R) and MS seems to suggest that the other isn't necessary.
My shell-by-shell EXAFS fit program has the option to use as g(r) a Gaussian-broadened exponential tail function, whose FT is analytically simple and which captures the essential features of a somewhat-disordered shell. I prefer it over cumulant expansions because it doesn't assume that C6 and up are 0 and it gives you a physically reasonable g(r) with a minimum of parameters.
C3 seems like a reasonable way to handle small anharmonicities to me. Beyond that, using something else may be useful (if model dependent). In Ifeffit, you can use a set of paths with different Rs and defining the amplitudes for each path to follow some function such as a broadened exponential. Of course, I'm a little skeptical of people claiming that using g(R) is an absolute requirement.
That's not about "theory" as analysis. I don't know what theoretical advantages GNXAS might have. I believe it includes curved wave effects, and that it uses the Hedin-Lunqvist exchange (perhaps the only option?). I think that it has a simple polarization model (perhaps only dipole??). I believe it does multiple-scattering only out to four-leg paths (good enough for almost all cases), and don't know how it does this. I recall from one of the GNXAS papers that they talked about correlating Debye-Waller factors for MS paths with those of SS paths, but I don't know that works in practice.
All that sounds like what FEFF has.
Err, no. Feff has multiple options for exchange potentials, and decent models for loss terms. Feff has polarization dependence beyond dipole, which is needed for L edges, and can do elliptical polarization fot XMCD. I think GNXAS has none of that. For MS, Feff includes up to seven-leg paths. (For real EXAFS analysis, I've never heard of a system that needed more than 4). For non-SS paths, Feff uses a filtering method to eliminate MS paths with no weight, and uses the Rehr-Albers approximation to speed up the calculations for the important MS paths. I think GNXAS may do none of that. For DW factors for MS paths, Feff can use the correlated Debye model. GNXAS claims to do something different and more complicated, but I've never understand this, or why that would be important for systems that needed to be treated with a g(R).
Yes, it's for smallish molecules. Typical center-scatterer distances are <4-5A in the examples I've seen. What 'other approaches' to XANES are publically available which work better than FEFF8.1?
I wish I knew! --Matt