[Ifeffit] chi(k) Athena bug?

Matt Newville newville at cars.uchicago.edu
Thu Sep 4 15:23:20 CDT 2008

Hi Olivier, Bruce,

I agree that this is a bug in Athena.  It is almost certainly Windows
specific.   That is, I have no problem reading in the Athena_chi.dat
file or the chi.dat file you sent with Athena 0.8.054 on Linux.
Actually I am pretty sure it is a bug that is shared between Ifeffit
and Athena that is a left-over mistake from testing versions that
Bruce and I made this summer in preparing ifeffit 1.2.11

First, I noticed that there is a problem with the current Ifeffit
windows distribution that, while not the direct cause of the problem,
gives a hint:

    - The ifeffit.dll in the distribution is dated 2007, and the
ifeffit shell says 'ifeffit 1.2.10' which is definitely out of date.
       These are both my fault, and I'll make an update to fix these

   -   Athena, artemis, etc report 'ifeffit-1.2.11' which means they
are not actually reading the dll.  This is a
       problem, as changes to the backend require a rebuild of the
horae applications.

For now, I put a zip file with ifeffit.exe, ifeffit_12.dll, and
ifeffit_12.lib at

Again, I could make an update out of these so that everyone gets the
latest versions, though I think we might want to wait for new versions
of Athena and Artemis too...

In Athena, reading in the chi data starting at k=1.4 (Athena_chi.dat,
as Olivier attached) definitely causes problems.  In fact, as Olivier
suggested "it totally hoses the session" (I'm paraphrasing).  Perhaps
this is what was causing Nirawat's troubles too???

By "totally hoses the session", I mean these symptoms:  Reading the
data file Olivier attached, selected [ chi(k) ] for data type, the
plot shows the column plot view, but the data arrays never get set.
In fact, "show @arrays" in the ifeffit buffers shows nothing, as if no
data was read at all.    In addition, no data could be read into this
session after that and no plots were performed.  The Athena GUI
appeared to be responsive, but typing into the ifeffit gave pretty
much nothing.  That is, Ifeffit appeared to be dead.

Copying the ifeffit buffer session into an ifeffit script (attached, I
trimmed out the log-ratio macros but left the others in tact) I can
run this in an ifeffit shell and it works correctly.     Hmmmmm.....

Looking at that more closely and knowing that this Athena/Ifeffit
works _sometimes_ (no, really), I figured it might be due to
"fix_chik" and remembered that the July debug sessions were mostly
about playing with dimensions and that macros can be horribly fragile.

Replacing fix_chik with one that had 1 "set" command per line (also attached):

macro fix_chik
   "repair chi(k) data group that is not on a uniform k grid"
   set(fix___a.k   = range(0, ceil($1.k), 0.05) )
   set(fix___floor = floor($1.k) - 0.05)
   set(fix___a.kk  = range(0, fix___floor, 0.05))
   set(fix___n     = npts(fix___a.kk))
   set(fix___a.cc  = zeros(fix___n))
   set(fix___a.x   = join(fix___a.kk, $1.k))
   set(fix___a.y   = join(fix___a.cc, $1.chi))
   set(fix___a.chi = rebin(fix___a.x, fix___a.y, fix___a.k))
   set($1.k         = fix___a.k)
   set($1.chi       = fix___a.chi)
   erase @group fix___a fix___floor fix___n
end macro

in a fresh Athena session (that is, before reading any chi(k) into
Athena) worked, even for chi(k) data that started at k>0!!
To check this, save the "fix_chik" macro into a file (say,
fix_chik.txt) and on starting Athena, open the Ifeffit buffer and type
     load fix_chik.txt
before reading in the chi(k) data.  That should work.

My guess is that the Athena, Artemis, Hephaestus executables are built
with a slightly out-of-date ifeffit-1.2.11 dll (ie, that prevented the
longer command lines), and in fact are statically build with that dll.
  I would guess that rebuilding Athena, etc and then making an update
from that would be the best option.


On Thu, Sep 4, 2008 at 1:21 PM, Olivier <olivier.jacquat at env.ethz.ch> wrote:
> Hi Matt,
> Alright,
> Here additional files to the one (Athena_chi.dat) I send in a previous
> email.
> 1) one feff.inp file and the related chi.dat file.
> 2) the original and manually cut chi(k) spectrum of Fe.060 (generated from
> Ifeffit\examples\Athena\Fe\Fe.060).
> As this tiny bug is occurring for all types of data (measured & simulated),
> I do not believe that there is any relation to FEFF.
> It only seems that the newest version of Athena is not able to "interpolate"
> the "missing" chi(k) data, while Artemis does.
> Thanks for your help.
> Oli
> ++++++++++++++++++++++++++++++++++++:-)
> Olivier Jacquat
> Soil Chemistry group
> Institut of Biogeochemistry and Pollutant Dynamics
> ETH Zürich
> Universitätstrasse 16, CHN F71
> 8092 Zürich-Switzerland
> Tel: +41 44 633 60 28
> Fax: +41 44 633 11 18
> Email: olivier.jacquat at env.ethz.ch
> _______________________________________________
> Ifeffit mailing list
> Ifeffit at millenia.cars.aps.anl.gov
> http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Athena_bug.iff
Type: application/octet-stream
Size: 2289 bytes
Desc: not available
URL: <http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20080904/6992ecdc/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix_chik.iff
Type: application/octet-stream
Size: 587 bytes
Desc: not available
URL: <http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20080904/6992ecdc/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Athena_chi.dat
Type: application/octet-stream
Size: 38007 bytes
Desc: not available
URL: <http://millenia.cars.aps.anl.gov/pipermail/ifeffit/attachments/20080904/6992ecdc/attachment-0002.obj>

More information about the Ifeffit mailing list