#+TITLE: feff85exafs to do list
#+AUTHOR: Bruce Ravel
#+STARTUP: showall


* The feff85exafs to do list

** feffpath library [10/12]

 1. [X] write header into ~f3ffNNNN.dat~ files
 2. [X] deg --> degen to match larch's _feffdat group
 3. [X] use polarization correctly in feffpath library (fix
    test_materials.py around line 56)
 4. [X] +capture rat and ipot from STRUCT+, accumulate ipot and rat
    wrappers as part of call to add_scatterer, also geom for python wrapper
 5. [X] capture a list of Z numbers so ipots can be readily translated
    to atomic species
 6. [X] capture header information in C struct, propagated into wrappers
 7. [X] check for existance/readability of phase.pad at level of
    feffpath.c
 8. [X] python wrapper / Larch plugin
 9. [X] nose testing for feffpath generated ~f3ffNNNN.dat~ files
 10. [X] SWIG-less perl library /(uses Inline::C)/
 11. [ ] SWIG-less python library /(Matt has started this)/
 12. [ ] _wrapper tests not currently working

** libpotph library [4/6]

 1. [X] get stand-along potph program to run all the way through
 2. [X] test that stand-alone works all the way through
 3. [X] turn it into a library with content of libpotph.json as it's input
 4. [X] write a C wrapper with the content of libpotph.json as its struct
 5. [ ] write a stand-alone feff.inp --> libpotph.json converter
 6. [ ] write a larch plugin which is a feff.inp --> struct wrapper
    converter, i.e. take a feff.inp as input and give a libpotph
    object as its output

*** libpotph issues and things to test

 * does NOHOLE work?
 * does SPIN work?  is it needed for exafs?
 * how much of AFOLP, FOLP, ION, RGRID, UNFREEZEF, INTERSTITIAL,
   JUMPRM do we want to support?
   - AFOLP: yes
   - FOLP: yes
   - ION: reluctantly, yes
   - RGRID: no idea...
   - UNFREEZEF: no idea...
   - INTERSTITIAL: no idea...
   - JUMPRM: probably not
 * does the iafolp parameter need to be carried around?  seems that it
   serves to indicate that folp was filled with the value given with
   AFOLP.
 * what is the point of capturing polarization and ellipticity at
   this stage?  is there any effect on the potantials?  or can they
   be put off until libfeffpath?
 * are we safe ignoring CFAVERAGE, MULTIPOLE, RPHASES
 * the following seem outside the scope of feff85exafs and outside
   what the FP wanted to share: PMBSE, TDLDA, PLASMON
 * the following *are* outside the scope of feff85exafs: XANES, FMS
 * Bruce wants OVERLAP to be retired -- the concept is better done in
   the sense of a Demeter::SSPath using libfeffpath
 * might want flags for triggering the various output files controled
   by feff's PRINT card...



** big jobs [0/6]

 1. [ ] build on Mac
 2. [ ] make scatteringpath a drop in replacement for feffdat in larch
 3. [ ] nosetests on result of scatteringpath with nnnn=False
 4. [ ] fit with different feff versions -- comparison framework /(begun in Bruce's privat SCFtests git repo)/
 6. [ ] capture information about muffin tin radii, norman radii,
    ionization, a lá Larch _feffdat's potentials attribute

** build on Windows [1/4]

 1. [ ] f85ut.py needs to be installed into a place where larch will find
    it.  (see ~larch> show _sys.path~, but plugins rather than modules)
    
 2. [X] +need to replace ~bin/f85e~ with something that works on windows.+
    made a runfeff method in f85ut instead

 3. [ ] ~platforms/windows/prep.sh~ needs aliases for running nosetests
    and larch

 4. [ ] perl wrapper cannot be linked successfully under Strawberry until
    a version of Strawberry using gcc 4.9 become available.

** compilation issues

 * ~src/PAR/parallel.f~ cannot be copmpiled -- ~mpif.h~ is missing

 * It seems as though the NOHOLE option won't work.  ~rdinp~ allows
   it, but ~src/XSPH/xsph.f~ wants, when ~nohole.eq.2~, some data
   files (see lines 209 to 224) that are nowhere written in f85e

 * In file ~src.EXCH/mpse.f~, ~mpse.f~ did not compile with rank
   mismatches at lines 37 and 57.  Variable ~edens~ is defined as rank
   2 and called as rank 1.  I "fixed" this by adding ",1" to the
   argument of ~edens~.  This does not, in fact, get exercised in
   feff85exafs -- triggering this bit of code was disabled when the
   code base was delivered to us.

 * ~src/EXCH/xcpot~ writes to numbered output, but in places that
   shouldn't get exercised by feff85exafs.
