{"action":"created","issue":{"url":"https://api.github.com/repos/xraypy/feff85exafs/issues/28","labels_url":"https://api.github.com/repos/xraypy/feff85exafs/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/xraypy/feff85exafs/issues/28/comments","events_url":"https://api.github.com/repos/xraypy/feff85exafs/issues/28/events","html_url":"https://github.com/xraypy/feff85exafs/pull/28","id":93581825,"number":28,"title":"stand alone library for photoelectron phase shifts","user":{"login":"bruceravel","id":638186,"avatar_url":"https://avatars.githubusercontent.com/u/638186?v=3","gravatar_id":"","url":"https://api.github.com/users/bruceravel","html_url":"https://github.com/bruceravel","followers_url":"https://api.github.com/users/bruceravel/followers","following_url":"https://api.github.com/users/bruceravel/following{/other_user}","gists_url":"https://api.github.com/users/bruceravel/gists{/gist_id}","starred_url":"https://api.github.com/users/bruceravel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bruceravel/subscriptions","organizations_url":"https://api.github.com/users/bruceravel/orgs","repos_url":"https://api.github.com/users/bruceravel/repos","events_url":"https://api.github.com/users/bruceravel/events{/privacy}","received_events_url":"https://api.github.com/users/bruceravel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-07T17:14:37Z","updated_at":"2015-07-07T19:04:34Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/xraypy/feff85exafs/pulls/28","html_url":"https://github.com/xraypy/feff85exafs/pull/28","diff_url":"https://github.com/xraypy/feff85exafs/pull/28.diff","patch_url":"https://github.com/xraypy/feff85exafs/pull/28.patch"},"body":"This is clearly an enormous PR, but in fact it changes rather little in the existing code base.  The vast majority of the changes involve the addition of the Fortran and C files in `src/POT` which implement the interface to the stand-alone library.  There are a few other changes in the directory to accommodate the stand-alone library, but all prior behavior of the package remains in place.  Specifically the `pot` stand-alone executable is still built and is still intended to be run after the `rdinp` stand-alone.\r\n\r\nThis PR implements the library itself as well as examples and wrappers in Fortran, C, and Perl under the `wrappers` directory.  All of them work as expected, producing output consistent with the content in `tests/Copper/baseline/`. The C wrapper run valgrind-clean.  I have not taken a stab at a python wrapper.\r\n\r\nThe I/O model remains a little primitive.  The notion is that a UI would collect the sort of information that gets passed to the library (atoms list, potentials list, and so on).  For now, the `rdinp` stand-alone writes a file called `libpotph.json` which is basically a JSON serialization of the struct from `feffphases.c`.  There is a method in `feffphases.c` for reading that JSON file using [nxjson](https://bitbucket.org/yarosla/nxjson/src).\r\n\r\nThe I/O structure of the Fortran entry point and C wrapper are discussed in README files in the respective `wrappers` directories.  Those READMEs are part of this PR and constitute an initial stab at documentation.\r\n\r\nWith this and the mostly complete work on `feffpath`, I have basically everything needed to ditch feff6 and system calls in Artemis.  That is, Artemis can handle the I/O issues, call the feffphases library, run its own pathfinder, then call the feffpath library many times.  Neat-o!\r\n\r\nI don't think this work on the feffphases library is quite finished, but it is far enough along that I wanted to move it into the main branch.  I will leave it here for a day or so before merging, unless someone beats me to it.  Once it is merged into the main branch, I will open some issues requiring discussion or action by someone else (Matt, I mean action by Matt :smile:).  "},"comment":{"url":"https://api.github.com/repos/xraypy/feff85exafs/issues/comments/119305219","html_url":"https://github.com/xraypy/feff85exafs/pull/28#issuecomment-119305219","issue_url":"https://api.github.com/repos/xraypy/feff85exafs/issues/28","id":119305219,"user":{"login":"newville","id":304251,"avatar_url":"https://avatars.githubusercontent.com/u/304251?v=3","gravatar_id":"","url":"https://api.github.com/users/newville","html_url":"https://github.com/newville","followers_url":"https://api.github.com/users/newville/followers","following_url":"https://api.github.com/users/newville/following{/other_user}","gists_url":"https://api.github.com/users/newville/gists{/gist_id}","starred_url":"https://api.github.com/users/newville/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/newville/subscriptions","organizations_url":"https://api.github.com/users/newville/orgs","repos_url":"https://api.github.com/users/newville/repos","events_url":"https://api.github.com/users/newville/events{/privacy}","received_events_url":"https://api.github.com/users/newville/received_events","type":"User","site_admin":false},"created_at":"2015-07-07T19:04:34Z","updated_at":"2015-07-07T19:04:34Z","body":"... but also:  Yes, definitely.  I'll try to comprehend this enough to work on the Python wrapper."}}