[Ifeffit] Ifeffit development tools?

Webb, Adam adamwebb at win.desy.de
Wed Nov 21 11:48:28 CST 2007

> So low level support for interacting at the "transform/filter/magic"
> level exists.  I suspect, however, that you are not really asking
> about low level support.  I suspect that you are looking for something
> more fleshed out:
>   -- Suppose you were doing some quick-XAS and had 10,000 data files
>      to process.  That kind of problem demands a high level of
>      automation.  You really need some more structure than the
>      low-level hook provided by the swig wrapper.
>   -- Suppose you wanted to use Feff to compute the EXAFS spectrum from
>      the list of atoms resulting from a molecular dynamics
>      calculation.  You'd need a way to loop through the box, find all
>      atom pairs, and figure out how to have Feff run on each pair.
>      Again, swig's hook is at a level that's a bit too low.
> Enabling automation and solving problems like those (as well as small
> one-off chores, as well as GUI-writing, as well as ...) is what I am
> aiming for with Demeter.
> Is Demeter what you are looking for?  Hard to say.  It's written in
> Perl, which might not be your cup of tea.  It's still pretty far from
> done, so it's hard to evaluate.  Most of the design specs that I am
> working towards are inconveniently located in my head (although that
> could be fixed).  I've never had a collaborator that I've worked with
> on the same code base, so I am not in the habit of doing so.  All that
> said, if you are interested in Demeter -- I'd be thrilled to figure
> out how to work together.
> B


The question is how best to utilize the existing software. For trivial 
bits it easier for me to just do something in python. However, for 
larger things like your examples I would be unsure what would be best. 
On the one hand it is possible to use the wrappers but I think it misses 
out on the good functionality that is already present in the whole suite 
of programs.

I think Matt had it bang on. The ideal would be to be able to call the 
functions of ifeffit or Hephaestus etc. For example, to use an external 
program which may be any language.

I also think it is possible but not necessarily easy. I have also been 
rather reluctant to re-code a lot of things. So far I have been 
successful by working around it. I can do something and then move the 
results by hand. This works for small projects but it is limiting. I am 
not certain what the exact answer is but I will give it some serious 
thought. Off the top of my head, some sort of API seems obvious but not 
what form this should take.  (client-server, web, plug-in, ....)

Out of curiosity. Would demeter be able to 'speak' TDL? Or would TDL 
call demeter? I am uncertain what the status is of things like pyperl or 
inline::python. These were supposed to allow python and perl to talk to 
each other. .Net/Mono is advertised to do such things but I don't know 
if anyone wants to go it that direction.



Dr. M. Adam Webb
Notkestrasse 85
D-22607 Hamburg

Phone: +49 40 8998-1994, Fax: +49 40 8998-2787
E-mail:  adam.webb at desy.de

More information about the Ifeffit mailing list